Plan 9 from Bell Labs

Plan 9 from Bell Labs:UNIXの革新的な後継OS



Plan 9 from Bell Labs(通称Plan 9)は、ベル研究所のComputing Sciences Research Centerで1980年代中頃から2002年にかけて開発された、主に研究用途向けの分散オペレーティングシステムです。UNIXの流れを汲みつつ、UNIXの設計上の課題を克服することを目指した、革新的なシステムとして知られています。

名称の由来



Plan 9の「9」は、UNIX version 8に続くバージョン番号を示唆しているという説があります(UNIX version 9と10も存在します)。しかし、同時にエド・ウッド監督のSF映画『Plan 9 from Outer Space』に由来するという、ユーモラスな一面も持ち合わせています。プロジェクトのマスコットキャラクターであるGlendaも、エド・ウッド作品にちなむ命名です。初期のウインドウシステムが『8½』と名付けられたことにも、映画へのオマージュとUNIXからの継承を示すユーモアが感じられます。

歴史



Plan 9は、ベル研究所内における主要な研究プラットフォームとしてUNIXに取って代わることを目的として開発されました。分散マルチユーザー環境におけるシステム利用やプログラミングに関するUNIXモデルの改良が、研究の中心課題でした。

当初はベル研究所内部のプロジェクトでしたが、1992年には大学向けに、1995年には一般向けに商用OSとしてリリースされました。しかし、その後ベル研究所の後継であるルーセント・テクノロジーは商業化を断念し、2000年にはオープンソースライセンス、2002年にはフリーソフトウェアライセンスで非商用リリースされました。現在も、ベル研究所がホスティングする開発ソースツリーを通じて、活発な開発が続けられています。

概要:UNIXからの進化



Plan 9は、UNIXが抱えていた問題点を解決するために設計されました。UNIXは、単一マシンを多くのユーザーが共有することを前提とした設計であるため、複数のマシンを共有する分散環境への対応が不十分でした。Plan 9は、ネットワーク環境における分散処理を前提とし、ユーザーごとに独立した作業環境を提供することで、この問題を解決しました。

さらに、UNIXがローカルファイルシステムの表現に焦点を当てていたのに対し、Plan 9はローカル、リモートを問わずあらゆるリソースへのアクセスを課題としました。この思想に基づき、端末CPUサーバ、ファイルサーバ、認証サーバを分離することでセキュリティの向上を図り、ファイルサーバによる自動的なバックアップ機能も備えています。初期はMOジュークボックスをストレージとして想定していましたが、現在ではハードディスクが主流となっています。

すべてのリソースはファイル



UNIX以前のOSでは、デバイスごとに異なるアクセス機構が用いられていました。UNIXはこれを改善し、すべての入出力をファイル操作で統一的に扱うことを目指しました。しかし、プロセス状態の制御など、ファイルにうまくマッピングできない概念も存在しました。

Plan 9は、この問題に対し、あらゆるシステムリソースをファイルシステムの一部として表現するという、より徹底的なファイル中心アプローチを採用しました。ネットワークやユーザインタフェースなど、従来はファイルシステムの外に存在していたリソースも、ファイルとして扱われます。これにより、システムインタフェースの統一性と簡潔さが実現されています。

分散アーキテクチャ



Plan 9は単独マシンでも動作しますが、OSの機能コンポーネントを複数のマシンに分散して配置することもできます。典型的な構成では、軽量な端末でGUIを操作し、CPUサーバで計算処理を行い、別のマシンをファイルサーバとして利用します。仮想化技術の発展により、単一マシン上でもこの環境を再現することが容易になりました。

設計思想



Plan 9の設計目標は、以下の点を重視しています。

ファイルとしてのリソース: すべてのリソースを階層型ファイルシステム内のファイルとして表現する。
名前空間: アプリケーションから見て、ネットワークは単一の一貫した名前空間として表現される。各プロセスの名前空間は独立しており、ユーザーは複数の名前空間を同時に扱うことができる。
* 標準通信プロトコル: 9Pプロトコルを用いて、ローカル、リモートの区別なくあらゆるリソースにアクセスする。

Plan 9では、ファイル、画面、ユーザー、コンピュータなど、すべてに固有のパス名が割り当てられ、UNIXと同様の方法で操作できます。さらに、任意のオブジェクトにパス名として名前を付けることができます。これは、World Wide WebのURIシステムに似ています。

Unionディレクトリ



Plan 9は、異なる媒体やネットワークにまたがるリソース群を透過的に連結できる「unionディレクトリ」という概念を導入しました。これにより、例えば、リモートの`/bin`ディレクトリを手元の`/bin`ディレクトリと連結し、ローカルとリモートのアプリケーションに透過的にアクセスできます。

/proc, /net



`/proc`ディレクトリには動作中のプロセスの情報が、`/net`ディレクトリにはネットワークインタフェースの情報が格納されています。これらのディレクトリもファイルシステムの一部として扱われ、コマンドラインツールで操作できます。`/net`はTCP/IPなど、複数の通信プロトコルやデバイスドライバのインタフェースを統合したもので、unionディレクトリと組み合わせることで、ネットワークアクセス制御などの高度な機能を実現できます。

ネットワークと分散コンピューティング



Plan 9は、通信機能を重視した分散システムです。9Pプロトコルは、ネットワークオブジェクトをファイルのようにアクセスできるインタフェースを提供し、ネットワーク透過性を高めています。

Unicode対応



Plan 9は、内部コードにUTF-8を採用しており、多言語対応が容易です。UTF-8自体は、Plan 9の研究過程でケン・トンプソンによって考案されました。

実装と影響



Plan 9は、x86アーキテクチャを中心に、様々なプラットフォームに移植されています。C言語で記述されており、POSIX準拠アプリケーションの移植も可能です。Plan 9は、ファイルシステムによるシステムインタフェースの統一というUNIXの概念を、現代的な分散システムとして実現した意義深いプロジェクトです。UTF-8をはじめ、その技術は他のOSにも影響を与えています。しかし、UNIXほどの普及には至らず、研究用途に留まっている現状です。その理由として、既存の十分に動作するシステム(UNIX)の存在が、革新的なPlan 9の普及を阻んだという指摘もあります。

ライセンス



Plan 9はフリーソフトウェアライセンスで公開されており、ソースコードは自由に利用できます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。