米 Bell Labs Ken Thompson / Rob Pike 等が 1992 年公開した分散 OS 研究プロジェクト。9P プロトコル全リソースをファイルとして抽象化、UTF-8 策定の母体、UNIX の直系後継として研究分野で長く影響を残す。
Plan 9 from Bell Labs(プラン ナイン フロム ベル ラブズ)は、米 AT&T Bell Labs Computing Sciences Research Center が 1980 年代後半から開発を始め、1992 年に学術機関向けに第 1 版、2002 年に GPL 第 4 版として公開された分散 OS 研究プロジェクトです。創設メンバーは Ken Thompson(UNIX / B 言語 / Go 共同開発者・Turing 賞)・Rob Pike(UTF-8 共同設計者・Go 共同開発者)・Dennis Ritchie(C 言語 / UNIX 共同開発者・Turing 賞)・Brian Kernighan(C 言語著者)など UNIX を生んだ伝説的研究者集団です。
名前の由来は B 級 SF 映画「Plan 9 from Outer Space(外宇宙からのプラン 9)」(1959、エド・ウッド監督)で、研究者のユーモア精神を反映しています。Plan 9 は UNIX の正統後継として位置付けられ、UNIX で残された設計上の欠陥を解決することを目標に掲げました。具体的には、UNIX が「ほとんど everything is a file」だったのを「everything is a file」へ徹底化、CPU / 端末 / GUI / ネットワーク / プロセス情報を含むすべてを統一的にファイルとして扱う設計を採用しました。
技術的革新は数多くあります。9P プロトコル(分散ファイルプロトコル、現代 Linux の v9fs / WSL2 で使用)・UTF-8(Plan 9 で世界初実装、Ken Thompson + Rob Pike が 1992 年に設計)・rfork システムコール(プロセス/名前空間制御、現代 Linux の clone()/namespace の祖先)・Acme エディタ(マウス中心の実験的テキストエディタ)・libthread(構造化ゴルーチン的並行性、Go 言語に直接影響)などです。
商業的には普及しませんでしたが、研究分野で長く影響を残しました。UTF-8 が現代インターネットの標準文字エンコーディングとして全世界で使われていること、Linux のコンテナ技術(Docker / Kubernetes の基礎)が Plan 9 の名前空間概念から直接派生していること、Go 言語(Rob Pike / Ken Thompson 共同開発)の設計思想が Plan 9 の延長線上にあることなど、間接的に現代 IT の基盤に大きく貢献しました。
現在は研究停止状態ですが、9front というコミュニティフォークが 2011 年から継続中、また Plan 9 から派生した Inferno(後継分散 OS、1996 公開、現在 Vita Nuova が継続)、9p プロトコル実装の v9fs(Linux カーネル統合)、libthread に影響を受けた Go 言語などの形で生き続けています。
| 特徴 | Plan 9 | UNIX | Linux |
|---|---|---|---|
| 公開年 | 1992 | 1969 | 1991 |
| ファイル抽象化 | 完全 | 部分 | 部分 |
| 文字コード | UTF-8 |
| ASCII |
| UTF-8 |
| 名前空間 | per-process | グローバル | per-process(Linux 2.4+) |
| 分散透過性 | あり | なし | NFS で部分 |
Plan 9 First-Fourth Edition は GPL でオープンソース公開されており、無料でダウンロード可能です。9front(現代コミュニティ版)は最も活発な実装で、x86-64 / ARM Raspberry Pi 等の現代ハードウェアで動作します。研究 / 教育 / プログラミング言語設計 / 分散システム理解の教材として最適です。
注意点として、Plan 9 は本格的な日常用 OS ではなく研究用 OS の性格が強く、ブラウザ / Office / マルチメディアアプリは限定的です。学術 / 研究目的での使用がメインで、実用 OS として運用するのは向きません。Inferno は商用版もあり Vita Nuova から購入可能ですが、需要は極めて限定的です。
Q1: なぜ Plan 9 は普及しなかったのですか? A: Linux の急速な普及と圧倒的なアプリエコシステムが Plan 9 の機会を奪ったこと、Plan 9 の革新的な設計が既存ソフトウェア互換を捨てる必要があったこと、Bell Labs / AT&T が商業展開に消極的だったことが主因です。
Q2: UTF-8 が Plan 9 で生まれたって本当ですか? A: はい。Ken Thompson と Rob Pike が 1992 年 9 月の Plan 9 開発中に UTF-8 を設計し、世界で初めて Plan 9 で実装しました。後にインターネット標準として全世界で採用されました。
Q3: 現代で Plan 9 を学ぶ意味はありますか? A: コンテナ技術 / 分散システム / OS 設計の基礎を深く理解する教材として価値があります。9front を VirtualBox / Raspberry Pi で動かして遊ぶことで、現代 OS の概念の起源を体験できます。