Unixの歴史

Question: 仮想記憶のはじまりはいつ



UNIXの歴史</b>は、1960年代中ごろに、マサチューセッツ工科大学(MIT)、ベル研究所、General Electric(GE)がGEのメインフレームコンピュータ用にMulticsと呼ばれるタイムシェアリングシステムを共同開発していたことにさかのぼる[1]。
Multicsは多くの革新的技術を導入したが、同時に、多くの問題を抱えてもいた。
Multics の目指すものに賛同しても、巨大で複雑なものになっていくことに嫌気がさしたベル研究所は、プロジェクトから徐々に距離をおくようになった。最後までMulticsに関与して いたケン・トンプソン等はプロジェクトをより小規模な形に再構成してとりあえず動作する形で完成させることを決めた[2]。1979年にデニス・リッチーは当時のUNIXが目指していたものを以下のように述懐している。
我々が守ろうとしたものは、単なる便利なプログラミング環境ではなく、協力関係が構築できるシステムであった。我々は経験上、遠隔アクセスやタイムシェアリングシステムによってもたらされた共同コンピューティング環境は、単にプログラムの入力手段がキーパンチから端末装置に変わるというだけのものではなく、密接なコミュニケーションを生み出すものであることを知っていた。

1969年
1960 年代末、ベル研究所はマサチューセッツ工科大学, General Electricと共同で、メインフレームコンピュータを複数の利用者が同時に利用できるようにするMulticsというタイムシェアリングシステムの開発プロジェク トに参加していた。プロジェクトの進捗の悪さに嫌気がさしたベル研究所は、Multicsプロジェクトからの撤退を決断した。
ベル研究所のコンピュータ部門にいたケン・トンプソンは、最後までMulticsに関わっていたベル研究所側の要員であった。トンプソンは、Multicsプロジェクトで担当していたファイルシステムを、別の形で活用することを考えた。
このころ、トンプソンは、プロジェクトの空き時間を活用して、Space Travelというゲームを作成した。当時、Multicsプロジェクトでは、計算機の使用状況を管理するため、CPUの使用時間を金額換算にして管理していた。Space TravelをGE-635上で1回動かすと、50ドルにもなった[3]。これは、管理上のものであり、実際に課金されるわけではなかったが[3]、このような目的に貴重なコンピュータ資源を使用していることを経営陣に知られるのは、好ましいことではなかった[4]。そこで、トンプソンは、ベル研究所内にあったほとんど使われていないPDP-7に目をつけ、これを借りてSpace Travelを移植した[2]。
この経験は、Multicsプロジェクトで担当したファイルシステムをPDP-7上で実装する際に役立つこととなった。1969年にトンプソンとリッチーらは、階層型ファイルシステム、プロセスとデバイスファイルの概念、コマンドラインインタプリタ、いくつかのユーティリティーを作り出した。できあがったシステムはMulticsよりもずっと小さいもので、後にUNIXと呼ばれるものになるものであった[2]。その後1ヵ月ほどで、トンプソンはアセンブラ、エディタ、シェルなどを作り上げ、OSとして完結させた[5]。
このように、Space Travelというゲームは、UNIXの開発開始に関連はあるが、Space Travelが直接的にUNIXへと発展したわけではなく、相互に独立した開発であった[6]。
1970年代



新しいOSの開発は、当初はベル研究所からの資金援助はなく、またOSにも名前はなかった。この時点で、できあがったOSは、MulticsのようなマルチタスクOSではなく、一度に単一のプログラムしか動かすことができないシングルタスクOSであったことから、Unicsと名付けられた[7][8]。
ブライアン・カーニハンは自身が1970年にUNICSという名前を考えだしたと言っている[9]。後につづりがUNIXへと変更されたが、この経緯は不明であるとカーニハンは語っている。後にUNIXは1973年のバージョン4においてマルチタスクOSとなるが[8]、名称はUNIXのまま維持された。
なお、ピータ・ サルスは、ピーター・ノイマンという人物がUNICSという名称を考えだしたという説を述べている[10]。しかしながら、この説は、第三者の推測を引用したものにすぎず、ノイマン本人に確認をとっていないうえ、その根拠はノイマンが駄洒落好きであったというだけのことであり、信憑性には乏しい。また、ノイマンは1970年にベル研究所を退職しており、時間的にも不自然さがある。さらに、ノイマン自身は、「カーニハンが、一人しか使えないMulticsという意味でUnicsと名付けた。後に、おそらく法務上の理由でUNIXと改名された。」と語っている[11]。
ベル研究所のコンピューティングサイエンス部門は、UNIX開発に対する資金援助を得るべく活動したが、Multicsから撤退した直後の状況下で、OS開発に対する資金援助を得るのは困難であった[12]。他部門でワードプロセッサの需要があることを聞きつけた彼らは、ワープロを作成するという名目のもと、UNIXの開発用にPDP-11/20を獲得することに成功し、UNIXに文書清書システムroffとテキストエディタを付加し、特許部門で使われることとなった[13]。roffはその後troffへと発展し、完全な組版機能を有する世界初の電子出版システムとなった。これらの開発はすべてアセンブリ言語でなされた。
このような形で、いわばワープロ作成に偽装する形態でOSの開発を行うことを考えついたのは、グループ内の年長者でベル研究所内部の力関係にも通じていたジョー・オサンナであった[12]。
システムの複雑さが増し、利用者が増えてくると、マニュアルを整備する必要が出てきた。最初のUNIXプログラマーズマニュアルは1971年11月に公開された。コマンド群はman形式で記述され、これは現在まで踏襲されている。マニュアルは、使用方法だけでなくバグ情報も簡潔な形で示し、プログラムの作者も明示して不明な点があれば直接作者に問い合わせができるようになっていた[14]。
ベル研究所内の他の部署でも、PDP-11を購入すると、DECの公式なOSではなくUNIXを使うことを希望する事例が出てくるようになった。バージョン4が出る頃には、UNIXはベル研究所内で広く使われるようになりUNIXサポートグループが組織されて社内で認知された形態でUNIXの普及が促進された[13][14]。
1973年のバージョン4において、UNIXは高級言語であるC言語で書き直された。これは、当時は一般的であった、OSのような複雑なシステムはアセンブリ言語でのみ作成できるという考え方を打ち破るものであった[15][13]。C言語によって書き直されたことは、後に、UNIXの移植性を高めることにつながっていく。ただし、実際にUNIXが他のマシンに移植されたのは1978年になってからであり、1973年のバージョン4の段階ではC言語で書き直されたといってもPDP-11に依存したコードが多数存在しており、移植性は低かった。
UNIXの存在は、1973年に開催されたAssociation for Computing Machinery(ACM)のOSに関するシンポジウムにおける発表において公にされた。これにより、UNIXを使いたいという声がベル研究所外部で高まることになった。しかし、1956年の独占禁止法違反の訴訟での和解判決合意により、ベル研究所の親会社であったAT&Tはコンピュータ産業への進出を禁止されており、電話技術以外のあらゆる研究成果を希望者にライセンス供与することを義務づけられていた[5]。このため、AT&TはUNIXを商用販売することができず、メディア代と送料だけで出荷することになった[5]。ケン・トンプソンは要望に応じてテープやディスクを発送し始め、伝承によれば、全てに”Love, Ken”と書き添えたという[16]。
1975年にはバージョン6が公開された。これは、2万ドルという商用目的での高額なライセンス料のために(2016年における89,017ドルに相当する)、商用目的に利用されることは少なかったが、学術目的では1980年代の初頭まで広く使われた。Lionsが著した"Commentary on UNIX 6th Edition"はUNIXのソースコードがついており、多くの人に読まれた。その結果、UNIXは教育に適したOSという立場を確立した。
UNIXは誰でもライセンスを受けることはできたが、ライセンスを受けてもソースコードがサポートなしで送られてくるだけであった[17]。このため、自発的なユーザーグループが誕生して相互に助け合うことになった。UNIXユーザーの最初の会合は1974年にニューヨークで開かれ、数十人が集まった。これはのちにUSENIXというユーザーの互助組織に発展していくことになる。
現在、UNIXシステムのバージョンは、ユーザーマニュアルの版で区別されている[17]。例えば、"Fifth Edition UNIX" も "UNIX Version 5" も同じバージョンを意味している。ただし、ベル研究所内のUNIX開発者たちにとって、「公式にリリースされたバージョン」という概念はなく、一つのUNIXが連続的に変化しているだけであるという認識であった[18]。例えば、最初にPDP-11/20上で作成されベル研究所の特許部門で使われたUNIXはマニュアルの第一版が出される前のものであるし、バージョン1とバージョン2の間にも複数のUNIXが存在している。このように、Research UNIXにおけるバージョンは後の時代につくられた区分であり、ベル研究所の開発者たちによるものではない。
ベル研究所のUNIXは機能拡張を続けた。バージョン3ではパイプ機能が実装され、いっそうのモジュール化が進み、開発の促進に貢献した。バージョン5やバージョン6からは、ベル研究所内外で様々な派生バージョンが生まれた。
ベル研究所内部では、データベース機能を付加したCB UNIXや、多数のプログラマが使うことを想定したPWB/UNIXなどが作成された。ベル研究所外部では、初の商用UNIXであるIS/1が作成された。
1975年5月、ARPAはRFC 681の中でUNIXをARPAネットワークのホストとして採用する利点を挙げている。
バージョン6の時点まではUNIXはDECのマシンでのみ動作するOSであった[17]。この後、OSのソースコードは機種依存性の少ない記述に置き換えられ、また、そのような目的に沿うようにC言語が機能拡張されていった。1977年、ベル研究所はUNIXの機種依存性を減少させるために、PDP-11とはアーキテクチャーが大きく異なるInterdata 8/32を入手した。Interdata 8/32へのUNIXの移植は1978年に完了した。さらに、研究目的およびAT&T内での使用を目的として、独自のMMUを備えたIntel 8086ベースのコンピュータやUNIVAC 1100への移植が行われた[19][13]。このころ、ベル研究所外部でもUNIXの移植が試みられ、プリンストン大学ではVM/370ハイパーバイザー上でのゲストOSとして動作し、ウーロンゴン大学ではInterdata 7/32への移植が行われた。
1978年ごろには、UNIXは600台以上のシステムで稼動していたとされる。
PDP-11のマイクロプロセッサ版であるLSI/11では1978年にUNIXが動作するようになった。このころには、Intel 8086用UNIXが開発途上であったという記録が残っている。1979年には、WhiteSmithsが作成したIdrisがLSI/11で動作し、後にIntel 8080, 8086, Motorola 68000, Apple Macintoshなどでも動作するようになった。
一般的に使われたResearch UNIXとしては最後のものとなるバージョン7 は、1979年1月にリリースされた。これは後の多くのUNIXの母体となった。実際、現代（21世紀）からUnix系OSの流れを遡ると、いくつもの流れが最終的にバージョン7で合流することがわかる。
同年6月、DECの新たなVAXシステム向けにUNIX/32Vがリリースされた。しかしながら、UNIX/32Vはバージョン7を32ビット対応にしただけのもので、仮想記憶機能に対応していなかった。そこでカリフォルニア大学バークレー校では仮想記憶機能への対応を行い、1979年末にバークレー版のUNIX「BSD」を開発した。これはVirtual VAX/UNIXまたはVMUNIXとも呼ばれた。以降、バークレー校は、学術分野におけるUNIXの開発に重要な役割を果たすことになる。この時期、BSD開発の中心となったのが、後にサン・マイクロシステムズに入社しSunOSを開発することになるビル・ジョイである。
1980年代



バージョン7やUNIX/32V, PWB/UNIXはAT&T外部に積極的に宣伝され、1980年には「800件以上のシステムがベル研究所外部で動作している」とされ[20]、翌1981年には、「2000件以上」と広報された[21]。
その後のResearch Unixは バージョン8, 9, 10 と開発されてはいるが、外部への配布はごく一部の大学などに留まり、成果は主に論文などで知られている。また、システムとしてはUnixよりもむしろPlan 9につながっている点も多い。
1980年、カリフォルニア大学バークレー校は、DARPAからの資金援助を受けて、4BSDを完成させる。1981年には、BSDにTCP/IPに基づくネットワーク機能を組み込むプロジェクトが開始される。これは、最終的に1983年に4.2BSDとして実現された。TCP/IPがBSD Unixに標準採用されたことはインターネットの創成期の発展に大きく寄与した。たとえば、このTCP/IP対応コードは、後にMicrosoft Windows等で一時期使われた。こうしてBSDに伴うソケットAPIはネットワークAPIのデファクトスタンダードとなった
この1980年代初頭の時期には、大学でUNIXに慣れ親しんだ学生が企業に入り、商業分野でもUNIXの知名度が上昇することになった。
1980年には、マイクロプロセッサを用いたコンピュータ上で動作する商用UNIXの開発が始まった。同年、オニックスシステムズはザイログのZ8000を用いた自社コンピュータC8002上でUNIXを動作させた[17]。1981年、マイクロソフトはZ8001という16ビットマイクロプロセッサ上で動作するXenixと呼ばれるUNIXベースのOSを開発した。
サン・マイクロシステムズは1982年に、BSDの主要開発者だったビル・ジョイを入社させることに成功し、1983年にBSDに基づき自社製ワークステーション用にSunOS1.0を開発した。
こういった動きに対し、AT&Tは、1982年、主にバージョン 7をベースとしたUNIX System IIIをリリースした。これにはVAXサポートも含まれている。この時点では以前のバージョンのライセンス供与も継続している。
1983年には、AT&T内部で様々なバージョンが使われている混乱状態を解消するため、全てをまとめたUNIX System V Release 1を開発。これにはBSDから、エディタのviやcursesなどいくつかの機能が導入されていた。またウェスタン・エレクトリックが開発したコンピュータ3Bシリーズのサポートも含まれていた。
1983年、アメリカ合衆国司法省はAT&Tの2度目の独占禁止法違反の訴訟をAT&Tの解体で決着させた。1984年1月1日をもって地域系部門が分離、独立されることとなるが、一方で、AT&Tは通信業務以外の分野への参入が認められた。それにより、1956年の和解判決で禁じられていたコンピュータ産業への参入が可能となり、UNIXを製品化することが可能となった。これに伴い、AT&TはUNIXを用いたライセンスビジネスを開始し、UNIXをライセンス許可なしで使用することを禁止した[22]。UNIXのライセンスを受けた会社は、UNIXに様々な機能追加を施し、自社の商品として独自UNIXを搭載した機器を売り出した。これらの機器に搭載されたUNIXにはソースコードが付属していなかったことや、ライセンスが大変厳しかったことから、UNIXを自由に改変したり、またその改変した機能を公開できなくなった。その結果Unixは一時期閉じた世界のものとなり、Unix文化は絶滅寸前となった[16]。同1983年、リチャード・ストールマンがGNUプロジェクトを創始している。
そのころ（PC/AT互換機とMS-DOSが隆盛を迎える前）、業界の評論家はUNIXがその移植性と豊かな機能によってマイクロコンピュータの業界標準となることを予想していた[23]。1984年、いくつかの企業がUNIXに基づくオープン規格を策定すべくX/Openを創設。当初はうまくいっていたが、標準化はいわゆる「UNIX戦争」が勃発したことで頓挫し、様々な企業がグループを形成してそれぞれ独自に標準化を行う事態となった。Unix関連で最もうまくいった標準化はIEEEのPOSIXであり、BSDとSystem VのAPIを折衷したものである。これは1988年に発表され、間もなくアメリカ合衆国連邦政府の各種システムの調達条件とされた。
AT&Tは、UNIX System Vにファイルロック、システム管理、STREAMS、新たなIPC、Remote File System、TLIといった機能を追加していった。1987年から1989年まで、AT&Tとサン・マイクロシステムズは共同でXenix、BSD、Sun OS、System Vの機能を統合するSystem V Release 4 (SVR4) を開発した。この統合はX/Openとは独立して行われた。
1990年代


1990年、Open Software Foundation (OSF) がUnixの標準実装として、MachとBSDに基づいたOSF/1をリリース。この団体は1988年、いくつかの企業がAT&Tとサンの協業に対抗して組織したものである。これに対抗してAT&Tとそのライセンスを受けている企業グループはUNIX International (UI) を組織した。両者の対立が激化すると、再び「UNIX戦争」と言われるようになった。
バークレーでは1986年の4.3BSDの出荷後、AT&T由来のソースコードの分別と除去を推し進め、AT&T UNIX由来ではないソースコードを無償公開した。これが1989年のNetwork Release 1 (NET/1) や1991年のNET/2である。特にNET/2ではカーネルのソースのほぼ全てが含まれており、欠落した数個のファイルを開発することにより動作するカーネルを作ることができた。
1991年、ウィリアム・ジョリッツを中心とするBSD研究者らがカリフォルニア大学を離れ、Berkeley Software Design, Inc (BSDi) を創業。BSDiはBSD Unixを安価で遍在するインテルプラットフォーム上に実装した商用OSであるBSD/386を開発。これによって安価なコンピュータを業務に利用する潮流が生まれた。ジョリッツは創業直後にBSDiを離れ、386BSDの配布に専念するようになった。386BSDは、FreeBSD、OpenBSD、NetBSD といったフリーなOSの源流となっている。しかしUNIXのソースコード、特許等のライセンスを管理してきたAT&TはBSDに対して快く思わなかった。特にBSDiがNET/2を商用化してソースコードを販売したことがきっかけとなり、USL（当時UNIXの権利を保有していたAT&Tの子会社）はBSDi及びBSDを開発したカルフォルニア大学バークレー校に対し、BSDによるAT&Tが保有する特許及び著作権の侵害に対して訴訟を起こす。この訴訟の和解の結果、1994年には、NET/2の公開を取りやめることとなったが、4.4BSDからAT&TのUNIXに依存した部分を取り除いた4.4BSD-Liteを同校が公開できることになった。しかし、裁判の間BSD系のオペレーティングシステムは急激に開発のスピードが落ちたとされる。
最後に出荷されたBSDは4.4BSD encumberd（フリーではない）と、そのフリーなソースコードだけを抜き出して作られた4.4BSD-Lite2である。こうしてAT&Tとのライセンス問題を回避したBSDは後に述べるオープンソースUnixへとつながっていく。
1991年、リーナス・トーバルズがLinuxの開発を開始。当初はPC/AT互換機で動作するUnixクローンだった。
1993年までに、商用ベンダーの多くはSystem VをベースとしてBSDの各種機能を追加するという形に落ち着いた。同年、Common Open Software Environment (COSE) が主要ベンダーが参加する形で創設され、UNIX戦争が終結を迎え、UIとOSFも1994年に合併した。合併後の組織はOSFを名乗り、OSF/1の開発はやめることになった。当時OSF/1を本格的に採用していたのはDECだけであり、DECは独自に開発を継続して1995年にはブランド名をOSF/1からDigital UNIXに変更した。
UNIX System V Release 4が完成すると間もなく、AT&TはUNIXの権利をノベルに売却した。デニス・リッチーはこの取引を、エサウが目先の利益のために大事な権利を売ってしまったという聖書のエピソードにたとえた[24]。ノベルはこれを基にNetWareとSVR4を統合したUnixWareを開発し、マイクロソフトのWindows NTに対抗しようとした。
1993年、ノベルはX/OpenコンソーシアムへUNIXの商標と認証権を売却することを決めた[25]。1996年、X/OpenとOSFが合併し、The Open Groupが生まれた。特に1998年のSingle UNIX Specification策定以降、The Open Groupの各種標準は何がUNIXで何がUNIXでないかを定義するものとなっている。
1995年、既存のUNIXライセンスを管理サポートする事業と今後のSystem Vのコードベースを開発する権利がノベルから旧SCOに売却された[26]。なお、ノベルがUNIXの著作権も売却したかどうかは裁判で争われている（後述）。
1997年、アップルはMacintoshの新たなOSのベースとなるものを捜し、NeXTが開発したNEXTSTEPを選択した。このOSの中核部はBSDとMachカーネルに基づいており、アップルはそれを取得後 Darwinと名付けた。Darwin から生まれたのがmacOSであり、USENIXでアップル社員はデスクトップパソコン市場で最も広く使われているUnix系OSだと述べている。
2000年代
2000年、旧SCOはUNIX事業と資産を全てカルデラに売却。カルデラがその後SCOと称するようになった。
インターネット・バブル（2001年 - 2003年）が崩壊すると、商用Unixの淘汰が進んだ。Solaris、HP-UX、AIXといった1980年代に生まれた商用Unixだけが生き延び、健闘したシリコングラフィックスのIRIXもLinuxに取って代わられた。中でも2005年の時点で最大のシェアを誇っていたのがSolarisである[27]。
2003年、SCOはLinuxにはSCOが保有するUNIXの著作権を侵害している部分があると主張し、Linuxのユーザーやベンダーを法的に訴え始めた。IBMはSCOとの協業で得た企業秘密をLinuxに応用したとして訴えられ、旧SCOの顧客でLinuxに乗り換えた者は契約違反で訴えられた。これに対してノベルはUNIXのソースコードの著作権はノベルが依然として保持していると反論。ノベルによれば、著作権はノベルが保持しており、SCOは単にライセンス認証業務を委託されていたにすぎず、その業務を停止させる権利もノベルが保有しており、ライセンス収入の95%はノベルのものだという。SCOはこれに同意せず、結果として両者は裁判で決着をつけることになった。2007年8月10日、ノベルに有利な判決がなされた（UNIXの著作権はノベルが保有しており、SCOはノベルに渡すべきライセンス料を不正に蓄えているという判決）。判決ではさらに、SCOがIBMとシークエントを訴えている件で、本来の権利者であるノベルが訴えをやめることを希望しているため、SCOはそれに従うべきだとしている。判決後ノベルは、UNIXに関連して人々を訴えるつもりは全くないとし、Linuxの中にUNIXのコードが混じっているとも思わないとした[28][29][30]。2009年8月24日、SCOは第十巡回控訴院でこの判決の一部を覆すことに成功し、裁判の差し戻しが決まった[31][32][33]。
2010年3月30日、差し戻し審でSCOではなくノベルがUNIXおよびUnixWareの著作権を保持していることが満場一致で確認された[34]。SCOは破産管財人エドワード・カーンを通じてIBMとの裁判を継続する決定を明らかにした[35]。
2005年、サン・マイクロシステムズはSolarisのソースコードの大部分をオープンソース化する OpenSolaris プロジェクトを発表。最初にZFSというファイルシステムがオープンソース化された。そこからサン以外によるOpenSolarisのディストリビューションがいくつか生まれている。2010年にオラクルがサンを買収すると、OpenSolarisは公式には中止されたが、派生ディストリビューションの開発は続いている。
2010年代
2011年、SCOは、UNIX OS を UnXis（のちのXinuos）に売却した。
2016年2月16日 SCOの訴訟は、ユタ州連邦地方裁判所でのIBMとSCOの合意をもって終わりとなった。[36]。
2017年現在、LinuxはUNIX風のOSのシェアの大部分を占め、(macOSを除く)他のUNIXは微々たるシェアを有するにすぎない。
関連項目
Comparison of operating systems
List of Unix systems
Operating systems timeline
Plan 9 from Bell Labs
参考文献

関連文献
書籍

映像

外部リンク


, at The Open Group.


 at Curlie
.