35fbf07b.jpg

第20回オープンソーステクノロジー勉強会
というのに行ってきた。
意外と人があつまっていたので関心は高いんだなぁとおもいつつ、
インストールしたことがある人は5人くらいだったか予想通りの少なさ。
もちろん私もインストールしたことがない。
1時間の予定だったが当然のようにその枠に納まるわけもなく30分オーバー。
でもプレゼンがふつうにMacで行なわれたのは残念。Plan9にプレゼンソフトはないの?


肝心の内容だが、前半の高野さんはPlan9の歴史とか概要とか。いくつか新鮮におもったのは、
プロセス生成がファイルではないというのは、いわれてみれば意外だ。
/procがあるんだからやれるのに、面倒だからやらないというはいかがなものか。
あと共有メモリもファイルになっていないということだった。mmapがないのとつながりはあるのだろうか?
ネットワークアドレスもファイルになってないということだった。もしアドレスがファイルになっていれば
echo "foo" >/net/udp/8.8.8.8 みたいなことができるんだろうけど、うまくセマンティックが合わせられなかったか?

プログラミングの話では、ヘッダファイルに#pragmaが埋め込んであってリンクするライブラリが書いてあり、
リンカがそれを参照するのでリンク時に-lxxxを指定する必要がないといってた。うまいなぁ。

プログラムがSEGVなんかで落ちるとUNIXならcoredumpされるが、
plan9ではbroken状態でストップしてデバッガでattachするんだそうな。
brokenプロセスの数は上限があるそうで、そういう意味ではcoreだらけでファイルシステムがあふれる心配がなくてよいかも。

unixカーネルはI/Oの多重化をしたが 、plan9カーネルはサービスを多重化しているというのは
RESTにつながってるよね、といってた。

後半の齊藤さんはKVM上でplan9を動かすという話。
コミケで「軽快なplan9」という冊子を50部さばいた(しかも頼まれて買いに来た人までいた)話から入って、
仮想化の概要の説明。で話の核心は「plan9の設定をplan9からしたくない(不馴れなのでできない)のでホストOSからできるようにする仕掛→VMの底抜き」
ゲストOSからVMCALLとかいう命令を発行するとホストに制御が移せるので、ネットワークをホストにやらせちゃえ
ということらしい。よくわからんが、カーネルデバッグするときにふつうはコンソールに出すが、コンソールドライバが初期化するまでどーすんの問題は、VMCALLをつかえはホストにログを送りつけられるので便利っす、とのこと。
たしかに便利そうだ。