3年ほど前に「Unixという考え方」という本を読んで感銘を受けたので、最近話題になってたUnix考古学も読んでみました。これは非常に面白く、早く先を読みたいと思う本でした。
1960年から1990年ぐらいまでのUnixの歴史が、数多くの参考文献やメモを掘り起こし、整理して、たまに著者の推測も入りながら書かれている本です。 当時の政治などの時代背景も書いてあるのが良いです。
Unixの初期はAT&Tが独占禁止法で通信分野以外の商売をしてはいけない状態で、AT&Tのベル研究所から研究成果としてUnixが出てきて、開発者の草の根活動なども手伝って普及していく過程、その後BSDなどに派生したり、AT&Tが解体されてUnixを商売として力を入れられるようになっていく過程、ARPAやDARPAによるインターネットの後押しなどなど、今の私たちを支えるUnixやインターネットがたどった道が詳細に書かれていて興奮します。
中に出てくる開発者達が、研究成果を元にどんどん起業していくのは、この当時からアメリカという国はこうなんだなと感じました。
印象に残った箇所
面白かった箇所は多いのですが、印象に残ったものは
「AT&Tで使われているアプリケーションの複雑さを考えれば、アプリケーションを新しいOSに移植するよりも、OSを新しいマシンに移植するほうがより簡単だろう」P.86
当時はマシンベンダーごとに異なるCPUであったり互換性がなかったのでUnixが普及する過程ではポーティング作業が多かったようですが、その結果、様々な環境でUnixが動くようになり、このポータビリティがUnix普及を後押ししました。
アプリケーションを移植するよりもOSを移植するほうが簡単というのはすごいですね。
それ以外にも、リントストラップというコマンド名にしたかったが当時は4文字しかコマンド名につかえず、lintというコマンド名になったとか、シェルの中で他のコマンドを呼び出してプロセスフォークすると、当時の非力なマシンを複数人で共有している環境ではフォーク処理時間が問題になり、testコマンドなどはシェルのビルトインコマンドにしたとか。
testコマンドは今でも which test すると、「test: shell built-in command」となっていてビルトインコマンドになってますよね。
Unixのソースコード
この本を読んでると、当時のUnixのソースコードはどんなものだったか気になります。下記のサイトでは、過去のUnixのソースコードが可能な限り公開されています。
http://minnie.tuhs.org/cgi-bin/utree.pl
たとえば、4.3BSDのTCPに関するコードはここ。
http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD/usr/src/sys/netinet
読みたくなった参考文献
この本は参考文献が非常に多いのも特徴的で、後で読んでみようと思うものありました。
一つが、デニスリッチーとケントンプソンが書いたUnixに関する初めての論文
「The UNIX time-sharing system」 です。
もう一つが、ヴィントサーフとロバートカーンが書いたインターネットの構想を書いた論文「A Protocol for Packet Network Communication (May 5, 1974) 」です。
あと、当時の人たちの生態を描いたスティーブンレヴィの小説、ハッカーズも読んでみたいと思います。
余談
私が初めて自分のPCにUnixを入れたのは1999年ごろ、FreeBSD 2系を486のPCに入れてネットワークカードもない状態でいじってました。たしかFreeBSDのムック本がCD-ROM付きで出てて、興奮しながら買ってインストールしたのを覚えてます。
ちなみに、私が生まれた年に出たUnixは、「Seventh Edition Unix」でした。どうでもいいですけど。。
そういえば、2009年ぐらいにアメリカのComputer History Museumに行ったのですが、偶然にもPDP-1の実機デモを見せてもらいました。当時のエンジニアがボランティアでPDP-1のメンテナンスをしてて、楽しそうにコンピューターのことを語ってたのが印象的でした。ちなみにPDP-1は動く状態で存在しているのはここにしかないとか。
- 作者: スティーブン・レビー,松田信子,古橋芳恵
- 出版社/メーカー: 工学社
- 発売日: 1987/02
- メディア: 単行本
- 購入: 20人 クリック: 310回
- この商品を含むブログ (59件) を見る