ベル研究所はオペレーティング・システム開発の長い歴史を持っている。例えばIBM 709x用のBE-SYSやMulticsがそうだ。Ken Thompsonと私は,1960年代にMulticsから多くを引き継いでUNIXを作った。UNIXの基本となるコンセプトは,データのすべてを階層型のディスク・ファイル・システムとして表現することだった。階層型ファイル・システムはWindowsにも影響を与え,いまやすっかり当たり前のものになった。
UNIXに与えられた改良の中で最もインパクトがあったのは,1980年代にもたらされたリモート・ファイル・システムである。たとえば米Sun MicrosystemsのNFS(Network File System),ベル研究所のNetAなどだ。ただ,これには問題があった。コンピュータ同士を接続するプロトコルやコンピュータのアーキテクチャに依存する面があり,リモート・システムの資源を自由に使えるわけではなかった。それを解決しようというのがPlan 9だ。
Plan 9の出発点となるアイデアを一言で言えば「ファイル・システムと通信するプロトコル(9Pプロトコル)を定義しよう」ということだった。UNIXで/devでハードウエア・デバイス,/procでプロセスにアクセスするように,Plan 9では/netでネットワークにアクセスする。/net/dnsでDNS(Domain Name System)に,/net/tcpでTCP(Transfer Control Protocol)接続にアクセスするのだ。Plan 9では,ネーミング・スキームをプロセスごとに設定することもできる。UNIXやWindowsを使っている人はこれを聞くとぎょっとするかもしれないが,これは必要な,そして便利な機能なんだ。
プロトコルやコンピュータ・アーキテクチャに極力依存しないようになっていることもPlan 9の特徴だ。たとえば
ftpfs ftp.microsoft.com /n/ftp
とすれば,FTP(File Transfer Protocol)でつながったファイル・システムをマウントして/n/ftpディレクトリを自由に使うことができる。コンピュータのバイト・オーダリングに依存しないようにするために,テキストで表現できるものは極力テキスト・ファイルにするという方針もUNIXより徹底させている。文字コードにはUnicodeを使った。セキュリティの面でも,Plan 9はUNIXより優れたOSと言えるだろう。
Plan 9は2000年6月に3番めのリリースを公開した。Plan 9のWebサイトからダウンロードできる。変更を加えたらコミュニティにその成果を戻さなければならないなどの制限はあるが,ほぼオープンソースであると言ってよいと思う。
Plan 9の技術は,すでに製品に取り入れられている。英Vita Nuovaの「Inferno」は,Javaのような仮想OS環境を提供するものだ。携帯機器,セットトップ・ボックス,ゲーム専用機などの小さな機械で使うこともできるし,WindowsやUNIX上のアプリケーションとして使うこともできる。Lucentの音声やデータを一括して扱える交換機「Pathstart Access Server」やファイアウォール「Lucent Managed Firewalls」はInfernoをOSに使っている。まだ製品化はされていないが,家庭やスモール・オフィスでVPN(Virtual Private Network)を使うための「Viaduct」でも使われるだろう。これはきっと面白い製品になるよ。モデムとコンピュータの間にハードウエアを挿入するだけで,家庭とオフィス間の通信をちゃんと暗号化できるんだ。難しい操作は何も必要ない。
(以下は質問に答えて)
今日の講演ではプログラミング言語の話がなかったが,ベル研では言語の研究もしているのか。
時間が限られているので今日はPlan 9に絞って話をしたが,もちろんプログラミング言語の研究もしている。AMPL,C Front,C5,Concurrent C,Keynote,Lisp-TC,Paisely,Sなど,たくさんの言語プロジェクトがある。
米MicrosoftがC言語の派生言語としてC#というものを開発したが,C言語の開発者としてどのように見ているか。
C#については多くの情報を持っているわけではない。C#を評価するのは難しい。Javaと同じで,言語というよりは企業戦略としての色彩が強いからだ。言語としてのC#の出来具合いがどうかというよりも,彼らの企業戦略が正しいか,製品がよくできているか,ということによって評価が決まるのではないだろうか。
Plan 9は,UNIXとの互換性はあるのか。
コマンドライン・インタフェースで使う限りは,かなりの互換性がある。ただ,カーネルはすべて新しく書いたものだし,API(Application Programming Interface)は同じではない。ウィンドウ・システムも,X Windowがないわけじゃないんだが,実際によく使われているのは別のものだ。
Windows,UNIX,Linuxがある状況では,Plan 9の普及は難しいのではないか。
必ずしもそうは思わない。Plan 9のダウンロードは2000年6月からこれまでで5000件に上る。使う人はいると思うよ。