Inferno関連のPDFもあるようです。
inferno programmer's guide
ページが重く感じるのでPDFをダウンロードすることに。
そのためには、、、
・自分の所有するファイルをアップロードする
or
・お金を払う
どちらかをしなければなりません。
悩んだあげく、支援の意味を込めてお金を払うことに。
一度払うとある期間ダウンロードし放題なので、inferno、plan9関連のPDFをすべて落とした。
2011年1月2日日曜日
2011年1月1日土曜日
Infernoでtwitter
明けましておめでとうございます。
冬休みの自由研究の一つにInfernoでtwitterというものがありましたが、
ほぼコーディング無しで実現できました。
直接Twitterにアクセスするのは大変そうだったので、
IRCに変換する公開ゲートウェイをお借りしました(1)。
IRCクライアントはcaerwyn先生のacmeで動くircクライアントを
ベースにしました(2)。
(1) OpenTIG - TweetIrcGateway Hosted Service
(2)inferno programmer's notebook lab 44 - acme irc client
ircクライアントはそのままではうまく動かなかったので、一部修正しました。
コードは
https://subversion.assembla.com/svn/yosinori_public/trunk/limbo/twitter
にコミットしたので、参考までにどうぞ。
readmeja.txtに説明があります。
Acme上でタイムラインの読み込みと、tweetの投稿が可能です。
※本当は直接twitterにアクセスしたかったのですが、
認証とか大変そうなのでひとまずopentigをつかわせていただくことに。
余裕があればtwitter-fsを作るか。
冬休みの自由研究の一つにInfernoでtwitterというものがありましたが、
ほぼコーディング無しで実現できました。
直接Twitterにアクセスするのは大変そうだったので、
IRCに変換する公開ゲートウェイをお借りしました(1)。
IRCクライアントはcaerwyn先生のacmeで動くircクライアントを
ベースにしました(2)。
(1) OpenTIG - TweetIrcGateway Hosted Service
(2)inferno programmer's notebook lab 44 - acme irc client
ircクライアントはそのままではうまく動かなかったので、一部修正しました。
コードは
https://subversion.assembla.com/svn/yosinori_public/trunk/limbo/twitter
にコミットしたので、参考までにどうぞ。
readmeja.txtに説明があります。
Acme上でタイムラインの読み込みと、tweetの投稿が可能です。
※本当は直接twitterにアクセスしたかったのですが、
認証とか大変そうなのでひとまずopentigをつかわせていただくことに。
余裕があればtwitter-fsを作るか。
2010年12月24日金曜日
FPGAでCPU作成
電子工作に興味がわきました。
そもそもの発端は
名著「CPUの創りかた」を読んだからです。
http://www.amazon.co.jp/dp/4839909865
本に従い、ロジックICを買ってきて組み立てようかと誘惑に駆られたのですが、
作ってそこで終わりな気がしたので、ちょっと方向を変えることにし、
以前から気になっていたFPGAに手を出すことにしました。
参考にしたサイトは
触って学ぼう FPGA開発入門です。
非常にわかりやすいです。
ちなみに、同じ著者の「【実践】C言語による組込みプログラミングスタートブック」も買ってはみたものの、Cでロジックを書く意味が見いだせず、こちらはお蔵入りとなりました。
上記サイトにて使用されているEDX-002を購入し、サイトの記述に従って
実際にやってみました。
わからないことはいろいろありますが、まずはLED制御がなんとなくできるようになりました。
わかった気になったので、CPUをつくることにしました。
アーキテクチャは「CPUの~」の設計(TD4)をそのままつかわせてもらいました。
命令セットが見事です。
で、ごにょごにょやっていると、なんとなく動くものができました。
まだバグがあり、
・入力ポートが動かないっぽい
・クロックが適当
という不具合があるものの、
プログラムが動き、LEDが点滅しました。
すばらしい。
ソースは公開しておきますか。
https://subversion.assembla.com/svn/yosinori_public/trunk/fpga/spartan2/cpu1/
cpu.vがソース。たったの187行。
FPGAって楽だなぁ。
ハードのことがわからない人間がFPGAの知識もほぼない状態で
CPUを作るとこんな感じになる、というモデルケースの一つとして参考にしてください。
次なるステップは
・実用的なCPUを作る(設計も自分流に)
・既存のIPコア、picoblaze or pacoblazeを試す
・シリアル通信などのハード制御をしてみる。
あたりですかね。
ゆくゆくはdis VMをハードウェア化したプロセッサを作ればな、
などと考えてはいますが、
disの命令セットが一筋縄では実装できなさそう。
forkとかあるみたいだし。
そもそもの発端は
名著「CPUの創りかた」を読んだからです。
http://www.amazon.co.jp/dp/4839909865
本に従い、ロジックICを買ってきて組み立てようかと誘惑に駆られたのですが、
作ってそこで終わりな気がしたので、ちょっと方向を変えることにし、
以前から気になっていたFPGAに手を出すことにしました。
参考にしたサイトは
触って学ぼう FPGA開発入門です。
非常にわかりやすいです。
ちなみに、同じ著者の「【実践】C言語による組込みプログラミングスタートブック」も買ってはみたものの、Cでロジックを書く意味が見いだせず、こちらはお蔵入りとなりました。
上記サイトにて使用されているEDX-002を購入し、サイトの記述に従って
実際にやってみました。
わからないことはいろいろありますが、まずはLED制御がなんとなくできるようになりました。
わかった気になったので、CPUをつくることにしました。
アーキテクチャは「CPUの~」の設計(TD4)をそのままつかわせてもらいました。
命令セットが見事です。
で、ごにょごにょやっていると、なんとなく動くものができました。
まだバグがあり、
・入力ポートが動かないっぽい
・クロックが適当
という不具合があるものの、
プログラムが動き、LEDが点滅しました。
すばらしい。
ソースは公開しておきますか。
https://subversion.assembla.com/svn/yosinori_public/trunk/fpga/spartan2/cpu1/
cpu.vがソース。たったの187行。
FPGAって楽だなぁ。
ハードのことがわからない人間がFPGAの知識もほぼない状態で
CPUを作るとこんな感じになる、というモデルケースの一つとして参考にしてください。
次なるステップは
・実用的なCPUを作る(設計も自分流に)
・既存のIPコア、picoblaze or pacoblazeを試す
・シリアル通信などのハード制御をしてみる。
あたりですかね。
ゆくゆくはdis VMをハードウェア化したプロセッサを作ればな、
などと考えてはいますが、
disの命令セットが一筋縄では実装できなさそう。
forkとかあるみたいだし。
2010年12月12日日曜日
Inferno 関連書籍
書籍をいくつか購入したのでまとめ。
こうして見ると結構ある。
Principles of Operating Systems: Design & Applications

http://www.amazon.co.jp/Principles-Operating-Systems-Design-Applications/dp/1418837695
OSについての教科書。じっくり読む価値があると思う。
Inferno Programming with Limbo

http://www.amazon.co.jp/Inferno-Programming-Limbo-Phillip-Stanley-Marbell/dp/0470843527
Inferno 3rdの時の本だが有用とのこと。
4thでの変更に注意しながら読む必要がある。
差分がまとまっている所は見つけられなかったので、自分で作ろうかな。
Inferno (Operating System)

http://www.amazon.co.jp/Inferno-Operating-System-Frederic-Miller/dp/6130282990
Wikipediaの記述をまとめただけという驚きの本。やられた。
Limbo (Programming Language)
(画像なし)
http://www.amazon.co.jp/Limbo-Programming-Language-Lambert-Surhone/dp/6133174110
こちらも、wikipediaの記述をまとめたもの。
嫌な予感はしたが、的中。
〜〜〜以下、購入できず。〜〜〜
Inferno Programmer's Manual
(画像なし)
http://www.amazon.co.jp/gp/product/0953870103
The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System

http://www.amazon.co.jp/Inferno-Programming-Book-Introduction-Distributed/dp/0470849711
こうして見ると結構ある。
Principles of Operating Systems: Design & Applications

http://www.amazon.co.jp/Principles-Operating-Systems-Design-Applications/dp/1418837695
OSについての教科書。じっくり読む価値があると思う。
Inferno Programming with Limbo

http://www.amazon.co.jp/Inferno-Programming-Limbo-Phillip-Stanley-Marbell/dp/0470843527
Inferno 3rdの時の本だが有用とのこと。
4thでの変更に注意しながら読む必要がある。
差分がまとまっている所は見つけられなかったので、自分で作ろうかな。
Inferno (Operating System)

http://www.amazon.co.jp/Inferno-Operating-System-Frederic-Miller/dp/6130282990
Wikipediaの記述をまとめただけという驚きの本。やられた。
Limbo (Programming Language)
(画像なし)
http://www.amazon.co.jp/Limbo-Programming-Language-Lambert-Surhone/dp/6133174110
こちらも、wikipediaの記述をまとめたもの。
嫌な予感はしたが、的中。
〜〜〜以下、購入できず。〜〜〜
Inferno Programmer's Manual
(画像なし)
http://www.amazon.co.jp/gp/product/0953870103
The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System

http://www.amazon.co.jp/Inferno-Programming-Book-Introduction-Distributed/dp/0470849711
2010年10月23日土曜日
Armadillo 440
Armadillo440に触る機会が出来ました。
ひとまずInfernoがインストールできるか確認です。
armadilloでセルフビルドが一番簡単そうなのでそのように。
2011/02/26 utilsのビルドはいらないっぽい。コメント参照
・debian環境の構築
アットマークテクノの提供するソフトウェアマニュアル「7.2. ストレージに配置する」を
参考にし、
Flash ROMの中のLinuxを立ち上げ、micro SDカードにdebianをインストール。
ドキュメントがよく整理されていてわかりやすい。さすが。
なんと開発用のLinux PC環境を用意しなくても出来ちゃう。
詳細は割愛。
以後はSDカードのdebianを立ち上げてから行う。
・ビルドに必要なパッケージをゲット
armadilloはEthernetでインターネットに接続できるようにしておきます。
パッケージ名は、
・infernoのソースをゲット
google codeからmercurialで持ってくる。
・ビルド用の設定
パスの設定、コンフィグの書き換え、その他。
/inferno-os/mkconfigを一部書き換え
・ユーティリティとOSのビルド
・実行
infernoのプロンプトが現れる。すばらしい。
なお、wm/wmを実行してみたが、画面の色深度が16bppじゃだめと怒られた。
どうしたものか。
※ネットワーク上のxserverに画面を飛ばすのはOK。
ひとまずInfernoがインストールできるか確認です。
armadilloでセルフビルドが一番簡単そうなのでそのように。
2011/02/26 utilsのビルドはいらないっぽい。コメント参照
・debian環境の構築
アットマークテクノの提供するソフトウェアマニュアル「7.2. ストレージに配置する」を
参考にし、
Flash ROMの中のLinuxを立ち上げ、micro SDカードにdebianをインストール。
ドキュメントがよく整理されていてわかりやすい。さすが。
なんと開発用のLinux PC環境を用意しなくても出来ちゃう。
詳細は割愛。
以後はSDカードのdebianを立ち上げてから行う。
・ビルドに必要なパッケージをゲット
armadilloはEthernetでインターネットに接続できるようにしておきます。
apt-get update
apt-get install [パッケージ名]
パッケージ名は、
- x-window-system-core
- libxext-dev
- gcc
- make
- mercurial
・infernoのソースをゲット
google codeからmercurialで持ってくる。
cd /
hg clone https://inferno-os.googlecode.com/hg/ inferno-os
・ビルド用の設定
パスの設定、コンフィグの書き換え、その他。
export PATH=$PATH:/inferno-os/Linux/arm/bin
cd /usr/bin
ln -s gcc arm-gcc
/inferno-os/mkconfigを一部書き換え
ROOT=/inferno-os
SYSHOST=Linux
SYSTARG=Linux
OBJTYPE=arm
・ユーティリティとOSのビルド
cd /inferno-os
./makemk.sh
cd /inferno-os/utils/iyacc
mk install
cd /inferno-os/utils
mk install
cd /inferno-os/limbo
mk install
cd /inferno-os
mk install
・実行
cd /inferno-os/Linux/arm/bin
./emu
infernoのプロンプトが現れる。すばらしい。
なお、wm/wmを実行してみたが、画面の色深度が16bppじゃだめと怒られた。
どうしたものか。
※ネットワーク上のxserverに画面を飛ばすのはOK。
2010年6月29日火曜日
一国一城の主に
オシロを買いました。
picoscope 2203というやつです。
http://www.picotech.com/ultracompact-oscilloscopes.html
かっこいい。
別に何か目的があるわけでは無いのですが、使い方を習得したかったので
弾みで購入しました。
いじる時間が取れなさそうなのが悩みです。
なお、このオシロスコープはiPhoneアプリも出ていて、
波形をiPhoneの画面に出すことができます。
これも面白い。
picoscope 2203というやつです。
http://www.picotech.com/ultracompact-oscilloscopes.html
かっこいい。
別に何か目的があるわけでは無いのですが、使い方を習得したかったので
弾みで購入しました。
いじる時間が取れなさそうなのが悩みです。
なお、このオシロスコープはiPhoneアプリも出ていて、
波形をiPhoneの画面に出すことができます。
これも面白い。
2010年3月14日日曜日
AndroidでStyx、略してStroid
ブログタイトルにサブタイトル入れておきました。なにもひねりがありませんが。
AndroidでStyxを動かしたくなりました。
略してStroid。
最終目標は、wmをAndroidアプリで実装して、ローカルorリモートのInfernoを
タッチパネルから操作できるようにする。
既存のStyxライブラリを検証してみました。
・Jstyx
結構外部ライブラリに依存している。
Androidでの起動に失敗。
・ninedroid
Android上で動く実装もあったので、簡単に動いた。
すばらしい。
サーバー側。
・styx-n-9p2000
Android上で動く実装があったので、簡単に動いた。
クライアント側。
・j9p/styxlib
ざっとソースツリーを眺めると結構大きい。
気力が尽きたのでポーティングは試みていない。
apache/antを使うとか、外部ライブラリへの依存があるのかも。
ちなみに、ninedroid とstyx-n-9pのAndroid端末内でのローカルホスト対向通信は
失敗。なぜだろう。
Styxはシンプルなプロトコルといわれているが、認証とか暗号とか考えると
意外と大変かも。
AndroidでStyxを動かしたくなりました。
略してStroid。
最終目標は、wmをAndroidアプリで実装して、ローカルorリモートのInfernoを
タッチパネルから操作できるようにする。
既存のStyxライブラリを検証してみました。
・Jstyx
結構外部ライブラリに依存している。
Androidでの起動に失敗。
・ninedroid
Android上で動く実装もあったので、簡単に動いた。
すばらしい。
サーバー側。
・styx-n-9p2000
Android上で動く実装があったので、簡単に動いた。
クライアント側。
・j9p/styxlib
ざっとソースツリーを眺めると結構大きい。
気力が尽きたのでポーティングは試みていない。
apache/antを使うとか、外部ライブラリへの依存があるのかも。
ちなみに、ninedroid とstyx-n-9pのAndroid端末内でのローカルホスト対向通信は
失敗。なぜだろう。
Styxはシンプルなプロトコルといわれているが、認証とか暗号とか考えると
意外と大変かも。
登録:
投稿 (Atom)