Skip to content

Instantly share code, notes, and snippets.

@zonuexe
Last active December 7, 2023 23:02
Show Gist options
  • Save zonuexe/1c08f7aea83df9500d2ea0846de945e6 to your computer and use it in GitHub Desktop.
Save zonuexe/1c08f7aea83df9500d2ea0846de945e6 to your computer and use it in GitHub Desktop.
『オープンソースソフトウェア 彼らはいかにしてビジネススタンダードになったのか』 3. バークレー版UNIXの20年

3. バークレー版UNIXの20年

Twenty Years of Berkeley Unix:
From AT&T-Owned to Freely Redistributable

バークレー版UNIXの20年
(UNIXが、AT&Tの所有物からオープンソースソフトウェアになるまで)

Marshall Kirk McKusick (マーシャル・カーク・マクージック)

Translation by Akira Kurahone

初期の歴史

1973年11月。パーデュー大学でOS理論のシンポジウムが開催された。これこそAT&T ベル研究所のケン・トンプソンとデニス・リッチーの二人がUNIXの論文を初めて発表したシンポジウムである。そして、カリフォルニア大学バークレー校のファブリー教授は、その日トンプソンとリッチーの講演を聞くや、UNIXのコピーを入手し、バークレーに持ち帰っていろいろ試してみたいと思った。

しかし、当時のバークレーには、バッチ処理用のメインフレームが一台あるきりだった。そこで、UNIXを動かせる(DEC社製の)PDP-11/45を手に入れることがファブリー教授の取り急ぎの課題となった。うまいことに、コンピュータサイエンス学部は、数学部と統計学部との三者共同購入という形で、PDP-11/45をすぐに導入できた。そして、1974年の1月には早くも、UNIX入りの磁気テープがバークレーに届き、大学院生のキース・スタンディフォードが新品のPDP-11/45に最新版のUNIXバージョンをインストールすることとなる。

ケン・トンプソンは、それまでUNIXがインストールされる際には、たいてい自分も現場に行って一緒に作業をしていたが、バークレーのときはパーデュー大学にいて、その作業に立ち合っていなかった。しかし、バークレーのシステムが謎のクラッシュを何度も起こすので、その原因を同定するためにパーデュー大学からリモートログインして協力することになる。とはいえ、当時バークレーには(据え置き型のモデムを内蔵した)300ボーの音響カプラしかなかった。しかもそのモデムは自動受信機能つきでなかった。結局、トンプソンはバークレーのコンピュータ室に電話をかけ、そこで待機していたスタンディフォードに頼んで別回線の受話器を音響カプラに押し込んでもらった。こうして、トンプソンは東海岸のニュージャージー(ベル研究所)にいながら、西海岸のバークレーのUNIXをリモートでデバッグすることができた。

バークレーの謎のクラッシュは、ほとんどの場合、一台のディスクコントローラに二台のハードディスクを接続したときのアクセスの競合が原因で起こっていた。DEC社のマニュアルにはそれができると書いてあったのだが、実際の話、トンプソンはバークレーのPDP-11/45をデバッグするまで、ひとつのコントローラによって複数のディスクが制御されているマシンを見たことがなかった。

トンプソンのリモートデバッグによってバークレーの問題は解決した。そしてカリフォルニア大学バークレー校とベル研究所は、その後も様々な形で協力することとなる。ちなみに、バークレーのPDP-11/45上で使えるソフトウェアの数が急速に増えたのも、ベル研究所の研究員たちが自分たちの研究成果をいろいろな形で分かちあおうとしたからである。

さて、バークレーでは、UNIXで動作するPDP-11/45が安定して稼働するようになったが、今度はコンピュータサイエンス学部、数学部、そして統計学部の間で問題がもちあがった。PDP-11/45の運用形態が問題になったのである。原因は、数学部と統計学部がPDP-11/45上で(DEC社の標準的なタイムシェアリングOSである)RSTSを使いたがったことにあった。結局のところ、この問題については、3つの学部が話し合い、8時間交替シフトで二つのオペレーティングシステムを使い分けるという妥協案が浮上した。つまり、(3学部の2つが希望する)RSTSでマシンをまず16時間使用する。その後で、UNIXでマシンを8時間使用するのである。しかも、学部によって利用できる時間帯に偏りができることを避けるため、交替シフトの割り当て時間は日替りで8時間ずつずらされた。今日の午前8時から午後4時までがUNIXを使える時間としたら、明日のUNIXの時間は午後4時から真夜中まで、明後日は真夜中から午前8時までとなったのである。この変則的なスケジュールにもかかわらず、オペレーティングシステムを学ぶ学生たちは、元々あったバッチ処理用のメインフレームではなくUNIXの載っているPDP-11/45上で研究プロジェクトをしたがった。

そしてその頃、INGRESというデータベースの開発をバッチ処理用のメインフレーム上で行なっていたユージン・ウォン教授とマイケル・ストーンブレーカー教授は、バッチ環境の制約の多さから開発プロジェクトを救うために、自分たちの開発環境をPDP-11/45上に移行し、UNIXのインタラクティブな環境で研究を行ないはじめた。しかし、そのPDP-11/45だけでは両教授の使いたいコンピュータ資源を提供することができなかった。また利用時間の変則シフトにも耐えられなくなった両教授は、1974年春、PDP-11/40を購入し、そこで新しくリリースされたUNIXバージョン5を使いはじめる。そしてINGRESは、1974年の秋に配布され、コンピュータサイエンス学部が独自に配布する最初のソフトウェアとなる。それからの6年間、INGRESは磁気テープで数百本配布され、カリフォルニア大学バークレー校は実践的なシステムの設計と構築に優れている、という評価を大いに高めている。

ところで、コンピュータ学部のPDP-11/45は、INGRESプロジェクトがPDP-11/40に移ったとはいえ、それ一台でUNIXを使いたい全学生のニーズをまかなうことはできなかった。そこで、マイケル・ストーンブレーカー教授とボブ・ファブリー教授は、このコンピュータ資源不足の状況を何とか改善すべく、1974年の6月、コンピュータサイエンス学部専用にPDP-11/45を2台購入する運動を展開しはじめた。彼らの努力が実り、予算がおりたのが1975年初頭。DEC社がPDP-11/45よりずっと性能のよさそうなPDP-11/70を発表したのも1975年初頭。そこで、PDP-11/45を2台という予定で確保された予算でPDP-11/70が一台購入された。そしてそのPDP-11/70が導入されたからというわけでもないが、ちょうどそのマシンが到着する七五年秋に、ケン・トンプソンが一年間の長期休暇を利用して、母校の客員教授としてベル研究所からバークレーに赴任する。彼は、ジェフ・シュリーブマンおよびボブ・クライドルと一緒に、新しく導入されたばかりのPDP-11/70上にUNIXバージョン6をインストールした。

トンプソンがベル研究所からやってきたのと時を同じくして、1975年の秋に、無名の新人が二人、バークレーの大学院に入ってきた。ビル・ジョイとチャック・ヘイリーである。二人は、トンプソンの持ってきた新バージョンのUNIXにすぐに興味をいだいた。そして彼がPDP-11/70上でいじっていたPascalプログラミングシステムをつっつきはじめ、まだインタープリタだったPascalの機能を二人で拡張し、コンパイルも実行速度も速く、巧みなエラー処理機能が実装されたコンパイラに改良した。そのため、このPascalコンパイラは、バークレーの学生たちが好んで使う言語処理系となった。

そのうち、テレタイプ式のモデル33端末に代わってADM-3スクリーン端末が導入され、edエディタの使いづらさに嫌気がさしていたジョイとヘイリーが、emエディタを自分たちで改良し、exラインエディタを使った。このemエディタは、クイーンメアリーズ・カレッジ(英国、ロンドン)のジョージ・コウロウリス(George Coulouris)教授から二人がもらったものであった。

1976年の夏が終わり、ケン・トンプソンがバークレーからベル研究所に戻ってしまうと、ジョイとヘイリーはUNIXカーネルの内部をいろいろいじってみたくなった。シュリーブマン教授の厳しい監督のもと、二人はベル研究所から送られてきた「50か所の変更箇所テープ("fifty changes" tape)」というアップデートテープに含まれていたソースコードの修正点や改良点をバークレーのシステムに反映させた。この作業を通じてUNIXのソースコードに精通した彼らは、バークレーのUNIXカーネルにあったボトルネックを解消するために、いくつかの工夫を実装していった。

初期のバークレー版UNIXソフトウェア

その頃Pascalコンパイラのエラー処理機能が注目を集め、ジョイとへイリーが改良したPascalコンパイラが欲しいという要望がバークレーに届くようになった。それに対応するため、ビル・ジョイが1977年にまとめたのが"Berkeley Software Distribution(BSD)"である。バークレー版UNIXソフトウェアのはじまりであるこのディストリビューションには、Pascalコンパイラが含まれていた。Pascalのソースコードを置くサブディレクトリのひとつには、exエディタのソースコードがさりげなく忍ばせてあった。その年、ジョイはソフトウェア配布担当として、バークレー版UNIXソフトウェアのテープを30本ほど発送している。

そのうちバークレー校のキャンパスに、画面上でカーソルを自由に移動できるADM-3aスクリーン端末が数台導入される。そしてジョイが、exラインエディタを拡張する形でviエディタを開発し、ついにディスプレイの画面上で自由にカーソルを動かしてテキスト編集ができるようになる。と、同時に、ジョイは、何種類もの端末機を相手にしなければならないという問題に直面した。予算の関係で古い機器を全部一度に新しくできない。どこの大学でもよくある話だが、当時のバークレーにも、新しい機種の端末と古い機種の端末が混在していた。そこでジョイは、異なる機種の端末を一括してサポートできる最適化プログラムを書くのはやめにして、画面の描画をインタープリタプログラムにさせる方法を思いつく。画面の描画は端末の機種ごとに異なるので、端末ごとの属性(画面制御のための情報)を記述した定義ファイルを用意し、簡単なインタープリタプログラムがそれを読みながら描画するような仕掛けを作ったのである。のちにtermcapとなるプログラムはこうして誕生した。

1978年半ばには、バークレー版UNIXをバージョンアップする必要が出てきた。Pascalは、ユーザコミュニティからのフィードバックが実装されて、より堅牢なコンパイラになっていた。それまでの1パス方式のコンパイルから2パス方式に改良され、PDP-11/70上で動作するバージョンに加えて、(メモリの少ない)PDP-11/34上で動作することができるようにもなっていた。そこで、ビル・ジョイは、様々なアップデートを反映する形で、"Second Berkeley Software Distribution"を作っている。そして、すぐに2BSDの略称で呼ばれるようになったこのバージョンのバークレー版UNIXソフトウェアには、改良強化版のPascalのほかviエディタが含まれていた。数種類の端末向けのtermcapも用意されていた。ビル・ジョイは、配布用のテープの作成から、電話の応答、ユーザからのフィードバックの実装まで、全部一人でやってのけた。その年の2BSDの発送本数は75本にのぼっている。翌年ジョイが別のプロジェクトに移った後も、2BSDの配布本数は増加の一途を辿っている。ちなみに、PDP-11用のバークレー版UNIXソフトウェアの最終バージョンである2.11BSDは、今でも、世界に数百台残っているPDP-11上で現役で活躍している。

VAXマシン上で動作するバークレー版UNIX

1978年初め、(数式処理システムの)Macsymaを開発していたリチャード・フェイトマン教授は、(PDP-11より)もっと大きなメモリ空間(メモリ容量)を扱えるマシンを物色していた(教授は、元々PDP-10上でMacsymaの開発をはじめている)。そして、DEC社が新しく発表したVAX-11/780は、教授が求めていた条件を満たしていた。価格も購入予算の範囲内だった。そこでフェイトマンは、他の13名の教授と一緒になって、学部予算の不足分を補う形でVAX-11/780の購入補助をしてくれるようNSF(全米科学財団)に申請する。

元々VAXのオペレーティングシステムはDECが提供していたVMSだった。しかし、すでにUNIX環境に慣れ親しんでいたコンピュータサイエンス学部では、新しく導入したVAX上でもUNIXをOSとして使い続けたいと思った。そこでフェイトマン教授は、VAX-11/70がバークレーに到着するとすぐに、ベル研究所のジョン・ライザーとトム・ロンドンがVAX上に移植した32/Vと呼ばれるバージョンを手に入れた。

バークレーでは、32/Vを入手したことで、VAXマシン上でUNIXバージョン7が使えるようになった。しかし、32/Vは、VAXの優れた特徴である(デマンドページング方式の)仮想記憶機能をうまく活用するように書かれておらず、PDP-11上で動作していたバージョンのUNIXと同様、単純なスワッピング方式を用いていた。(デマンドページング方式の)仮想記憶が使えないので、Macsymaの開発者たちは、実装されている物理メモリ(新しいVAXでは1メガバイト)よりも大きなメモリを必要とするプロセス(動作中のプログラム)がVAX上で実行できなかった。

この問題を解決するために、フェイトマンはシステム学科のドメニコ・フェラーリ教授とコンタクトをとった。彼に相談して、VAXのメカニズムを使った(デマンドページング方式の)仮想記憶システムをUNIX用に書いてもらうことを頼むためである。そしてフェラーリ教授の学生の一人であったオザルフ・ババオグル(Ozalp Babaoglu)が、ページングシステムをVAXで実現する方法を研究することになった。しかしそれは容易ではなかった。VAXには、(仮想記憶メカニズムにメモリのどの部分が使用中であるかを示す目印になる)参照ビットがなかったからである。

新しい仮想記憶の最初のバージョンができあがりかけたところで、ババオグルはビル・ジョイに頼んで、UNIXカーネルについて詳しく教えてもらった。そして、ジョイも、ババオグルがページングシステムを実現するために採用していた方法に興味を抱き、それを32/Vへ実装する作業と、それにともなうデバッグを一緒にすることになる。

しかし残念なことに、その当時、バークレーにあるVAXは、フェイトマンたちが購入した例のマシン一台きりだった。しかも、そのマシンは、研究開発用だけでなく一般用にも使用されていた。そのため、1978年のクリスマス休暇をはさんだ数週間、バークレーではVAXのOSが32/Vになったり、「仮想記憶VAX/UNIX」になったりした。いままで動作していた「仮想記憶VAX/UNIX」が突然シャットダウンしたかと思うと、数分後に32/Vのログインプロンプトが表示されるということもしょっちゅうだったが、辛抱強いユーザたちからは何の文句もでなかった。そして、1979年1月になると、ほとんどのバグへの対応がなされ、それ以降、バークレーでは32/VをVAXでのオペレーティングシステムとして使わなくなった。

32ビットのVAXが、いずれビットのPDP-11を駆逐する。そう思ったビル・ジョイは、2BSD(初代バークレー版UNIXソフトウェア)に含まれていたプログラムをVAX向けに移植するプロジェクトを開始した。その時は、ピーター・ケスラーと私(マーシャル・カーク・マクージック)がPascalコンパイラを移植した。ジョイは、exエディタとviエディタ、そしてCシェルの移植を行なった。2BSDに含まれていたその他の様々なプログラムの移植もジョイが担当している。移植作業全体は1979年が暮れる頃までには完了し、VAX用バークレー版UNIXソフトウェアができあがる。それには仮想記憶版カーネル、32/V標準ユーティリティ、そして2BSDから移植したプログラムなどが含まれていた。1979年12月、ジョイは、合計百本近く配布されることとなる3BSD(VAX用バークレー版UNIXソフトウェア)の最初の一本を発送している。

ところで、ベル研究所からのUNIXのリリースは、32/Vを最後にそれ以降行なわれていない。AT&Tが、UNIXの商品化に力を入れはじめ、製品としての安定性を重視するグループにリリースの管理を移行したからである。そのため、32/Vの後継バージョンであるシステムIIIも、その後継バージョンであるSystem Vもベル研究所からはリリースされなかった。UNIXの商品化にともない、ベル研究所はUNIX研究の情報発信センターとして機能しなくなり、UNIXの改良・拡張に携わってきた研究者たちは、自分たちの研究成果の反映されたバージョンをリリースする母体を失ってしまう。その時点で、早くからUNIXにかかわり、UNIXベースの各種ツールをリリースしていたカリフォルニア大学バークレー校が、ベル研究所の代わりとして、UNIX研究の情報発信センターの役割を引きうけることになった。

DARPAからの支援

その頃、国防省高等研究計画局(DARPA)では、やがてバークレー校の活動に大きな変化を与えることになる議論が行なわれていた。DARPAはすでに、傘下にある主な研究センターを結ぶ全国規模のコンピュータネットワークを作りあげていたが、それらのセンターは、施設ごとに異なるハードウェアやオペレーティングシステムを使用していたので、センター間でソフトウェア資源を共有することができなかった。また、それらのセンターでは、そろそろ多くのコンピュータが寿命を迎え、買い換えの時期が迫りつつあった。新しくコンピュータを導入するとなると、もっとも費用がかさむのは、ハードウェアの入れ換えではなく、研究用に使用しているソフトウェアを新しいマシンに移植する作業である。

ハードウェアベンダーをひとつに絞り込めればいいのだが、研究グループによってコンピューティングのニーズにばらつきがあり、それはできない相談だった。また、たったひとつのメーカーに国防省傘下の多くの研究所が依存するのもよろしくない。そこでDARPAでは、議論に議論を重ねたのちに、オペレーティングシステムでの統一がいちばんということになり、移植性に優れたUNIXが標準として選ばれた。

こうしてDARPAは、1979年秋、UNIXに移行したいという意向をカリフォルニア大学バークレー校のボブ・ファブリー教授に伝える。それに対して、ファブリーは、現在バークレーで開発中の3BSDの拡張版をDARPA用に作成することを検討してもよいという提案で応えると、自作の開発提案書をたずさえ、DARPA側との会議に出席した。それはDARPAが開催した画像処理およびVLSI担当業者との検討会だった。そこにはARPAnetの開発を請け負っているボルト・ベラネック・ニューマン(BBN)社の代表も顔を出していた。会議の席上、バークレーに実用に耐えるシステムを開発する力量が本当にあるかを疑問視する意見も出されたが、1979年12月にリリースされた3BSDの評価は高かった。そしてそれがボブ・ファブリーの主張を裏付ける形となり、それとともにバークレーの実力を疑う人間はほとんどいなくなった。

こうして1980年4月、ファブリーはDARPAから、新規開発契約を取りつける。それは、18か月かけて、ARPAnet開発業者たちが必要としている機能を3BSDに実装するというものだった。さっそくファブリーは、コンピュータ・システムズ・リサーチ・グループ、略してCSRGという組織を学内に作り、ローラ・トングを雇ってプロジェクト運営を任せると、ソフトウェア開発をとりしきるプロジェクトリーダーの人選にかかった。ビル・ジョイは博士号の資格認定試験に通ったばかりだから、ソフトウェアの開発より博士号取得のほうに全エネルギーを集中したいだろう。ところがジョイは、三月初めのある夜、ファブリーの自宅に電話し、開発プロジェクトに携わりたいと言ってきたのである。そしてファブリーはジョイの申し出に驚きはしたものの、即座にそれを承諾してしまった。

開発プロジェクトはただちに動きだした。ローラ・トングはソフトウェアの配布体制を整え、ジョイが一人でやっていたときよりも多くの配布要請に対応できるようにした。ファブリーは、AT&Tのボブ・ガフィおよびカリフォルニア大学の顧問弁護士たちと配布条件を協議し、関係者全員の納得のいく形でバークレー版UNIXソフトウェアをライセンスできるようにした。一方、ビル・ジョイは、ジム・カルプの開発したジョブコントロール機能をカーネルに組み込みこんだり、自動リブート機能や、1キロブロックのファイルシステムを追加したりした。また、最新鋭機のVAX-11/780にも対応できるようにした。こうして1980年10月、Pascalコンパイラ、Franz Lisp、それに改良版の電子メールシステム入りの最新バージョンが、4BSDとしてリリースされた。その後の9か月間に、このバージョンは150本近く出荷されているが、ライセンス契約がマシン単位ではなく組織単位だったことを考えると、4BSDは約500台のマシン上で使われていたことになる。

バークレー版UNIXの知名度が上がるにしたがい、批判的意見を唱える人たちも登場してきた。たとえば、スタンフォード研究所のデビッド・カシュタンは、論文を発表して、バークレー版UNIXは、VAX上のベンチマークテストの結果を見る限り、パフォーマンスでVMSより劣ると指摘した。そこでジョイは、自分自身の今後の計画を数か月ほど先送りして、徹底的に4BSDのカーネルを改良した。そして数週間もしないうちに、ジョイは反証の論文を書きあげ、カシュタンのベンチマークでUNIXがVMSと同等のパフォーマンスを引き出せることを示してみせた。

その時点(つまり1981年6月の時点)でバークレーでは、4BSDの後継バージョンとして、ビル・ジョイがチューニングしたシステムを配布することにしている。4.1BSDと名付けられたこのバージョンは、2年間に約400本が発送されているが、この配布版にはロバート・エルズの開発した自動コンフィグレーション(OSの立ち上がり時にカーネル内でハードウェアの検査や初期設定をするプログラム群)も追加されていた。なお、当初バークレーでは、このバージョンを5BSDと名付ける予定だった。しかし、それに対して、5BSDではSystem Vと名前がまぎらわしく消費者を混乱させかねないというクレームが、それを商用版UNIXとして販売していたAT&Tから寄せられた。そこでバークレー側は、以降のリリースでは、4BSDの名称そのものは基本的に変えず、4.1BSDのように、マイナーバージョンの番号変更だけでいくことにした。

4.2BSDの登場

4.1BSDの登場で、パフォーマンスに関する騒ぎはおさまった。また、第1回目の契約結果に満足したDARPAは、新たに2年間の開発契約をバークレー校と結んだ。今回は、DARPA傘下の諸機関での研究開発を促進するような改善をBSDに加えることが求められていた。そして前回の5倍に増えた開発費の半分は、UNIXプロジェクトで使われることになった。残りは、コンピュータサイエンス学部の研究者たちの間で振り分けられた。

DARPA側のニーズにも基づいて、新たな目標が設定され、開発作業がスタートした。新しいシステムに期待されていたのは、高速ファイルシステムを実現し、スループットを最新のハードディスク技術のスピードに見合ったものにすることだった。ギガバイトのアドレス領域のサポート。分散型システムで作業を行なうために必要なプロセス間通信機能。さらにネットワーク機能を統合して、次期バージョンのバークレー版UNIXの動作するマシンをARPAnetに簡単に接続できるようにすることなどが求められていた。

バークレーでは、新システムの開発にあたって、それをどういうものにするかを定義する必要があった。そこで、バークレーとの契約をDARPA側で監督する立場にあったドゥエイン・アダムズは、「運営委員会」と称するグループを結成して、新システムの設計にDARPA側の要求がきちんと反映されるようにした。1981年4月から1983年6月までの間、年2回の割合でミーティングを持った運営委員会への参加者は-ボブ・ファブリー、ビル・ジョイとサン・レフラー(以上、カリフォルニア大学バークレー校)、アラン・ネーメトとロブ・ガーウィッツ(以上、BBN社)、デニス・リッチー(ベル研究所)、キース・ランツ(スタンフォード大学)、リック・ラシド(カーネギーメロン大学)、バート・ハルステッド(マサチューセッツ工科大学)、ダン・リンチ(南カリフォルニア大学情報科学研究所)、ドゥエイン・アダムズとボブ・ベイカー(以上、DARPA)、ジェリー・ポペック(カリフォルニア大学ロサンゼルス校)である。そして1984年からは、この運営委員会に代わっていくつかのワークショップが誕生し、より多くの人たちが参加するようになっていく。

新システムにはどのような機能を含めるべきか。1981年7月になると、その提案書が運営委員会のメンバーおよび学外の関係者に配布され、それに続いて様々な議論が展開されはじめる。ちなみに私も、ちょうどこの頃、1981年の夏にCSRGに加わり、新しいファイルシステムの開発を手伝うことになる。ジョイはというと、夏じゅうかけてプロセス間通信のプロトタイプ作りに専念していた。そして秋には、サム・レフラーがフルタイムスタッフとして参加してきて、ビル・ジョイと一緒に働きだす。

やがて(BBN社の技術者)ロブ・ガーウィッツによってTCP/IPプロトコルの実装仕様がリリースされると、ジョイがそれをバークレーのシステムに組み込んで微調整を行なった。この作業をやっているうちに、新システムはDARPAの標準ネットワークプロトコルをサポートするだけでは足りないことがはっきりしてきた。そこでジョイとレフラーは、ネットワークインターフェイス部分の設計をやりなおして、複数の種類のネットワークプロトコルが同時に使えるようしている。

TCP/IPプロトコルとIPCプロトタイプの統合ができたところで、ユーザが遠隔地のリソースにアクセスするためのアプリケーションもいくつか作成された。rcprshrloginrwhoといったプログラムがそれである。これらは今でも使われているが、元々は一時的な利用を想定したツールで、ちゃんとしたものができた時点で用済みとなるはずだった(これらのコマンドの頭文字が「r」で始まっているのは、用済みとなりやがて置き換えられる(「replaceされる」)という意味を込めてのことである)。

こうして完成した4.1aは、1982年4月に初めてリリースされる。このリリースは、バークレー校内で使用されることを前提として、校外への配布は意図されていなかった。しかし、4.2のリリースを待ちきれなかった複数のサイトでは、4.1aの海賊版がかなりの数でまわっていた。

4.1aシステムは、完成を待たずして時代遅れになってしまった。それでもユーザからのフィードバックは貴重なものだった。1982年2月に配布された「4.2BSDシステムマニュアル」と名付けられた新システムの修正提案書には、BSDで実装するはずであった機能のアプリケーションプログラミングインターフェイス(API)がどうあるべきかが詳細に記されていた。そしてそこには、ユーザからのいろいろなフィードバックが盛りこまれていた。

さて、4.1aの開発と時を同じくして、私は新しいファイルシステムを完成させ、1982年6月に4.1aBSDのカーネルに組み込んでいた。しかし、関係者の間で4.1bBSDと呼ばれていたこのシステムは、バークレー校内においても、まだ特定の開発用マシン上でしか動作していなった。マシンのシステムを4.1aから4.1bに移行するには、4.1aのファイルシステムを磁気テープなどに一度ダンプしたうえで、4.1bのファイルシステムとして再構築してやらなければならない。ビル・ジョイはシステムを大幅に変更する必要性をともなう4.1bは、しかるべき次期がくるまで、たとえバークレー校内といえども配布すべきでないと考えていた。したがって、レフラーがファイルシステム関連の新しいシステムコールを4.1bに追加し、ジョイがプロセス間通信機能の変更にとりかかったのは、私のファイルシステムの安定性が確認されてからである。

1982年の晩春、サン・マイクロシステムズに入社したビル・ジョイは、その夏いっぱい、サンとバークレー校を行ったり来たりしながら、プロセス間通信機能を改善したり、UNIXカーネルのソースコードから機種依存部分を切り離す作業に時間を費やしていた。そしてジョイの後はレフラーが引き継ぎ、開発プロジェクトを完成させることになったが、すでに設定されていた納期に基づき、DARPA側にはシステムを1983年の春にリリースする約束になっていた。残された時間からいって、すべての部分を完成させるのは無理である。そう判断した開発グループのメンバーは、予定どおりリリースするためにしなければならない作業の優先順位を見直すことにした。そして、仮想記憶機能の拡張と、プロセス間通信機能のもっとも難しい部分については、できる限り後回しすることになった(結局、この部分の開発は棚上げされてしまう)。また、前回のバージョンからすでに一年以上経過し、次期バージョンのリリースを嘱望するUNIXユーザコミュニティの声も高まっていることから4.2BSDまでの場つなぎとして4.1cをリリースすることにしている。こうして1983年4月に登場した4.1cは、将来リリースされるを自社製のマシン上に移植するつもりでいた多くのベンダーによって利用されることとなる。なお、4.1cのリリースからは、ポーリーン・シュワーツが配布作業を担当している。

1983年6月、ボブ・ファブリー教授はCSRGの運営管理役をドメニコ・フェラーリとスーザン・グラハムに譲った。4年間続いた殺人的なスケジュールから解放され、長期休暇に入るためである。その間にも、レフラーはシステムを完成させるべく作業を続け、新しいバージョンのシグナル機能を実装したり、ネットワークサポートを追加したりした。インストール作業をより簡単にするためにスタンドアロンの入出力システムを書きかえたりもしている。さらにロバート・エルズが開発した、利用可能なディスク領域をユーザごとに制限する機能をシステムに組み込むようなこともしている。4.1cのバグ取りをし、関連ドキュメントをすべて更新したのもレフラーである。こうして4.2BSDは1983年8月にリリースされる。

4.2の完成後、レフターはバークレー校を後にしてルーカスフィルム社に移った。後任はマイク・カレルズである。それまで、PDP-11用の2.9BSDを担当していたカレルズは、CSRGでの仕事にうってつけだった。私は1984年12月に博士号を取得した後、CSRGの常勤スタッフとなり、カレルズと一緒に仕事をするようになる。

4.2BSDの人気はすばらしく、リリースから一年半で、1000以上のサイトがライセンスを取得している。つまり、それまで配布されたすべてのバージョンのバークレー版UNIXソフトウェアの合計を凌ぐ本数が4.2BSDの配布コピーとして発送されたのである。そしてUNIXベンダーのほとんどが、AT&Tの商用版System Vではなく、4.2BSDシステムを採用することになる。System Vにはネットワーク機能もなければ、バークレー版のファイルシステムもなかったからである。とはいえ、バークレー版UNIXソフトウェア(BSD)が高いマーケットシェアを誇れたのは、わずか数年に過ぎず、その後はまた以前の状態に戻ってしまった。ネットワーク機能を始めとする4.2BSDの改良点がSystem Vに組み込まれると、ベンダーがまたSystem Vを使いはじめたからである。そして、その後もSystem Vは、バークレー版UNIXソフトウェアの拡張・改良点を取り込んでいった。

4.3BSDの登場

4.2BSDがリリースされると、システムが遅すぎるという不満の声がすぐにあがりはじめた。4.2BSDで新しく導入された機能が適切にチューニングされておらず、カーネルのデータ構造の多くが新しい用途に適していないことが原因だった。しかしそれはある程度予測されたことであった。CSRGにおけるカレルズと私の一年目は、4.2BSDの調整と仕上げに費やされた。

我われは、システム調整とネットワーク部分の改良に2年をかけた後、1985年6月の(UNIXユーザのグループである)USENIXカンファレンスで、その年の夏に4.3BSDをリリースする予定であることを発表した。ところがこの予定は、BBN社からのクレームによって突然変更されてしまう。BBN社側はバークレーに、ネットワーク部分の最終バージョンを渡しているのに、それがまだ4.2BSDに実装されていない、と指摘していた。実際のところ4.2BSDでは、何年も前に同社からもらったプロトタイプバージョンがいまだに使われていたので、彼らの指摘はまったくその通りだった。BBN社側は、バークレーがインターフェイス部分(API)を実装するのなら、プロトコル部分は同社のやり方で行くべきである。したがってバークレー側は、4.3BSDのTCP/IP部分のコードを同社のやり方で書き直すべきである、とDARPAに訴えた。

そこでマイク・カレルズは、BBN社からソースコードを手渡されると、以前同社からもらったプロトタイプバージョンに対してバークレー側が行なった拡張・変更をもう一度調べ直してみた。その結果、彼は、バークレー側が実装したコードをそっくり入れ換えるのではなく、BBN社の仕様の優れた部分を既存のコードベースに組み込むのが最善であるという判断を下している。カレルズが、既存のコードをできるだけ残したほうがよいと思ったのは、4.2BSDがすでに数多く配布されていたからである。それだけ多くのユーザの使用に耐え、いくつもの改良がすでに施されているコードは残すべきだ。彼はそう思ったのであるが、結局そうはせず、ユーザが好きなほうを自分で選べる妥協案を提示している。

しかしDARPA側の判断は違っていた。カレルズの提案するように2種類のコードをリリースしてしまうと、不必要な非共通性をシステムに持ち込みかねない。そう思ったDARPAは、一方のコードだけを実装することにし、どちらにするかを決めるため、バリスティクス研究所のマイク・ミューズに両方のコードを預け、彼の判断をあおいだ。裁定者にミューズを選んだのは、バークレー側もBBN社側も、彼のことを独立した第三者としてみなしていたからである。一か月におよぶ評価作業ののち、ミューズから提出された報告書には、バークレーのコードのほうが効率はよいが、トラフィック時の処理に関してはBBN社のほうが上であるとあった。しかし、バークレーのコードはすべてのテストを完全に通過したのに対し、BBN社のコードは一部のストレス状況でパニックを起こした。そして、DARPAはその点を重視し、4.3BSDはバークレーのコードベースで行くことに決定している。

1986年6月、4.3BSDがついにリリースされると、パフォーマンスに関する雑音はたちまち静まった。4.1BSDのリリースによって、4BSDに対する不満が解消されたのと同じである。当時、大多数のUNIXベンダーは、すでにバークレー版UNIXをやめて、またまたSystem Vを使いはじめていたが、ネットワークのサブシステムの部分については4.3BSDのコードを実装したところが多い。

1986年10月、キース・ボスティックがCSRGに加わった。彼は、それまで4.2BSDをPDP-11に移植するというプロジェクトに携わっていた。そして、それをCSRGで継続させてもいたい、というのがボスティックの要求した唯一の条件だった。VAX上でコンパイルするとキロバイトになるシステムを、アドレス領域が250キロバイトしかないPDP-上に移植できるずがない。と、いうのが、カレルズと私の一致した見方だった。そこで我われは、彼の好きにさせることにした。ところが驚いたことに、ボスティックは複雑なオーバーレイを駆使し、PDP-11の補助プロセッサステート機能(auxiliary processor state)をうまく使って、見事移植をやりとげてしまう。その結果リリースされたのが、ケイシー・リーダムとボスティックによる2.11BSDである。このバージョンのバークレー版UNIXは、1988年の時点でもなお、稼働中のPDP-11の生き残りで使われている。

そうこうしているうちに、VAXのアーキテクチャがだんだん時代遅れなものになり、バークレーとしても開発マシンを何か別なものにする必要が出てきた。当時期待の持てそうだったアーキテクチャは、コンピュータ・コンソール社が作っていたPower6/32だった。結局、同社は戦略変更し、このアーキテクチャを継続しなくなってしまうが、それでもCSRGに6/32を何台か提供してくれることはしてくれたので、我われはビル・ジョイが手をつけた作業を――BSDカーネルを機種依存の部分とそうでない部分に仕分ける作業を終わらせることができた。その成果を受けて1988年6月に登場したのが、4.2BSD-Tahoeである。Tahoeという名前は、コンピュータ・コンソール社がPower6/32の開発コード名として使用していたものである。Power6/32マシンがサポートされていた期間は短かったが、BSDはその後も様々なアーキテクチャのマシン上に移植されることになったので、カーネルのコードを機種依存の部分とそうでない部分に分けたことは結果的に非常に有意義なことだった。

NR1の登場

ところで、4.3BSD-Tahoeまでのバークレー版UNIXソフトウェアは、AT&Tからソースライセンスを取得しなければ使用できなかった。バークレー版UNIXソフトウェアは、バイナリではなく、ソースコードでリリースされていたからである。UNIXシステムの歴史、とりわけBSDシステムの歴史は、ソースコードをユーザに提供することがどれほど意義のあることかをはっきりと示している。バークレー版UNIXソフトウェアのユーザは(バイナリで)配布されたシステムをおとなしく使うのではなく、積極的にソースコードのバグを修正し、性能や機能を拡張・改良し、場合によっては新しい機能を追加するようなことまでしている。

AT&Tのソースライセンス費用がかさんでくると、それがUNIXを使う製品の単価にはねかえるようになってきた。とくに、BSDのコードを使い、TCP/IPベースのスタンドアロン型ネットワーク製品を作ってPC市場に売り込みたいと考えていたベンダーにとって、AT&Tへのライセンスコストは負担に感じられた。そこでそれらのベンダーは、バークレー側に話を持ちかけ、バークレー版UNIXソフトウェアのネットワーク部分と関連ユーティリティの部分を切り離し、AT&Tのソースライセンスとは別形態にした上で、バークレー独自のライセンス条件で提供してくれるよう頼んだ。TCP/IP部分のコードは、バークレー側が独自に開発したもので、バークレーがAT&Tから受け取った32/Vのソースコードには元々存在していなかった部分であったから、バークレー独自のライセンスで配布することは可能だった。こうして1989年6月、バークレー版UNIXソフトウェアを源流とするネットワーク部分とその関連ユーティリティがNetworking Release 1(以下NR1)の名前でリリースされた。バークレーから誕生した初の、ソースコードレベルで再配布可能なソフトウェアである。

バークレー側の提示したライセンス条件は非常に寛大なものだった。ライセンシーは、自分のNR1のコピーを、ソースコードレベルでもバイナリレベルでも、変更の有無にかかわらず、自由に再配布できる。コピーの再配布時に、カリフォルニア大学バークレー校に会計報告をしたり、ロイヤルティを支払う必要もない、というものであった。ただし、ソースファイルに記述されている著作権情報はそのままにしておく。それから、バークレーのソースコードの一部を組み込んだ製品には、カリフォルニア大学とその協力者から入手したコードが入っていることを明記する。その二点だけが、唯一、条件らしい条件だった。バークレーは配布テープの実費として千ドルを請求していたが、第三者がすでに所有しているものをコピーするのは自由(フリー)だった。実際に大規模サイトのいくつかでは、NR1がリリースされるや、匿名ftpでダウンロードきるようになっている。NR1は、入手しやすさが幸いして、数百か所の組織が購入し、CSRGはその利益でさらに開発を進めることができた。

4.3BSD-Renoの登場

その間もバークレー版UNIXの基本部分の開発は続けられていた。「4.2BSDシステムマニュアル」で初めてインターフェイス(API)が示された仮想記憶の部分も、ようやく完成に近づきつつあった。ゼロから何かを作りだすのではなく、既存コードを探しだして統合する。何を開発するにしても、それがCSRGの手法だった。そして仮想記憶も何もないところから設計するのではなく、すでに誰かが使っているもの、または持っているものを流用できないかと考えた。我われが最初に目をつけたのは、SunOS(サン・マイクロシステムズ社製のUNIX)の仮想記憶だった。しかしこのアイデアは、コードをバークレーに提供してくれるかをサンと協議しただけで終わってしまったので、我われは次に、カーネギーメロン大学の開発したMACH(オペレーティングシステム)の仮想記憶の部分を取り込むことを検討した。そして、ユタ大学のマイク・ヒブラーの協力のおかげで、MACHのコアテクノロジーと、「4.2BSDシステムマニュアル」で記述されていたアプリケーションインターフェイス(API)の仕様とが融合できたのである(SunOSも同じAPIを使用していた)。

このときは、仮想記憶の部分以外にも、Sun互換バージョンのNFS(Network Filesystem)がカーネルに追加されている。そしてNFSのコードもまた、CSRGが独自にゼロから作成したのではなく、カナダにあるゲウルフ大学のリック・マックレムの実装を流用している。

これらの基本部分が開発できたことで我われはBSDの完成に近づいたものの、まだまだ新バージョンとしてリリースできる状態ではなかった。そこで仮想記憶とNFSを組み込んだバージョンをとりあえずリリースして、ユーザからのフィードバックをあおぐことにした。この暫定リリース版は4.3BSD-Renoと呼ばれ、1990年初めに登場している。ギャンブルで有名なネバダ州のリーノー(Reno)がその名の由来で、この暫定版を動かすのはギャンブルみたいなものだという、ちょっと皮肉っぽい意味が込められていた。

NR2の登場

当時、CSRGでは、週一回の割合でミーティングが開かれていた。ある日、そういったミーティングの席上、キース・ボスティックが再配布自由なNR1が評判になっているという話をしたうえで、バークレー版UNIXのもっとたくさんのソースコードを含んだものを再配布自由なバージョンとしてリリースできないかと提案した。マイク・カレルズと私は、それは大変な作業だから、数百あるユーティリティとCライブラリの再実装をボスティックがするなら、それが済んだ後でカーネル部分をどうするかについて検討してみてもいい、と返事をした。そして、カレルズと私は内心、これでこの話は終わりだと思っていた。

ところがである。ボスティックは、自分の考えを単なる思いつきだけで終わらせず、それを実現させる方法としてネットワークコミュニティでボランティアを募る方法を編みだした。彼は、大がかりな開発作業をネットワーク上で推進するために、まず、何人かのプログラマ仲間に頼んで、公開されている情報だけをもとにUNIXユーティリティを新規に書き直してしてもらうことにしたのである。お礼は、バークレー版UNIXソフトウェアへの協力者一覧に、当該ユーティリティ名と合わせて当人の名前を載せることだけだった。そして最初のうちは、ちょっとしたユーティリティがスローペースで書き直されていった。しかし、できあがったユーティリティが少しづつ増え、ボスティックがUSENIXなどのイベント会場で仲間を募るにつれ、協力者の数がどんどんふくらんでいった。すぐに完成ユーティリティは百本を超え、一年半のうちに重要なユーティリティとライブラリの書き直しがほとんど完了してしまった。

そしてある日のこと、オフイスで仕事をしていたマイク・カレルズと私のところにボスティックが意気揚々とやってきて、リストを片手にカーネルはどうするのかと切りだした。そこで我われ三人は、それから数か月かけて、バークレー版UNIXソフトウェアに含まれているファイルをことごとく調べまわった。AT&Tからもらった32/Vのコードを使用している部分をすべて洗い出し、書き直すためである。そしてこの作業が一段落したとき、32/Vのコードが残っているカーネルのファイルは6個だけになっていた。ただしそれらは片手間で書きなおせる類のものではなかった。もちろんそれらをきちんと書きなおせば完全なシステムとしてリリースできることはわかっていた。そうすることも実際に検討された。しかし、我われは、それらのファイルを含めない形でのリリースを決断する。ただし、大学上層部には、このバージョンをリリースすることを許可していただけるようにとのお伺いを立てたので、学内では議論に議論が重ねられた。そして、AT&Tが著作権を有する部分を特定するのに我われが採用した方法が妥当であったことが確認され、リリースへのゴーサインが大学当局から出された。

我われは、自由に再配布できるリリースの第二弾を、それまでと全然ちがう名前で呼ぶつもりだった。しかし新しいライセンス契約を書きおこして、大学の顧問弁護士にチェックしてもらうのもエネルギーと時間の無駄と感じ、ライセンスについてはNR1の契約内容を一部改訂することで対応し、新バージョンをNetworking Release 2(以下NR2)と呼ぶことにした。再配布自由な新バージョンは、1991年6月から発送が開始しされた。再配布の条件は、NR1のときとまったく同じである。それでも前回のリリース同様、千ドル払ってでもバークレーから直接入手したいという個人や組織が数百あった。

NR2に含まれている32/Vのコードが完全に取り除かれるまでにはそれほど時間がかからなかった。NR2のリリース後、半年もたたないうちに、ビル・ジョリッツが例の6個のファイルに代わるものを書きあげたからである。彼は、自分のシステムを386/BSDと名付け、386ベースのPCアーキテクチャ用にコンパイルされ、自力で起動するシステムとしてリリースした。しかも彼は、匿名ftpサイトを開設して、希望する人は誰でも無料でダウンロードできるようにしたので、386/BSDの配布は、ほとんどインターネット経由で行なわれた。そして数週間後には、それに対する反応が続々とジョリッツのもとに集まってきた。

しかしジョリッツはフルタイムの仕事を持っていたため、386/BSDのバグフィクスや機能拡張の要求に十分な時間がさけなかった。そこでリリースから数か月を経過した頃、386/BSDの熱心なユーザたちが集まって、システムの維持と今後の協力を目的に、NetBSDというグループを結成した。NetBSDグループは、CSRGのような研究中心の開発姿勢を維持しながら、できるだけたくさんのプラットフォームをサポートしていくことを確認しあう。NetBSDディストリビューションと呼ばれる彼らのソフトウェアは、1998年現在、すべてインターネット経由で配布され、ほかのメディアは一切使われていない。もっぱらテクニカルなパワーユーザを対象としていることもグループの発足当時と変わりない。ちなみに、NetBSDの詳しい情報はhttp://www.netBSD.orgで参照できる。

NetBSDが発足してから数か月後、今度はPCアーキテクチャを専門にサポートし、技術的にそれほど詳しくないユーザを対象にすることを目的とするFreeBSDグループが誕生した。このグループは、インストール作業を簡易化するスクリプトを安価なCD-ROMにつけてFreeBSDソフトウェアとして配布した。他が配布しているものよりインストールが容易だったことと、コムデックスなどの主要トレードショーでの宣伝や、インターネット上での宣伝が効を奏して、FreeBSDは急カーブで伸びていった。NR2をベースに開発されたUNIXソフトウェアはいくつかあるが、インストールベースで比較したとき、いちばん普及しているのはFreeBSDである。

FreeBSDでは、Linuxのバイナリプログラムも動かせるようにして、Linux人気にあやかろうともしている。Linuxのエミュレーションモードを追加し、堅牢で信頼性と性能が高いシステム上で、Linux用に次々と登場しつつあるアプリケーションを使えるようにしているのである。FreeBSDグループは最近、FreeBSDモール(http://www.freeBSDmall.com)を開設し、FreeBSDコミュニティのいろいろな側面をひとつにまとめる形で、コンサルティングサービスや関連製品、書籍、ニューズレターなどにそのモールからアクセスできるようにしている。

1990年代半ばには、NetBSDグループから分岐する形でOpenBSDグループが誕生した。このグループは、システムのセキュリティを技術的な対象とすることで形成されている。マーケティングの面では、システムをより使いやすくし普及を図るのが目的であった。OpenBSDグループは、自分たちのシステムのCD-ROMにFreeBSDソフトウェアの簡易イントールツールなどを入れたものを販売している。OpenBSDについての詳細は、http://www.openBSD.orgで参照できる。

訴訟勃発

NR2をベースに、再配布自由なUNIXソフトウェアがいくつか登場するのとほぼ時を同じくして、NR2をベースに商用版を開発して販売する目的で、BSDI社(Berkeley Software Design, Incorporated)という会社が設立された(BSDI社の詳細はhttp://www.bsdi.comで参照できる)。いろいろ出現したグループと同様、BSDI社もビル・ジョリッツが386/BSDリリース用に作った6個のファイルをNR2に追加したものを、1992年1月、最初のリリースとして売り出す。価格は、ソースコードとバイナリの両方が入っていて995ドルであった。System Vの99%割引でUNIXソフトウェアが買える。興味のある方は1-800-ITS-UNIXまで電話を。それが彼らの宣伝文句だった。

この販売キャンペーンが始まってまもなく、BSDI社のもとにUSL(UNIX System Laboratories)社から一通の手紙が届いた(USL社は、AT&Tが筆頭株主となり、UNIXの開発と販売を目的に設立した子会社である)。その手紙は、BSDI社に対して、自社製品をUNIXと称するのをやめるよう、誤解を招く電話番号はとくに使わないよう要求するものだった。この要求を受けて、BSDI社は宣伝文句の電話番号をただちに変更する。広告中にも、自社の製品が(商標登録されている)UNIXではないとの説明文を挿入している。しかしながら、USL社はBSDI社側の処置に納得せず、訴えを起こし、製品出荷差し止め命令をBSDI社に対して出すよう裁判所に要求する。BSDI社製品には、USLが知的所有権を持つコードと企業秘密が含まれているというのがUSL側の言い分であった。さらにUSL側は、BSDI社が販売を続ければ企業秘密が失われ、回復不能な損害をこうむると主張して、判決が出るまでBSDI社の販売活動を禁じる命令を出すよう裁判所に求めた。

予備審問で、BSDI社側はこう主張した-自分たちは、カリフォルニア大学から無料で配布されたソースコードに、6個のファイルを追加して使っているだけであり、追加ファイルの内容については議論する用意があるが、カリフォルニア大学が配付したファイルについては、何ら責任はないはずである。判事は、BSDI社側のそのような主張を受け入れ、USL側の訴えが6個のファイルのみを対象とするものでなければ、却下すると告げた。たった6個のファイルについて騒ぐのは得策でないと判断したUSL側は、今度はBSDI社とカリフォルニア大学の両方を相手どって訴訟を起こし、前回同様、カリフォルニア大学のNR2と、BSDI社製品の出荷差し止め命令の発行を裁判所に要求した。

やがて審問が数週間後に開かれることになり、それに対する準備が大急ぎで開始された。CSRGの人間は大方BSDI社の社員でもあったので、ほとんど誰もが宣誓証言に呼び出された。陳述書、反対陳述書、そのまた反対陳述書が弁護士の間を飛びかった。キース・ボスティックと私も、何百ページもの資料を作らなくてはならなかった。

1992年12月、ニュージャージー州連邦裁判所のディッキンソン・R・デビボイス判事は、差し止め命令をめぐる双方の主張を聞いた。差し止め命令が要求された場合、ただちに裁定が下るのが普通である。しかし、デビボイス判事は少し考える時間をとり、6週間後の金曜日に、40ページにおよぶ意見書を読み上げた。結局、差し止め命令の要求は却下され、USL側からの数々の申し立ての中で取り上げられたのは、新らしい著作権に関することと、企業秘密損失の可能性に関する2点だけだった。そして判事は、この問題は連邦裁判所よりもまず州裁判所で審議されるべきだ、という意見を付していた。

カリフォルニア大学は判事の意を察し、さっそく週明け月曜日の朝に、USL社を相手どり、逆訴訟をカリフォルニアで起こす。最初にカリフォルニアで訴えが起こされたことで、その後のすべての訴訟についても訴訟地がカリフォルニアになることが確定された。金にものを言わせられる側がすべての州で訴訟を起すことができれば、相手側は訴訟費用の負担だけでひあがってしまう。そのため州裁判での訴えは、ひとつの州でしか起こせないことが法律で定められている。つまりUSL社が、今後カリフォルニア大学を訴える場合には、地元のニュージャージー州ではなく、敵地カリフォルニア州でするしかないのである。

USL社は、System Vの中にBSDコードを組み込んでいるにもかかわらず、カリフォルニア大学のコードを使用していると明記しておらず、大学とのライセンス契約で定められた義務に違反している。カリフォルニア大学側の主張はこうだった。この言い分が正当だと認められた場合、USL社側は適切な記述を追加してすべてのドキュメントを印刷し直し、同社の側に手落ちがあったことを全ライセンシーに通告するとともに、『ウォールストリート・ジャーナル』紙や『フォーチュン』誌など主要出版物に全面広告を掲載し、不注意による手落ちを世間一般に告知することを大学側は要求していた。

州裁判所に訴状が提出されてまもなく、ノベル社がAT&TからUSL社を買収した。そして当時のノベルのCEOだったレイ・ノーダが、争う場は法廷ではなく市場にすると明言し、1993年夏、両者の間で和解のための話し合いがはじまるが、両者はともに主張を譲らなかった。しかしまたしてもレイ・ノーダがUSL社側をせっついたおかげで、膠着点の多くが解決し、1994年1月には和解が成立する。和解の主要部分は、NR2を構成する1万8000のファイルから3個のファイルを削除し、それ以外のファイルのいくつかに若干の変更を加える、というものだった。なお、この和解では、カリフォルニア大学側が、NR2に含まれる70個ほどのファイルにUSL社の著作権を設定することに同意しているが、それらのファイルが無料で再配布できることに変わりはなかった。

4.4BSDの登場

こうして1994年6月、4.4BSD-Liteがめでたくリリースされた。ライセンス関連の諸条件は、NR2のときとまったく同じである。カリフォルニア大学の著作権はそのままで、大学のコードを使用していることを明記しさえすれば、ソースコードもバイナリも自由に再配布できた。なお、4.4BSD-Liteと同時に、4.4BSD-Encumberedが完全なシステムとしてリリースされたが、こちらはUSL社からソースライセンスを取得しなければ利用できなかった。

訴訟が和解に終わったことで、4.4BSD-Liteをどんな団体がシステムベースに使おうと、USL社に訴えられる可能性はなくなった。そこで、BSDI社、NetBSD、そしてFreeBSDも、4.4BSD-Liteをベースに一度作り直され、それぞれの改良点が盛り込まれることになる。この再統合作業のせいで、BSD系UNIXの開発速度は少し弱まる。しかし、3年前のNR2のリリース以来、CSRGが開発してきた成果物をどのグループも横一線で吸収できたのだから、本当のところ、この遅れは喜ばしいことだった。

4.4BSD-Lite R2の登場

4.4BSD-Encumberedと4.4BSD-Liteの収益は、バグフィックスや機能拡張を担当するパートタイム要員の確保にあてられた。この作業は、バグレポートや機能拡張の要求がほとんど来なくなるまで、ほぼ2年間続けられた。そして最終的な変更点をすべて反映してリリースされたのが、1995年6月の4.4BSD-Lite R2(4.4 BSD-Lite Release 2)である。このときの変更点の大半は、最終的に他のシステムにも反映されている。

4.4BSD-Lite R2のリリースをもって、CSRGは解散する。CSRGは、20年近くにわたってBSDという船の水先案内を務めてきたが、そろそろ新鮮な発想と無限の情熱を持つ人たちにバトンタッチする潮時だと考えたのである。CSRGのような組織が、一元的に監督管理するのがいちばんかもしれないが、異なる海図を持つグループがすでに複数存在することを考えると、それぞれ別のアプローチで取り組むというアイデアも試してみる価値があると思われる。バークレー版UNIXソフトウェアはソース形式でリリースされているので、バークレー系UNIXを開発しているところは何処であれ、優れた発想を自分たちのシステムにすぐ取り入れることができる。そのうちひとつがずば抜けて秀でるようになれば、そこの開発するバークレー系UNIXがやがては中心的なシステムになるだろう。

今オープンソースソフトウェア運動は、注目と賞賛を集めつつある。いちばん有名なのはLinuxシステムだが、Linuxのパッケージに含まれているユーティリティのおよそ半数は、BSD由来のものである。Linuxは、FSF(Free Software Foundation)で開発されたコンパイラやデバッガ、その他の開発ツールにも大きく依存している。つまりFSFの人たち、Linuxのカーネル開発チームの人たち、そしてCSRGの人たちは、オープンソースソフトウェア運動の出発点となるプラットフォームをひとつの共同作業として作りあげたのである。私自身も、オープンソースソフトウェア運動の誕生を後押しすることができたことを非常に誇りに思うとともに、いつの日か、オープンソースソフトウェアという方法が、世界のユーザや企業がソフトウェアを開発したり、購入したりする方法の主流になることを願っている。

オープンソースソフトウェア 彼らはいかにしてビジネススタンダードになったのか

Web Version by Akira Kurahone

このWeb版は、この告知を全ての写しに載せており、英語原本の著作権表示でGPLと明記されている論文を除いて何ら変更を加えない場合にのみ、自由に再配布できます(ただし、文字化け、誤字脱字等の修正はご自由に)。

このwebspaceを提供してくれた株式会社オライリー・ジャパンに感謝します。 Thanks to O'Reilly Japan Inc. for providing me with this webspace.

Note

転載者注: この告知は https://www.oreilly.co.jp/BOOK/osp/OpenSource_Web_Version/Web_version000106.html より転載し、Markdown向けにマークアップと原文の意味を損ねない範囲で順序や句読法、改行位置などを調整したものです。

AKNOWLEDGEMENT

It is a pleasure for to me to aknowledge each of the fourteen co-authors who contributed to the making of "OpenSources: Voices from the Open Source Revolution: 1st Edition" which I translated into Japanese by O'Reilly Japan's request through a conventional business arrangement.

  • Brian Belendorf (Apache)
  • Scott Bradner (Internet Engineering Task Force)
  • Jim Hamerly (Netscape)
  • Kirk McKusick (Berkeley Unix)
  • Tim O'Reilly (O'Reilly & Associates)
  • Tom Paquin (mozilla.org)
  • Bruce Peren (Open Source Initiative)
  • Eric Raymond (Open Source Initiative)
  • Richard Stallman (Free Software Foundation)
  • Michael Tiemann (Cygnus Solutions)
  • Linus Torvalds (Linux)
  • Paul Vixie (Bind)
  • Larry Wall (Perl)
  • Bob Young (Red Hat)

The Japanese version of this book was published last July by O'Reilly Japan in translation by Akira Kurahone. Its web version(i.e., this version) has been created and made freely available on the net in Japanese by Akira Kurahone in accordance with the November 9, 1999 agreement between Akira Kurahone and O'Reilly Japan. Akira Kurahone's translations of the four chapters (essays) by Bruce Perens, Eric Raymond, and Richard Stallman, respectively can be redistributed under the conditions stipulated by each author in his copyright notice printed in the 1st edition of the original English book (ISBN: 1-56592-582-3). All translated chapters (essays) not mentioned above are freely redistributable without modification provided that this acknowledgement and the following copyright notices are all preserved. (However, an act of correcting typos, misspelling, ill-placed punctuation marks, etc. is allowed, provided that (a) it is strictly editorial in nature and (b) it has no bearing on alteration, modification, and change of the expressions of opinion by the original author and the style of the original translator).

COPYRIGHT NOTICES

Original copyright nootice: "Free Software" is Copyright (C) 1998 Richard M. Stallman Verbatim copying and duplication is permitted in any medium provided this notice is preserved.

"A Brief History of Hackerdom" and "Revenge of the Hackers" are Copyright (C) 1998 Eric S. Raymond. These essays is free; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. These essays are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See Appendix B for a copy of the GNU General Public License, or write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Eric Raymond
esr@thyrsus.com
6 Karen Drive
Malvern, PA 19355

"Open Source Software" is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This essay is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See Appendix B for a copy of the GNU General Public License, or write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Bruce Perens
bruce@perens.com
c/o Pixar Animation Studios
1001 West Cutting #200
Richmond, CA 94804

All essays not mentioned above are freely redistributable without modification provided this notice is preserved. All other material is copyright (C) 1999 O'Reilly & Associates. All rights reserved.

Japanese Web Version: Translated by (C) Akira Kurahone. All rights reserved. The four chapters (essays) by Bruce Perens, Eric Raymond, and Richard Stallman, respectively can be redistributed under the conditions stipulated by each author in his copyright notice printed in the 1st edition of the original English book (ISBN: 1-56592-582-3). All translated chapters (essays) not mentioned above are freely redistributable without modification provided that this notice is preserved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment