わかるUNIXの歴史 / 番外編 ⑥系譜の最上流 ── シリーズの締め

底(手・ハードウェア)から始めた旅を、最上流で閉じる

Multics → Unix ── 何への反動だったか 最終回の年表は「~1965 Multics」から始まりました。ここが系譜の最上流。巨大で野心的だった Multics から降りた Thompson と Ritchie が、なぜ小さく簡潔な Unix を作ったのか。「大きいことは正しい」への異議申し立て ── その精神は、この旅で何度も出会った“小ささ”と、深く響き合います。

前提:第7回(初代Unix)・最終回(年表) 締め:小さく始めて、積み上げる

本シリーズは、いちばん(手で彫った種・配線されたハードウェア)から旅を始め、Linux まで登ってきました。最後に、いちばん── 系譜の最上流へ行きます。Unix が生まれる直前、そこには Multics という巨大な OS がありました。Unix は、ある意味でその反動として生まれた。今回は「Unix とは何への反動だったのか」を通して、この一族を貫く設計思想に触れ、シリーズを閉じます。それは、鶏と卵をさかのぼる旅でくり返し現れた“小さな種”の思想と、ひとつのものでした。

01Multics の野望 ── 計算を、電気のように

1964年、MIT・GE・ベル研が手を組み、時分割 OS Multics(Multiplexed Information and Computing Service)の開発を始めます。舞台は GE-645。目標は当時として息をのむものでした ── 数百人が同時に使え、計算を電気や水道のような公共サービスにする。しかも PL/I という高級言語で書かれた、OS 記述の先駆でもありました。革新の塊です。ただ ── 当時の技術には、野心的すぎた。

02撤退、そして「小さく作り直す」

ベル研は、Multics のサイズと複雑さに次第に嫌気し、1960年代末に撤退します(第7回)。残された研究者たち ── Ken Thompson、Dennis Ritchie、Doug McIlroy、Joe Ossanna ── は、Multics で味わった時分割の良さは手放したくなかった。そこで彼らは決めます ── 同じ良さを、うんと小さく作り直そう。 遊休の PDP-7 の上で(第7回)。それが Unix でした。

つなぐ声 ── 名前からして反動 第7回で見たとおり、名前 UNICS は Multics(Multiplexed…)のもじりで、「Uniplexed…」=去勢された Multics、発音は「ユーニクス(eunuchs)」。巨大な Multics への、皮肉のきいた小さな当てこすり。設計思想が、名前に刻まれていたのです。

03反動としての設計 ── 小さく、簡潔に

Multics と Unix は、設計哲学が正反対でした。下の図で、二つを切り替えてください。

図1:設計哲学の対比。Multics は「全機能を一つの巨大システムに」。Unix は「小さな道具を、パイプで繋ぐ ── 一つのことをうまくやる」
Unix の哲学(McIlroy らのまとめ)

各プログラムは、一つのことをうまくやる

・新しい仕事には、古いプログラムを新機能で肥大させず、新しく作り直す。

・プログラムをパイプで繋ぎ、小道具の組み合わせで大きな仕事をする(ls | grep | wc)。── 「大きな完全システム」ではなく「小さな部品と、その組み合わせ」。

04それでも、Multics から受け継いだもの

Unix は Multics の反面教師でしたが、同時にでもありました。第1回の言葉でいえば ── コードは1行も継がず、思想を継いだ。階層ファイルシステム、シェルを(カーネルでなく)ただのユーザプログラムにする発想、そして何より「時分割で対話的に使う」体験そのもの。Multics の良い部分の思想と、大きすぎた部分への反省を、両方受け継いで Unix は生まれました。反動とは、否定であると同時に、深い学習でもあります。

締めの急所 ── 「小ささ」は、このシリーズを貫く赤い糸

Unix の「小さく始めて、組み合わせで積み上げる」は、じつはこの旅で何度も出会った思想です ── 中間コードの小さな核(第4回)、357バイトの種(番外②)、手で彫った数語(第9回)。大きな塔を、小さな土台から積み上げる。ブートストラップの原理は、Unix の設計思想そのものだった。鶏と卵を下までさかのぼって見えた“小さな種”は、Unix が最初から大切にしてきたものと、同じでした。下の図で、その赤い糸をたどってください。

図2:「小ささ」の系譜。Multics への反動から Unix、パイプ哲学、中間コードの小さな核、357バイトの種、手で彫った数語まで ── シリーズを貫く一本の糸
正直な線 ── Multics は失敗ではない

(1) Multics は「失敗作」ではありません。セキュリティのリング保護、動的リンク、単一レベル記憶など多くの革新を残し、後世に大きな影響を与えました。1969年のベル研撤退後も開発は続き、実運用は2000年まで続いています。「大きすぎた」は当時の技術との相対的な話です。(2) 「Unix 哲学」の箇条書きは McIlroy らによる後年の整理で、理想化された面があります。実際の Unix/Linux も、歴史の中で相当に肥大しました。

(3) 「反動」は物語的な単純化で、Multics から Unix への連続的な影響(受け継ぎ)も同じくらい大きい。(4) 名前 UNICS の由来(第7回)には諸説あります。── これらの但し書きも含めて、歴史は一本の直線ではなく、影響と反発の織物です。

練習問題(今回の話だけで解けます)
  1. Multics の野望を一言で。なぜ当時「大きすぎた」のか。
    答えを見る
    計算を電気のような公共サービスにし、数百人が同時に使える時分割 OS。PL/I で書いた先駆だが、機能と規模が当時のハードウェアの能力に対して野心的すぎ、サイズと複雑さが重荷になった。
  2. Unix の設計哲学を、Multics と対比して述べよ。
    答えを見る
    Multics=全機能を一つの巨大システムに。Unix=各プログラムは一つのことをうまくやり、肥大させず作り直し、パイプで小道具を繋いで大きな仕事をする(小さく・簡潔に)。
  3. Unix が Multics から「継いだもの」と「継がなかったもの」は。
    答えを見る
    継いだ=思想(階層ファイルシステム、シェルをユーザプログラムに、時分割の対話体験)。継がなかった=コード(1行も。第1回の再実装の木)と、大きすぎる完全主義。
  4. Unix の「小ささ」は、本シリーズのどの“小さな種”と響き合うか。
    答えを見る
    中間コードの小さな核(第4回)、357バイトの種(番外②)、手で彫った数語(第9回)。「小さく始めて積み上げる」=ブートストラップの原理=Unix の設計思想。

シリーズの締め小さな種から、世界は積み上がった

系譜の最上流に、巨大で野心的な Multics(1964, MIT・GE・ベル研, GE-645, PL/I, 「計算を公共サービスに」)があった。ベル研はそのサイズと複雑さに嫌気して撤退し、残った Thompson・Ritchie・McIlroy・Ossanna は「同じ良さを、うんと小さく」作り直した ── それが Unix。名前からして Multics への反動(UNICS)。哲学は「各プログラムは一つのことをうまくやり、パイプで繋ぐ」。ただし Multics のコードは継がず思想を継ぎ、良さと反省の両方を受け取った(第1回の再実装の木)。

そしてこの「小さく始めて、組み合わせで積み上げる」は、私たちが鶏と卵をさかのぼる旅で何度も出会ったものだった ── 中間コードの小さな核(第4回)、357バイトの種(番外②)、手で彫った数語(第9回)。ブートストラップの原理は、Unix の設計思想そのもの。底(手・ハードウェア)から始めた旅は、最上流(Multics への反動)で、同じ一つの真実に還ってきた ── 大きなものは、いつも小さな種から積み上がる。

鶏が先か、卵が先か。
── 最初の卵は、手で彫った。
そして小さな種は、世界になった。

「わかるUNIXの歴史」本編11話+番外6話、これにて完結。最後まで、ありがとうございました。

この文書は「わかるUNIXの歴史」番外編⑥(最終)です。史実:Multics(Multiplexed Information and Computing Service)は1964年に MIT・General Electric・Bell 研の共同で開始された時分割 OS で、GE-645 上で数百ユーザの同時利用と「計算のユーティリティ化」を目指し、高級言語 PL/I で記述された先駆でもあった。規模と複雑さが当時の技術に対して野心的で、Bell 研は1960年代末に撤退。残った Ken Thompson・Dennis Ritchie・Doug McIlroy・Joe Ossanna らが、より小規模に作り直したのが Unix。設計は「各プログラムは一つのことをうまくやる」「新機能で肥大させず作り直す」「パイプで小道具を組み合わせる」といった原則(McIlroy らのまとめ)に特徴づけられる。Unix は Multics のコードを継承せず、階層ファイルシステムやシェルをユーザプログラムとする等の思想的影響を受けた(第1回の再実装の木)。Multics は多くの技術革新を残し、撤退後も開発が続き2000年まで運用された。「Unix 哲学」は後年の整理で理想化を含む。名称 UNICS の由来には諸説がある(第7回)。 ── 印刷する場合はブラウザの「印刷」から「PDF に保存」を(印刷版では図の操作・解答は静止/非表示になります)。この目次と各話 HTML は同じフォルダに置いてください(リンクが相対パスのため)。

印刷 / PDF 化:⌘+P(Windows は Ctrl+P)。画面では図1のボタンで Multics / Unix の設計哲学を、図2のスライダーで「小ささ」の系譜をたどれます。「答えを見る」で解答が開きます。全17話、おつかれさまでした。