読者です 読者をやめる 読者になる 読者になる

Code Day's Night

ichikawayのブログ

Unix考古学を読んで遠い昔に思いを馳せる

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は動く状態で存在しているのはここにしかないとか。 

 

Unix考古学 Truth of the Legend

Unix考古学 Truth of the Legend

 
UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

 

 

ハッカーズ

ハッカーズ