KDOC 207: 『Unix考古学』

この文書のステータス

  • 作成
    • 2024-07-31 貴島
  • レビュー
    • 2024-08-03 貴島

概要

Unix考古学 Truth of the LegendはUnix開発の歴史についての本。

メモ

  • Multicsプロジェクトが終わり、予算もつかなくなった。プロジェクトは高価なマシンを調達できなくなった。そのような状況で、当時まだ若手のデニス・リッチーとケン・トンプソンは手近なPDP-7でゲームを移植した。PDP-7は周辺機器として購入されていたので、CPU時間は無料だった。ゲーム移植の一連の作業でPDP-7のプログラミングに慣れてきたため、ファイルシステムをPDP-7上に実装し始めた。この時点ではまだ、プライベートプロジェクトであった
  • Ken ThompsonとDennis Ritchie の功績は非常に有名だが、はじまりは悲惨なものだった。 Multics Projectという「失敗プロジェクト」に加担していたからである(p49)
  • 活躍の初期において本業にツイていなかったKen Thompsonだが、Space Travelに関しては誰も使っていなかった「PDP-7」を見つけられたのは幸運だった(p53)
  • Ken ThompsonはPDP-7上にFORTRANを実装することを宣言した。しかし結局はFORTRANと全く別の言語になり、「B」と呼ばれる言語になった。旧来との主たる違いは表記法で、C言語と通ずるものがある。しかし機能的に目立ったものはなかったようだ。少なくともこの時点で、Ken Thompsonはプログラミング言語を設計すること自体にはそれほど興味がなかったようだ(p61)
  • PDP-7 Unixの実装には明確な目標があったわけではなく、まともなコンピュータを手に入れるまでの代替処置的な手段として開発されたと推測できる(p64)
  • Unixのパスワードファイルに「GECOSフィールド」という項目がある。これは、かつてのUnixマシンからGECOSマシンにプリンタ出力やバッチ処理要求を送信する際、ユーザ識別のために付加された情報に由来している(p66)
  • Joe Ossannaの提案した「文書処理システム」は、実に都合のよい玉虫色の研究テーマであった。マシンの調達と、OSに関する研究の言い訳ができるようになった(p76)
  • Ken Thompsonは学生時代にQEDに正規表現の機能を実装しており、さらに実装に使用した正規表現を機械語にコンパイルするアルゴリズムについて論文を書き、特許も取得していた(p83)
  • Unixの “Small is Beautiful”な哲学は、Multicsの開発に対する反省から生まれた(p97)
  • yaccはB言語のコンパイラのために作られた(p106)
  • 初期のC言語の開発での最大の目標は、「UnixカーネルをC言語で書き直すこと」であった。つまりカーネルを記述するために必要な機能が、すべてサポートされていることがゴールであった(p116)
  • UnixもC言語も初期は一人で担当できるくらい十分に小さかった
  • OSとしてのポータビリティのなさがTENEXを36ビットアーキテクチャに埋没させ、はどウェアの死滅の道連れにさせたと考えられる(p146)
  • 1973年のThird Edition Unixは、OSとしては「ちょっと目立つニューカマー」でしかなかった(p146)
  • AT&Tのサポートする気のなさは、結果的に協力なUnixユーザコミュニティを形成させる直接的な原因となった。いずれのユーザも「手元にあるのはソースコードだけ」という状態だったので、当初はそこから学び取った情報をユーザ同士で共有するという自己防衛的な発送でユーザの相互扶助が成立していた(p152)
  • PCCの開発者であるSteve Johnsonは周囲の期待に応えてコンパイラにかかわる作業を長年続けていた。後に彼は「個人的にそれほど関心のあるテーマではなかった」という(p173)
  • PCCの機能改善を行うために前段の構文パーサーが開発された。その過程で、Cプログラムの構文チェッカー“lint”が生まれた。当時はコマンドの名前に4文字しか使用できなかった(p175)
  • 「カーネルも単なるプログラムの1つである」という考え方こそが、Unixがポータビリティを獲得したブレークスルーであった。カーネルをここまで簡単に取り扱えるように設計されたOSは、Unix以前には皆無だった(p176)
  • ポータビリティのためのカーネル修正作業における成果の1つが、現代のC言語ユーザには当たり前とされている「システムコールの戻り値の一貫性」である(p177)
  • 1970年代は16進数表記が一般的でなかった。1980年代になると16進数に慣れ親しむ人が増えていった(p179)
  • 32ビットへの対応はUnixが「ミニコンのOS」から「汎用OS」へと進化したことを意味した(p180)
  • Seventh Edition Unixのリリースは、1980年代に起こるUnixブームの準備を整えた。いっぽうで「Unixの青春時代の終わり」を告げるものでもあった。Seventh Editionがリリースされたころ、AT&TはUnixを製品化し、コンピュータビジネスに参入することを表明した。そして、Seventh Edition Unix以降のUnixライセンスにはAT&TのUnixビジネスの妨げにならないように多くの制約が加えられるようになった(p181)
  • データベースシステムOracleの最初のバージョンはPDP-11上でアセンブラを使って書かれた(p194)
  • 代表的なUnixコマンドが出揃ったのは、Seventh Edition Unix以降のことである(p197)
  • RFCはIMPを介してARPANETサイト間で共有されたメモランダムが始まりである(p277)
  • コンピュータサイエンスの分野でも、それまで先駆的研究の守護者として存在していたARPAが消滅することにより、民間活力による自律的・継続的な技術革新が促されることになる(p282)
  • UCBの4BSDはARPANETの研究開発そのもののためではなく、研究成果であるTCP/IPのプロモーションのために開発された(p293)
  • 新しいttyドライバのおかげで、BSD Unixにはビデオターミナルを前提とした高機能のターミナルインターフェースが実現された。Seventh Edition Unixのttyドライバは1文字削除時にエコーバックが出ないなどあまり優しくないインターフェースだった。ttyドライバによって、現在使われるようなCUIと同じような挙動をするようになった(p310)
  • 『人月の神話』で紹介されている事例。人間が設計する2番目のシステムは一般に作り込みすぎてしまう傾向があるため、もっとも危険なシステムになってしまう、という(p388)
  • 「いったいPCとは何をするための道具なのか」といった哲学的な問題を考えると、答えられる人は少ない。PCというキーワードがなかったらどう説明するか。これは1970年代末、マイクロプロセッサに関わる多くの人々共通の悩みであった。マイクロプロセッサの可能性や将来性について、彼らは直感的によく理解できていた。しかしそれを理解できない人に説明するのは難題であった。パーソナルコンピュータというコンセプトが当時は存在しなかった(p396)
  • Unixの配布元のAT&Tは望んでソースコードの配布を行ったわけではない。当時AT&Tはアメリカ国内の電信電話市場を事実上独占する公益事業を営む企業で、別の業界への参入を禁止されていた(p420)
  • Microsoftは1979年にUnixライセンスを取得し、自社の製品(XENIX)として拡張して販売していた(p431)
  • Richard Stallmanは、生活費を稼ぐために年に数ヶ月だけ行方不明になることがあった(p469)

関連

Backlinks