Git の内部構造の事を書いたら twitter に Plan9 について言及している人 (http://twitter.com/#!/madogiwa/status/22707305111887873) がいたので調べてみた。特に、プログラム開発環境と email が統合された acme (アクミと読む?)が面白そうなので youtube のビデオで勉強。
- Plan9 Acme Intro - Part 1: http://www.youtube.com/watch?v=dopu3ZtdCsg
- Plan9 Acme Intro - Part 2: http://www.youtube.com/watch?v=2vjD_B__SbQ
- Plan9 Acme Intro - Part 3: http://www.youtube.com/watch?v=cR96WQ6OR00
ちょっと見た感じ emacs。見てると自分で試したくなる。私は 普段 Mac OS X を使っているので、VMWare 上で使うのが簡単そうだ。非正式な VMWare のイメージが
http://www.planb-security.net/plan9/
で公開されているのでダウンロードして展開して vmx ファイルを開く。シリアルポートが無いと言われるが無視するとコンソールが出るので。
root is from (tcp, local)[local!#S/sdC0/fossil]: local user[none]: glenda
のように答えると youtube で紹介されていた画面が出てくる。glenda というのはデフォルトのユーザ名のようだ。
操作は3ボタンマウスで行う、Mac や Windows と微妙に違ってて戸惑う。
- 左ボタン: 選択
- 中ボタン: 実行
- 右ボタン: 検索
この「実行」というのは emacs で言う C-x C-e 、または Smalltalk の print it みたいな物で、マウスの下の文字列をコマンドとして実行する。文字列が acme 組込みのコマンドに無ければシェルコマンドとして実行される。例えばどこかに
echo '3+4' | bc
と書いて選択して中クリック(または中ボタンでドラッグ)すると答えの 7 が表示される。メニューに見える物 (tag line) もこの仕組みで実行されていて、tag line は単に一行のテキストボックスにコマンド文字列が書いてあるだけだ。
右ボタンの動作はちょっと覚えにくい。普通のテキスト画面では検索になって、検索対象によって検索が行われたり選択したオブジェクトが開く。例えば真ん中の acme の紹介文章で acme を選択して右クリックすると、次々 acme の文字列を検索し、左側のディレクトリ表示画面で readme.rio を右クリックすると readme.rio が開くという具合だ。ところが acme 紹介文章の中に readme.rio と打ち込み右クリックをしてもディレクトリ画面と同じように readme.rio が開く。つまり、emacs とは異なりこの動作の違いはバッファのモードから来る物ではなく、入力対象によって適当に決めているのだろう。
面白いのはメール右側のメール画面で、これも 1/ を右クリックすると一番のウェルカムメールが開く。この 1/ というのは何だろうと思って、試しに /mail/fs/mbox/1/ にアクセスしてみると、実はメールの from や to、bcc と言った属性にファイルシステムからアクセス出来る事が分かった。つまり、メールも何でもファイルという UNIX の思想で出来ていて、添付ファイルなんかもファイルとしてアクセス出来る。例えば、適当な場所に /mail/fs/mbox/1/2/box.jpg と書いて右クリックすると、ウェルカムメッセージに添付されている気持悪いウサギの絵が表示される。これは面白い!
ただ奇妙なのは、ウェルカムメッセージが画面上にある時に /mail/fs/mbox/1/ を右クリックするとメッセージにカーソルが移るが、無い時にはメッセージをディレクトリとして表示するので、この辺りの動作がまだ良くわからないので勉強したい。しかし Plan9 や acme は面白いアイデアがたくさん詰まった宝箱だなー。
日本語の acme の説明