久々のTIP9UG@NII

ひさびさのTIP9UGが、丸山先生のご好意でNIIにて開催された。参加者はだいたいおなじみの11名。私は「Plan 9再発見とSC09報告」ということで、最近のPlan 9周りの活況?と先月アメリカのオレゴン州ポートランドで開催されたSC09の簡単な報告を行った。FAST-OS BoFについても最後に触れたが、最先端の開発環境を使ってPlan 9遊べる研究できるってうらやましい。自分たちが使うものは自分たちで作るという意識が高いよねということだろうか。当たり前と言えば当たり前のことなんだけど、なかなか難しくて、国内でいいもの作っているのに海外のものを導入しちゃう残念な例を身の回りでもいくつか思いついちゃう。

日本テクノラボPlan 9とInfernoのパッケージを売っていたけど、もう終了しているようだ。マニュアルだけでも買う価値があると思ったんだけど。それをチェックしていたところ思わぬ収穫というか、@imaikさんが言ってたbit 98年2月号のInferno特集記事「ネットワークオペレーティングシステムInfernoのインパクト」を発見した。Dennis Ritchieの巻頭言からはじまって、執筆陣は慶応の村井先生、中村先生、インターネット総合研究所の藤原さんというメンツである。ぜひ一読あれ。Infernoが搭載されたデジカメやプリンタが存在したらしい。触ってみたかったな。

TIP9UGでもGoの話題が出ないわけはないのだが、Alefの話に流れていくのがさすが。Plan 9はかつてAlefという並行プログラミング言語をサポートしていたが、3rd ed.からはメンテナンスしきれないということで外されてしまった。acmeも最初はAlefで書かれていたけど、libthreadで書き直されたらしい。で、このAlefだが、今でも動くものがcontribにあるらしい。kadotaさんは今でもAlefで遊んでいて、64ビット整数に対応しようと目論まれているようだ。詳しくはAlef compilerを。

Windowsに9Pをしゃべらせるninefsが最近公開された。実装にはWindowsFUSEのようなことを実現する仕掛けであるDokanを使っている。

丸山先生からは、LP49のアップデート&デモが紹介された。開発環境はVMWareから(以前はなぜだか動かなかった)Qemuに移り、exportfsで他のマシンの名前空間をimportできるとか、rcが動くとか、VGA周りをデモしてもらった。ウィンドウシステムはrioをそのまま動かすのではなく、アクティブオブジェクトベースで書き直すそうだ。これはL4スレッドベースの実装であり、ウィンドウシステムのように各コンポーネントが自律的に動作するものは、libthreadベースの現在の実装よりも見通しがよくなる見込みだと言うことだ。なおL4のメッセージパッシングは同期通信しかないのだが、LP49では非同期通信が可能で、ロックを導入している。また、あるプロセスが死んでも、矛盾がないメモリ状態から処理を再開するトランザクションセグメント機能も面白そう。ただ、残念なことに丸山先生は今年度いっぱいで退官ということで、それまでの完成は難しそう。しかし、この年までプログラミングし続けられるというのはプログラマの鑑だよな。見習わなくては。また、LP49のソースコードは公開されているので、遊んでみよう。特にPlan 9カーネル最大の関門chan.cにコメントが追加されているらしく、そのためだけにでもダウンロードする価値はあるかも。

そして時代は第五世代コンピュータマルチコアで、並列論理型言語GHC復活!ebaraさんの「C++ で、論理型言語(GHC)コンパイラを書く」。と言いながらJavaScript版もあったり、GraphVizでもオブジェクト構造やコールフローの可視化も面白かった。

そうそう、@noritsunaさんが持っていたAndroid端末でInfernoは動かないのだろうか。というかLinuxなんだし当然動くよね。