一般にはあまり知られていないかもしれないが、Lucent Technologies社は、'96年にAT&T社から独立した通信関連の研究・開発会社である。しかし、その中心に位置している“ベル研究所”すなわち電話を発明したグラハム・ベルの名を取ったこの研究所の名前は、その会社本体よりもずっと知名度が高いはずだ。ベル研究所から生まれた重要な発明は、デジタルコンピュータ、トランジスタ、太陽電池、レーザー、HDTV、DSLなど、枚挙にいとまがないほどだが、ここで開発されたソフトウェアの中にも、その後に対する影響力が極めて大きなものがある。それは、今日までほとんどのOSが少なからぬ影響を受けている『UNIX』そのものである。
今回、Lucent Technologies社の日本法人である日本ルーセント・テクノロジー(株)の主催で12月5日に“ベル研究所テクノロジーセミナー2000”が開催され、UNIXの共同開発者のひとり、Dennis M.Ritchie(デニス M.リッチ)博士(※1)が特別講演をされたので、その内容をレポートする。
※1 一般的には“リッチー博士”と表記されることが多いが、本稿では今回のテクノロジーセミナーの案内にある表記に従った。UNIX開発者の1人Dennis M.Ritchie(デニス M.リッチ)博士 |
リッチ博士特別講演“ベル研究所におけるOS研究のテーマ”
リッチ博士は、同僚のKen Thompson博士とともに、たった2人でUNIXの開発を始めたことが知られている。そしてそれは、他の重要なソフトウェアの多くがそうであるように、ベル研究所の中の正規のプロジェクトとしてではなく、個人のいわば趣味的な活動を起源としている。自分が使うものを自分が使いたいように自分で作るという、ものづくりとして最も基本的な意図によって生み出されたものなのだ。
この2人は、UNIX開発の功績によってACMチューリング賞(※2)をはじめIEEEエマニエル・ピオレ賞(※3)など、数々の賞を受賞している。最近では、'99年にクリントン大統領からテクノロジーナショナルメダルを授与された。'60年代に開発を始めたソフトウェアに対して、'99年にも表彰されるということが、このOSがいかに大きな影響力を長年に渡って持ち続けているかを物語っている。
※2 A.M.Turing Award:計算機科学分野で功績のあったイギリスの数学者アラン・チューリング(Alan Turing)を記念して'66年に創設された賞。米コンピューター学会(Association of Computer Machinary)によって毎年秋に、計算機科学分野で優れた業績を上げた研究者に贈られる。日本人の受賞者はいない。※3 Emanuel R.Piore Award:米国電気電子技術者協会(Institute of Electrical and Electronics Engineers)が'76年に創設した賞。情報処理分野で優れた業績を上げた研究者に贈られる。過去2人の日本人が受賞している。
この分野の研究者としては非常に珍しいことだが、リッチ博士は今でもベル研究所に所属し、コンピュータ・サイエンス研究部門長を務めている。博士の講演の前半は、主にUNIXを開発した当初から考えられていたような基本的なコンセプトを復習するものだった。改めて思い出してみると、これらが今日でも新鮮さを失わない強力なアイディアだったことが良く分かる。
UNIXを開発する際に最初に考えたのは、データ、つまりディスク上のファイルをどうやって表現し、それに対してアクセスする方法を確立するかということだったという。基本的な方針としては、ファイルは単なるバイトデータの並びであって、その解釈はアプリケーションに任せること、ただしそのアクセスを最適化するのがOSの仕事であること、そして、バイナリではなく、できるだけテキストファイルを使用することを挙げている。そしてその結果生まれたのが階層的なディレクトリ構造を持つ、シンプルなUNIXのファイルシステムだったというわけだ。
リッチ博士はUNIXの開発のために作られた“C言語”の作者としても有名だ |
UNIXのまた別の大きな特徴として、I/Oデバイスを抽象化し、ファイルとまったく同じように階層構造のディレクトリの中で扱えるようにしたことも挙げられる。これも今日では当たり前のことのように思われがちだが、そう簡単に思いつくことでもないし、実際のOSの中で破綻無く実装するのも楽ではなかったはずだ。こういったことを先駆的に始めた功績には計り知れないものがある。
これらはほんの一例だが、リッチ博士はUNIXの優れた特徴が多くのOSに受け継がれ、またLinuxなどUNIX直系のOSによってオープンソフトウェアの環境が実現されていることにかなり満足しているように見受けられた。博士によれば、AT&Tが『System V』(初の商用UNIX)の仕様を発表した時点で、UNIXはすでにオープンなものであったという。言われてみれば確かにそうだろう。そして、UNIXの基本的なアーキテクチャ自体が、こうした形で発展することを潜在的な可能性として元々持っていたということも大きいように思われる。
博士の講演の後半は、'90年から始まった新しいOSのプロジェクト“Plan 9”の紹介となった。これは、UNIXの開発がローカルなファイルシステムをどう表現するかということをテーマとして始まったのに対して、ローカルであれリモートであれ、リソースというものにどうアクセスするかを追求する研究として始まったという。この内容に関しては今回は紹介する余裕が無いが、Plan 9の研究成果はベル研究所のウェブサイトで公開されている。また、これを発展させた『Inferno』と呼ばれるシステムは、ハンドヘルドデバイスやセットトップボックス、あるいはゲームマシン用の“仮想OS”として、LucentからスピンオフしたVita Nuovaという会社で開発が進んでいる。
講演の最後に示された、リッチ博士のホームページのURLと、博士のメールアドレス |
ここで言う仮想OSとは、機器組み込み用の小さなOSとして単独でも動作するし、WindowsやUNIXなど、他のデスクトップOS上のアプリケーションとしても動作するものを指している。これは、最近の組み込み用OSに良く見られる一般的な特徴でもある。私事になるが、このあたりは筆者のASCII24での連載コラムのテーマとも密接に関わってくるので、続きはそちらでカバーさせていただきたい。