Plan9から何を学べるのか?

はてな日記を始めた初日のエントリに,なぜPlan9に注目するのか,と書こうとして筆が止まっていた.

関係ありそうなところで,Ron Minnich氏のWhy Plan 9 is not dead yet And What we can learn from itが面白い.どのようにUNIXのコンセプトが壊れ始め,Plan9開発のきっかけになったのかが書かれている.

  • UNIXの「すべてはファイル」というコンセプトはソケット導入より早く,70年代末に壊れ始めていた.
  • UNIXはアクティブプロセスモデルとパッシブデータモデルを持つが,アクティブデータモデルを欠いていた.
  • UNIXカーネルは「I/Oマルチプレクサ」で,Plan9は「サーバマルチプレクサ」である.
    • UNIX: サブシステムの追加に伴うインタフェースの追加,階層化により,カーネルが肥大していった.
    • Plan9: リソースへアクセスするためのインタフェースを共通化(9P2000プロトコル)することで,カーネルはシンプルで小さくなる.

「サーバマルチプレクサ」*1って言ったって,それってMachのメッセージパッシングでしょ.って思うかもしれないが,Machにはユーザアプリから見えるOSパーソナリティはUNIXで,新しいユーザビリティを提供しようという方向ではなく,OS開発者の視点からOS開発(研究)の基盤としてどのようなOSが望ましいかを追求したプロジェクトだったのだと思う.

*1:Plan9の論文には,"9P is really the core of the system; it is fair to say that the Plan 9 kernel is primarily a 9P multiplexer."と書かれている.