1969年4月、Bell Labsは7年続いたOS開発プロジェクトから撤退した。MIT・GE・AT&Tの三組織連合、数百人体制で進めていた「Multics」。約束した時期にも、その先の延期した時期にも、実用システムは届かなかった。
撤退会議の数ヶ月後、その元メンバーのひとりが、研究所の倉庫に転がっていた古いPDP-7というミニコンピュータの前に座っていた。Ken Thompson、26歳の研究員。書こうとしていたのはOSではなく、宇宙船を操縦するゲームだった。
UNIXはここから始まる。
承認なし、予算なし、人員4〜5人、初期実装期間およそ1ヶ月。半世紀後、その直系と甥っ子の子孫がiPhoneを動かし、AWSのサーバを動かし、Androidの上で世界の大半の人間がメッセージを送っている。
Mission:撤退から始まる
時系列を1964年に戻す。
Multicsは、コンピュータ史上もっとも野心的なOSプロジェクトだった。マルチユーザー、リング保護、動的リンク、大規模時系列共有。当時としては未来の概念をすべて同じシステムに乗せようとした。MITとBell Labs、それにGEの三組織が組み、Bell Labsからも10人以上が参加した。
Multicsの目的は、Bell Labs内部の技術者が共同で使える時系列共有システム(タイムシェアリング)を持つこと。1964年に合意した時点では、数年で動くはずだった。
5年経って、動かなかった。
1969年3月から4月、Bell LabsはMulticsから撤退する。Dennis Ritchieが後年回想している。「1969年までに、Bell Labsの経営陣と研究者たち自身ですら、Multicsの約束が叶うのはあまりにも遅く、あまりにも高くつくと信じるようになった」。
当時のComputing Science Research Directorだった Sam Morgan の言い方は、もう少し容赦がない。「Multicsは一度に多くの木に登ろうとしていた」。
撤退後、Ken Thompsonとその同僚はBell Labsの管理層に新しいOS開発を提案した。却下された。Multicsの数百万ドルが消えた直後だ。OS開発という単語自体がしばらく組織のタブーになっていた。
ここでThompsonは別の動機に切り替える。彼は「Space Travel」という宇宙船操縦ゲームを書きたかった。Multics上で動いていたが、計算時間が高く、操作性も悪い。Bell Labsの倉庫を歩き回って見つけたのが、誰も使っていないPDP-7だった。1965年あたりに導入されたが、もう陳腐化しかかっていたミニコンピュータだった。
ゲームを移植するためには、ファイルシステムが要る。ファイルシステムを書くなら、その上でアセンブラとローダが要る。書いていったら、それはほとんどOSになっていた。
Design:Multicsから1番良いものを抜き出す
UNIXの設計判断の特徴は、Multicsを否定したことではない。Multicsの中から「これだけは絶対残す」というものを抜き出し、その他を全部捨てたことだった。
残されたもの。
階層型ファイルシステム。Multicsの最大の発明のひとつだった。ファイルが入れ子のディレクトリで整理される。今となっては当たり前だが、当時のOSの多くはフラットなファイルリストだった。
シェル。OSとユーザーが対話するための薄い層。コマンドを打つと実行される。
時系列共有。複数ユーザーが同時に使える。ただしMulticsのような大規模ではなく、当初は2人。
捨てられたもの。
リング保護機構。動的リンク。仮想メモリの精緻な管理。マルチユーザー認証の複雑なポリシー。Multicsを「Multics」たらしめていた高機能の数々。
そして、決定的に違うのが2つあった。
ひとつめは「すべてがファイル」という抽象化。ハードディスクの中身も、テープデバイスも、プリンタも、UNIXからは同じファイルとして見える。read()とwrite()という同じ命令で操作できる。デバイスごとに違う命令体系を覚える必要がない。
ふたつめは「パイプ」。Doug McIlroy が1960年代から温めていた構想を、1973年に Thompson が実装した。あるプログラムの出力を、そのまま次のプログラムの入力につなぐ。| 記号でつなぐだけだ。
ls /usr | grep ".txt$" | sort | wc -l
4つの小さなツールが3本のパイプで繋がっている。ls はファイルを並べることだけを知っている。grep は文字列を絞ることだけを知っている。sort は並び替えることだけを知っている。wc は数えることだけを知っている。誰も全体の意図を知らないまま、結果として「テキストファイルの個数」が出る。
McIlroy はこの設計思想を、1978年に Bell System Technical Journal の UNIX 特集号 foreword に4つの原則として書き残した。
- 各プログラムは一つのことをうまくやれ。新しい仕事のためには、既存のプログラムに「機能」を足すのではなく、新しく作り直せ。
- すべてのプログラムの出力が、まだ知られていない別のプログラムの入力になることを想定せよ。出力に余計な情報を混ぜるな。整列された列入力や厳格なバイナリ入力形式を避けよ。対話的入力を強要するな。
- ソフトウェア(OSを含む)は、できるだけ早く試せるように設計せよ。理想は数週間。不格好な部分は迷わず捨てて、作り直せ。
- プログラミングを楽にするためには、訓練されていない人手より道具を使え。道具を作るための回り道を厭うな。使い終わったら捨てよ。
後年、これをさらに圧縮した3行が、もっともよく引用される「Unix哲学」として独り歩きする。
プログラムは一つのことをうまくやれ。 プログラム同士が協調するように書け。 テキストストリームを共通インターフェイスにせよ。
4原則と3行を並べると、原典の方が「捨てる」という動詞を2回使っているのに気づく。McIlroy の哲学の核は「組み合わせ」ではなく、「捨てる」だったのかもしれない。Multics が捨てられなかった機能を、UNIX は最初から捨てる前提で書いた。
Multicsが「すべてを内部に持つ巨大OS」だったのに対し、UNIXは「小さな道具を組み合わせる空間」だった。同じBell Labsで生まれた、対照的な設計思想。
Execution:1ヶ月のカーネル、特許部門の予算、Cという賭け
最初のUNIXは1969年の夏に書かれた。Thompsonが約4週間で、PDP-7のアセンブリで実装した。クロスアセンブラはGECOS(GEのメインフレーム)上で動かし、紙テープに穿孔してPDP-7に運んだ。
紙テープでOSをロードするマシンに、ファイルシステムとシェルとエディタを実装した1ヶ月。Multicsの数百人×5年に対する、ひとりの夏休み。
ただし、ここから先に進むためには予算が要る。Bell Labsは公式にはOS開発を承認していない。Thompsonたちは別の言い方を見つける必要があった。
Bell Labsの特許部門が、ちょうど文書作成ツールを探していた。当時の特許申請は機械式タイプライタで書かれていて、訂正のたびに全ページを打ち直していた。Doug McIlroyが書いた組版プログラム「roff」がPDP-11上のUNIXで動くようになり、Joe Ossannaがその後継として nroff と troff へと発展させていく。特許部門は喜んだ。彼らがPDP-11/20の購入予算を出した。
OSとしての予算ではなく、組版ツールとしての予算。
これでUNIXは公式の存在になる。1971年、初版マニュアル(V1)が出る。社内では、ベル研究所の研究者たちが文書を書くためにUNIXを使い始めていた。OSは、文書作成という副次的な目的の付属物として、こっそり存在していた。
ここで1973年の決定的な賭けに進む。
Ken Thompsonは1969年から1970年にかけて「B」という言語を作っていた。Dennis Ritchieがそれを発展させ、1971年から1973年にかけて「C」という言語にした。型を持ち、構造体を持ち、PDP-11の特性に合わせて設計された。
1973年、Thompsonと Ritchieは UNIXカーネル本体をCで書き直す。
当時のOSは機種ごとにアセンブリで書かれていた。マシンが変われば、全部書き直しだ。OSをコンパイラ言語で書くというのは、性能を捨てる代わりに移植性を取るという賭けだった。
短期的にはコストだ。動いていたものを書き直すのだから。
長期的には何が起きたか。1976年、UC Berkeleyが PDP-11上でUNIXを使い始めた。Cで書かれていたから、移植は数ヶ月で済んだ。1977年、Bell Labsの内部で UNIXは VAX-11/780に移植された。同じく数ヶ月。その後 IBM 370、各種のミニコンピュータ、ワークステーション、そしてPCへ。
1973年の手戻りひとつで、その後の何十回もの移植が安価になった。
UNIXがCで書かれていなければ、80年代のワークステーション市場も、Linuxも、macOSも生まれていない。
People:4人の研究員と、訴訟という追い風
Ken Thompson。1943年生まれ。UC Berkeley出身。MITでMulticsに関わり、Bell Labsへ。チェスのプログラムも書く、数学もできる、ハードウェアもいじる。UNIXの最初のカーネルを書いた。
Dennis Ritchie。1941年生まれ。ハーバードで物理学、その後コンピュータサイエンス。ThompsonとともにMulticsからUNIXへ移った。C言語の設計者。物静かで、論理的で、文章がうまかった。後年の UNIX論文の多くを書いている。
Doug McIlroy。1932年生まれ。Computing Techniques Research Department head(1965-1986)。組織として UNIXを守った人。「パイプ」のアイデアを提唱し、Unix哲学を1978年のBell System Technical Journal UNIX特集号の foreword で言語化した。Thompsonたちより一回り上の世代で、上層部との緩衝材だった。
Joe Ossanna。1928年生まれ。troff(組版)の開発者。特許部門との橋渡し役。1977年11月に48歳で亡くなったが、UNIXの「事実上の予算化」を可能にした人物。
このメンバーが、Multicsの撤退会議の余白で集まっていた。4人とも、Multicsという大計画が動かなくなる過程を内側から見ていた。何を入れると重くなるか、何を抜くと動き始めるかを、文章ではなく身体で覚えていた。
そして、ここに偶然の外部要因が重なる。
AT&Tは独占禁止法の訴訟下にあった。1956年の同意判決により、AT&Tは通信事業以外の商売を実質的に禁じられていた。UNIXはソフトウェアであり、商品にできなかった。
商品にできないものは、配るしかない。
1974年、AT&Tは大学にUNIXのソースコードを「教育目的に限り、ほぼ無償で」配布し始める。UC Berkeleyが受け取り、それを改良し、再配布した。これがBSDになる。MITも受け取った。各国の大学も受け取った。
商売にできなかったことが、結果的にエコシステムを生んだ。1982年にAT&Tの独占が解かれてUNIXを売り始める頃には、もう世界中の大学にUNIX文化が根付いていた。
訴訟が UNIXを救った、と言うこともできる。Ritchieは控えめに次のように書いている。「私たちはUNIXが普及するとは思っていなかった。少なくとも、それが目的ではなかった」。
Thompsonと Ritchieは1983年、ACMチューリング賞を共同受賞する。受賞理由は「汎用OSの理論の発展、そしてその顕著な実装であるUNIXの実装」。Multicsの撤退から14年経っていた。
Legacy:4人が書いたものは、いま地球上で何回動いているか
2026年現在の数字を並べる。
世界のサーバの大半はLinuxで動いている。Linuxは1991年、フィンランドの大学生 Linus Torvaldsが「自分のPCで動かしたいUNIX的なもの」を独立に書き始めたカーネルだ。Bell Labsのコードは入っていないが、設計思想、APIの形、システムコールの哲学、すべてがUNIXから来ている。
macOSはDarwinというカーネルの上で動き、その血統はBSD(UC Berkeleyの UNIX系列)に直接つながる。1973年のCの書き直しが、2026年のMacBookで動いているのは、過剰な詩的表現ではなくて、実際にそうだ。
iOSはmacOSと同じ系譜。AndroidはLinuxカーネルの上で動く。世界のスマートフォンのほぼ全てが、UNIXの直系か甥っ子だ。
AWSのEC2インスタンス、Google CloudのVM、Microsoft Azureの主要な仮想マシン。ほとんどがLinux。インターネットを動かすルータの中のOSも、たいていはUNIX系。
世界中で、毎秒、UNIXのシステムコールが何兆回呼ばれているか、正確な数字は誰も持っていない。
Multicsは1970年代後半まで Honeywell が販売し、1985年に新規開発が止まった。最後のMulticsシステムは2000年に停止された。
4人が3ヶ月で書いたOSが、数百人が7年かけて書いたOSを30年以上生き延びた、と書いても歴史を歪めない。
数字でもう一段。
1973年10月、Bell LabsはSOSP(Symposium on Operating Systems Principles)という学会でUNIXを発表した。Ritchieの後年の論文によれば、当時の社外の利用機関は16前後。それが80年代に入る頃には主要大学とミニコンピュータメーカーの大半に広がり、90年代以降は「数えること自体が意味を失う」規模になった。1991年にLinuxが登場し、累計利用台数の概念がついに崩れる。
UNIXの後継たちは、IBM System/360、Multics、CTSS、VMS、Windows NT、これらすべてを世代交代の過程で吸収するか、置き換えるか、共存するかしてきた。
唯一の例外は、UNIXとは別系統で進化し続ける Windows系だが、その Windows もWSL(Windows Subsystem for Linux)でUNIXを内部に取り込んでいる。
OS本体だけでなく、Unix哲学そのものが現代の設計思想に染み込んでいる。マイクロサービス・アーキテクチャの「サービスは一つのことをうまくやれ」、REST API の「テキストを共通インターフェイスに」、Docker コンテナの「使い終わったら捨てよ」、これらは McIlroy が1978年に書いた4原則のほとんど直訳だ。半世紀前に Bell Labs の特許部門の予算で動いていた小さなOSの設計思想が、Amazon や Netflix のインフラ設計の議論の前提になっている。
学び:計画されないプロジェクトが、計画されたプロジェクトに勝つ構造
UNIXの物語から取り出せる教訓のうち、もっとも鋭いものを1つだけ書く。
承認を取らずに進めた方が、結果的に長く生き残るプロジェクトが存在する。
これは「承認制が悪い」という話ではない。承認制が必要なプロジェクトは多い。インフラ、法規制、安全性、これらは承認なしでは進められない。
しかしソフトウェアのある種のプロジェクトは、承認制と相性が悪い。理由は3つある。
1つめ。承認制は「失敗のコスト」を可視化する。可視化されたコストは、撤退判断を遅らせる。Multicsは「数百万ドル投じた後だから引けない」という形で長く生き延びた。当事者たちは「動かない」と感じていたが、撤退の合意形成に時間がかかった。
2つめ。承認制は「合意の範囲」を縛る。提案時に書いたものから外れた変更は、再承認が要る。再承認には時間が要る。「Multicsから一番良いものを抜き出して小さくする」というUNIXの設計判断は、承認制の中では発生しなかった。提案として通せる形ではなかったからだ。
3つめ。承認制は「責任」を分散する。何かが動かなかったとき、誰の責任かが明確になる構造は、誰も決定的な判断をしなくなる構造でもある。UNIXは、Thompsonが「自分が使うために書いた」だけだったので、誰の責任もなかった。誰の責任もないものは、誰にも止められない。
ここで逆説に踏み込む。
UNIXが10年後、20年後に世界を支配することを、誰も予測していなかった。Thompson本人も、Ritchieも、McIlroyも、上層部の誰も。だから誰も「重要なプロジェクト」として扱わなかった。重要なプロジェクトでなかったから、組織政治が介入しなかった。介入しなかったから、4人が良いと思う設計判断がそのまま実装された。
そして、その良い設計判断が、結果的に世界を支配した。
このパターンは何度か繰り返されている。Linuxは Linus Torvaldsが大学生のときに「自分のPCで動くMinix代替が欲しい」と思って書き始めた。AWSは Amazonの内部インフラとして始まり、外販する予定はなかった。Gitは Linuxカーネル開発の道具として2週間で書かれた。
承認制の外側で生まれ、結果的に内側を凌駕する。
ここから取り出せる問いは「正解を選べ」型ではなく、構造のトレードオフだ。
あなたの組織には、承認を取らずに進んでいるプロジェクトがあるか? それは何の予算で動いているか? もし「本業」として承認制に乗せた瞬間に、何が変わるか?
Bell Labsの特許部門が UNIXの予算を出していなければ、UNIXは1972年に消えていた。承認を取らずに進めるためには、組織のどこかに「副次的な目的」を見つけるか、自分の余暇時間を使うか、別の予算名目を借りるか、いずれかが要る。
UNIXは「特許部門の文書作成ツール」という形で承認制と共存した。承認制を否定したのではなく、承認制の隙間に落ちていた。
組織の中の小さな余白を見つけられる人だけが、計画されないプロジェクトを生かし続けられる。
Multicsが約束したものは、いまもまだ完成していない。Thompsonが「自分のために」書いたものは、いまも動き続けている。
出典・参考資料
- Dennis M. Ritchie「Early Unix history and evolution」Nokia Bell Labs (https://www.nokia.com/bell-labs/about/dennis-m-ritchie/hist.html) — 撤退の時期と理由、PDP-7上での実装、C言語化の動機まで Ritchie本人による一次史料的記録
- Engineering and Technology History Wiki「UNIX」(https://ethw.org/UNIX) — Multics撤退後のメンバー構成、PDP-7とGECOSクロスアセンブラの関係
- Multicians.org「Unix and Multics」(https://multicians.org/unix.html) — Multics側からの記録。撤退時期の3月/4月の差、Sam Morganの発言
- Wikipedia「History of Unix」(https://en.wikipedia.org/wiki/History_of_Unix) — V1〜V7の各版の特徴、C書き直しの年、BSD/System Vの分岐
- ACM「Turing Award - Dennis M. Ritchie」(https://amturing.acm.org/award_winners/ritchie_1506389.cfm) — 1983年共同受賞の業績要約
- S. C. Johnson, D. M. Ritchie「Portability of C Programs and the UNIX System」Bell Labs (1978) — Cで書かれたOSの移植性を Bell Labs内部から検証した文書
- Eric S. Raymond「The Art of Unix Programming」Ch.2 “Origins and History of Unix, 1969-1995” (http://www.catb.org/esr/writings/taoup/html/ch02s01.html) — Unix哲学の整理、AT&Tライセンス事情のBSD/System Vへの影響
- Computer History Museum「The Earliest Unix Code: An Anniversary Source Code Release」(https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/) — 初期コードと特許部門での予算化の経緯
- M. D. McIlroy, E. N. Pinson, B. A. Tague「UNIX Time-Sharing System: Foreword」Bell System Technical Journal, Vol.57 No.6, July-August 1978 (https://archive.org/details/bstj57-6-1899) — Unix哲学の4原則の原典


