Skip to content
oraccha edited this page Jan 14, 2013 · 1 revision

Bell研で開発された分散OS.1st edition の公開は 1993 年.

"Not only is UNIX dead, it's starting to smell really bad." -- RobPike circa 1991

  • [http://plan9.bell-labs.com/plan9/ 本家]

  • [http://plan9.bell-labs.com/wiki/plan9/1/ Plan9Wiki] . Plan9の話題を扱ったWikiページです.サーバもPlan9で動いてます.

  • VitaNuova

  • [http://www.9grid.net/ 9grid] . Plan9 で Gridコンピューティング,クラスタ?

  • [http://unit.aist.go.jp/itri/knoppix/xen/ Xenoppix] . Xen + Knoppix.ゲストOSとして NetBSDPlan9 が起動する.

  • Tiki:Plan9

  • [http://www.faqs.org/docs/artu/plan9.html Plan 9: The Way the Future Was] (The Art of Unix Programming)

  • PlanB (GSyC systems lab.)

  • Plan9port . Plan9 のアプリケーション群を Unix に移植するプロジェクト.

  • [http://swtch.com/drawterm/ Drawterm]

    • [http://www.r-36.net/dtLinux.html dtLinux] . DrawTerm を組み込んだ Live CD.
  • ./プログラミング

  • bochs/Plan9で遊ぶ

名前の由来はB級SF映画だとか.どんな映画か知ってます?

  • Ed Woodの『Plan 9 From Outer Space』らしいですよ.- G
    • EdWood から想像できると思うけど,そうとうしょうもない映画らしい.

#comment

Mon Apr 23 14:16:43 2007 処理コスト度外視するなら、直感的には既存の大抵のバージョン管理ツールは、そのまま移植+過去版参照はcheckoutコマンドをラップして…で出来そうな気がしますよね。//スナップショットを定時(だけ)じゃなく任意のタイミングで作らせること出来るんでしょうか?出来るなら簡易なcheckin代わりに使えると思う。 .

Sun Apr 22 17:26:11 2007 りょうせい dumpfsを使っていれば、自動的に/n/dump/日付/以下にスナップショットが取られます。"bind -b /n/dump/2007/0422 /"とスナップショットをルートディレクトリにbindすれば、そのプロセスの名前空間がスナップショット時のものに変わります。これは強力ですよね(まさにタイムマシーン)。明示的にスナップショットを取るタイミングを指定したい、一日単位だと粒度が荒すぎる、タグ付けしたいとかなるとバージョン管理ツール(ファイルシステム)の出番なんでしょうか。 Plan9開発者が特定のツールを使っているかは知りません。最近は、Mercurialを動かそうとしている人がいたようですが。 . Sun Apr 22 13:16:30 2007 Plan9で動くバージョン管理ツールはやっぱり過去バージョンもファイルとして見れるんでしょうか? // そうなら過去版も普通のgrepライクなツールで検索できますよね。 . Tue May 16 11:28:43 2006 [http://lsub.org/iwp9/index.html IWP9 2006] . Sat Apr 29 15:12:50 2006 りょうせい [http://www.usenix.org/publications/login/1997-12/interview.html Interview with Russ Cox] (USENIX ;login 1997-12) . Sun Mar 5 23:11:20 2006 りょうせい TIP9UG/20060305 . Thu Nov 17 01:45:04 2005 TIP9UG/20051112 . Tue Nov 15 19:27:00 2005 りょうせい Drawterm のアカウントもらったけど,acme の使い方覚えないとなぁ. . Sun Sep 18 01:25:48 2005 りょうせい [http://www.cs.unm.edu/~fastos/05meeting/PLAN9NOTDEADYET.pdf Why Plan 9 is not dead yet And What we can learn from it] . Fri Apr 8 06:36:58 2005 りょうせい jail みたいな仕組みと組み合わせればよいのか.> v9fs . Sun Mar 27 19:28:56 2005 りょうせい [http://swtch.com/cgi-bin/plan9history.cgi plan 9 kernel history] . Mon Nov 22 22:58:05 2004 りょうせい [http://v9fs.sourceforge.net/ V9FS] 9P2000 file system support for Unix/Linux/*BSD だって.Unix には名前空間がないから,その辺をどう扱うのか難しいところだな. . Wed Sep 15 12:54:03 2004 りょうせい と言うか,まだ nCUBE って存在していたのね.n4 ってのは VoDストリーミングのような動画配信に特化したしているみたい. . Wed Sep 15 12:48:14 2004 りょうせい [http://www.ncube.com/ nCUBE] 3 でも Plan9 が動くらしい.[http://www.kotovnik.com/~avg/old_page/profile.html avg's Profile] .


''「ファイルによる抽象化」というUnixのコンセプトをさらに追求したのがPlan9である.UnixがSynmmetricalな構成であるのと対象的に,Plan9では,それぞれ役割を特化させたサーバとクライアントから構成される.この部分は大型汎用計算機への先祖帰りみたいだし,僕的にはちょっと納得できない.''

って以前(1998年ごろ)メモに書いたけど,役割を特化させるというのは情報家電みたいなモバイル,ユビキタスコンピューティング環境や,大規模トランザクションを処理しなきゃいけない電子商取引サーバ(i-modeのサーバでもいいや)を考えると,そうなるのが自然かなと思えるようにもなってきた.Plan9がどの程度のターゲットを相手にしているのか論文読み直さなきゃわからないけど.

「大型汎用うんぬん」ってのも眉唾だなぁ.ただし,Plan9のクライアントサーバ構成 (次に示す)が妥当だとは思わない. もっと違うスケーラビリティを持たせられるアーキテクチャが考えられると思うんだけど.

  • ファイルサーバ
  • CPUサーバ
  • 認証サーバ(CPUサーバと兼用化)
  • ターミナル(ダム or UNIXデスクトップライク端末)

この辺をもう少し考えてみよう.元々 UNIX は TSS をターゲットとしたシンプルな OS として設計,開発された.その後,ネットワークや WIMP インタフェースなどの技術革新が進み,WS 用 OS として使われるようになっていった. そこで,UNIX の原点(simplicity, clarity, generality)に立ち帰り,現代のテクノロジーを反映して,再実装したのが Plan9 と言える.ここでキーになるのが,すべてはファイルという抽象化の徹底,9P プロトコルによるネットワーク透化性,プロセスごとの名前空間である.Plan9 自体は TSS のような集中から WS,さらに分散した運用が可能である.

逆にネットワーク(ソケット)インタフェースにファイルインタフェースを引き寄せるアプローチはないものか.Pipe も含めて.

  • AF_LOCAL は?
  • 無名ファイルを提供する仕組みを組み込む.

名前空間

すべての資源は階層構造のファイルシステムで表現され(三つの例外:プロセス生成,ネットワークアドレス,共有メモリ),ユーザ,プロセスごとにネームスコープを持つ.

  • /dev … デバイス(特殊ファイル扱いではない) . カーネルが管理している実体は一つだが,ウィンドウマネージャ rio は /dev/(cons mouse draw) をプロセス毎に多重化して見せる.Unix の疑似端末の汎用化?

  • /env … 環境変数

  • /proc … プロセス(Unix の proc fs に相当)

  • /net … ネットワークプログラミングはソケットを使わず,/net 以下を open/read/write/close するみたい.

コンパイル時にネームスコープやプロセスごとの属性はわからない. ファイルへのアクセスはすべてネームサーバを介し,プロセスごとのネームスコープでファイルサーバへ要求が飛ぶ.

link を廃止し,bind により動的にファイルツリーを生成する(ファイルサーバだけは静的なツリーを持っているが,ユーザから見えるツリーは login 時に動的に生成される).

  • パスを設定する必要がない!!
  • スーパユーザ(suid/guid)が存在しない
    • ホストオーナってのがあって,その人が最初に名前空間をセットアップする.
  • セキュリティ(cgiプログラムがアクセスできるネームスコープの制限,etc)

ネットワーク共有

  • NAT . ゲートウェイホストのネットワークインタフェースをローカルの /net からアクセスできるようにする. {{{ % import gw_host /net }}}
  • リモートデバッグ . リモートホストのプロセスをローカルの /proc からアクセスできるようにすることで,ローカルデバッガからリモートプロセスをデバッグできる.アーキテクチャが違っても OK) {{{ % import remotehost /proc % ps; acid }}}

あと,HDをWORMキャッシュで利用するというか,WORMベースのファイルシステムは信頼性のあるシステムを構築するには必須だろうな.パーソナル or ホームユースでも有効だと思うけど,メディアのメンテナンス,コストを考えるときびしいかな.

  • ホームサーバみたいなものが一般的になって,町の電気屋さんがメンテしてくれる程度になれば現実的かな.

思いのほか,そのような時期は早く到来するのかも?

  • [http://www.sony.co.jp/sd/products/Professional/DataArchive/BC2/BC2-3/FSV-E1_80/ StorStation] (Sony)

  • [http://slashdot.jp/article.pl?sid=01/11/06/0726225&mode=nested&threshold= SONYがLinuxベースのストレージアプライアンスを発表] (SlashdotJapan 2001-11-06)

  • [http://slashdot.jp/articles/03/01/19/1243228.shtml?topic=38 シャープから超リッチなLinuxホームサーバー] (SlashdotJapan 2003-01-19)

  • [http://www.asahi.com/business/update/0102/003.html データの「百年保存」も可能に 富士通が新システム] (asahi.com 2004-01-02) . 技術的にどんなものかわかんないけど,メンテコストは高そうだなぁ.ところで個人のデータをデータセンタのようなところに預けるというビジネスはうまくいくものなのかなぁ? . 信頼できるかという問題もあるけど,デジカメデータ,MP3 データなどデジタルデータの大容量化を考える(容量より数の方が大きな問題かなぁ?)と個人で長期間管理できるのだろうか?

  • [http://www.itmedia.co.jp/lifestyle/articles/0401/10/news002.html 東芝「RD」はホームサーバに進化する?] (ITmedia 2004-01-10) . ''「キーワードは“コンテンツシェア”だ。1カ所で録画したものを複数の端末で利用できる。逆に家の中にある複数のストレージを、まるで1つの大容量ストレージとして扱える」''

  • 家電ではなく PC 側の傾向として,玄箱のようなパーソナルユース NAS への注目が挙げられる.

最近の Plan9 では [http://plan9.bell-labs.com/sys/doc/venti/venti.html Venti] というアーカイブストレージサーバが話題になっているらしい.従来の Plan9 では,ネットワークファイルサーバにもなる標準ファイルシステム fs とローカルファイルサーバの簡易ファイルシステム kfs から構成されていた.今後は,venti + fossil という形になるようだ.

  • venti: ブロック番号に SHA-1 の結果を使った仮想ブロックデバイス.つまり同じ内容のブロックはコピーされない.
    • Knoppix FUSE-CLOOP ドライバでも同じことをやっている.
  • fossil: スナップショット,SoftUpdate (FreeBSD のとは違うみたいだが) を提供する.
    • dumpfs ってのもあったな.

Styx/9P2000

  • [http://lava.net/~newsham/plan9/ 9P implementation in Python]
  • [http://rubyforge.org/projects/rstyx/ RStyx]
  • [http://jstyx.sourceforge.net/ JStyx]

関連情報

  • [http://basalt.cias.osakafu-u.ac.jp/plan9/p9index.html Plan9について] . 岡本健二氏のページ.TransTechの記事(確かOS特集号)の続きが読めるようです.

  • [http://plan9.aichi-u.ac.jp/ Plan9] . Kenji Arisawa氏のページ.

    • [http://plan9.aichi-u.ac.jp/pegasus/ Pegasus] . Plan9 の特徴を活かした Web サーバ.
  • [http://linuxtoday.com/developer/2000112900220PS Vita Nuova breaks new OS ground] (LinuxToday 2000-11-29)

  • [http://slashdot.jp/article.pl?sid=02/04/28/0955208&mode=nested Plan9 第4版リリース] (SlashdotJapan 2002-04-28) . だそうな.VMWareはサポートリストに入っているみたいだけど,bochsで動くかな?

  • [http://www.tip9ug.jp/ Tokyo Inferno/Plan 9 Users Group] . drawterm などのサービスを提供していたり.

  • [http://p9c.cc.titech.ac.jp/plan9/9log.html Plan9 作業日誌] . 山梨さんのページ.

  • [http://blog.nizah.net/archives/cat_plan_9.html Nizah blog] . 木田さんのページ.


そういえば,Kernighan と RobPike が書いた The Practice of Programming の翻訳買ったけど,まだ1章しか読んでないや.

Clone this wiki locally