おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

第20回GREE オープンソーステクノロジー勉強会:Plan9

Plan9 といってピンとくる人は割とOSマニアなんじゃないかと想像しますが、すごく単純化してしまえば、ベル研のUNIXメンバーがUNIXの思想をさらに推し進めた次世代?OS。
もちろんUNIXから見ての次世代なのでやや懐かしい香りのするOSではありますが、まあ知る人ぞ知る存在だと言えましょう。

このようなマニアック(笑) なイベントを開催してくださった GREE の皆様、スピーカーの高野さん、齊藤さんに感謝感謝です。

公式ページはこちら

高野さんパート「Plan 9のお話」

高野さんはどんな妖怪に取り憑かれたのか(失礼)数年前から Plan9 にハマり、Plan9日記というブログをつけている変態……いや違った、目の付け所がシャープな人です。

資料は http://www.slideshare.net/oraccha/plan-9 に挙がってます。
基本的にはこれを見ればOK。

印象に残ったネタを挙げておきます。

Gopher and Grenda

Go言語のマスコットGopher君とPlan9のGrenda。なんとなく似てます。
資料6ページ参照。
これってどっちもRob Pikeの奥さんがデザインしたんだって。
へーって、ただそんだけ。

すべてがファイル
  • UNIX はすべてを open - read/write - close に抽象化するというモデルを取っていた
  • しかし、後から入ってきたやつらはそんな理想を理解しやがらねえ!
  • こんなの許せねえ!
    • てなわけで Plan9 ではすべてがファイル(笑)
      スライドから例を引用(p.19)
$ cat /net/tcp/clone
5
$ cat > /net/tcp/clone
192.168.168.130!7

とやっておいて、別のターミナルから

$ cat /net/tcp/5/data &
$ echo hoge > /net/tcp/5/data
echo

と、これで echo クライアントの出来上がり(笑)
サーバは次のページに書いてあるのでみましょう。

  • GUI もファイル!
$ pager /dev/screen

とやるとスクリーンショットがいきなり取れる。しかも動的にぐりぐり動く。ウィンドウをつかみたい場合は

$ pager /dev/wsys/*/window

でおっけー。

  • なお今の Unix like OS の /proc は Plan9 が元ネタ。
意外と?多彩な動作環境
  • 元々はCPU、ターミナル、ストレージすべてマルチな分散環境を指向
  • だからブートシーケンスなんかもそれっぽい(らしい)
  • けど、一台のマシンで動かす方法もあるよ!
  • 大量のサポート環境
    • PPCとかARMもサポートしてるのは素敵。
    • 最近は玄柴で遊ぶのが Plan9er (どんだけいるんだそれ……) のブーム。
    • とりあえず仮想環境で動かすのがお気楽
    • Unix の場合はそのまま動かす方法がいくつかある
      • オススメは drawterm
      • Unix から Plan9 環境に接続するグラフィカルサーバ
開発環境話
  • とりあえず cc が ANSI 非互換で kencc (多分 Ken Tompson の CC だよね?) ってのが笑える。
    • そういや唐突に思い出したけど portable c compiler なんてものがあったなあ。言語処理系自体に移植性を持たせるというのは画期的なアイディアだったんだよ。
  • 資料の引き写しになりそうになってきたのではしょると、Plan9 の開発環境のコンパイラ名称はむちゃんこ Go 言語そのまんま。
    • お前まんま持ってきたやろ!>Ken & Rob
というわけで
  • Plan9 面白いよ!
  • 仮想環境でもいいから遊んでみよう!

おもしろい発表でした。ぱちぱち。

齊藤さんパート「軽快なPlan9

資料は↓
http://www.slideshare.net/govm/plan9


すごーく雑駁にまとめてしまうと、

  • もともと院生で仮想化がテーマ。KVMいぢったりしてます。
  • なんか周囲でPlan9が急にブレイク
  • つかGrendaがブレイクしたんじゃね?
  • んで入れてみた
    • 研究対象がKVMなのでむろんKVM
    • すみませんネットワークの設定とかまったく分からないんですが
    • いやまて。
    • KVMなら俺お手の物だから(そうは言っていなかった)KVMをいぢってネットワークアクセスが来たら仮想化の外に出ればいいじゃん
      • 資料の言葉を使えば「床抜き」
    • ということで有明で本売ったらウハウハ
    • 夏にもまた出すかも

Plan9 とはあんまり関係ないプレゼンでしたが、仮想化ってどうやって実現されてるの? という、案外知られていないことをさらっとまとめているよいプレゼンだったと思います。
ってなに普通に褒めてるんだ俺。

でも面白かったです。

そして懇親会など。

けっこう知り合いが来てていろんな話をしたんですがもう私の揮発性脳みそは覚えていません。しくり。
でも Plan9 でこんなに人くるか? オイ! って感じで、とても楽しゅうございました。

もう聞いた後は萌え萌えで、あー家に帰って仮想環境に入れてみなきゃ、論文も読まなきゃ、と妄想が渦巻いておりましたが、ハイ、なにもやっておりません。……だめじゃん。


まーともかく繰り返しになりますが貴重な機会を与えてくれたGREEの皆様、スピーカーのお二人、懇親会で楽しい一時を過ごさせていただいた皆様に感謝感謝であります。
うーむ、近々時間作って入れねば。>Plan9

*1:もっとも X は分散環境 Athena Project の副産物であって UNIX だけをターゲットにしたわけじゃなかったわけだけど。