トップ «前の日記(2016-04-26) 最新 次の日記(2016-04-30)» 編集

日々の破片

著作一覧

2016-04-27

_ なぜUnixはUnixなのか(Unix考古学を読み始めた)

アスキーの鈴木さんにUnix考古学を頂いたので読み始めて、シェヘラザードの代わりに寝台の脇に置いて何夜か過ぎて大体半分読んだ。

抜群におもしろい。単なる読み物としてもおもしろいのだが、おおそういう理由でそうだったのか/こうなっているのかという説明が(あとがきを読むと、筆者は類書をネタにしているのではなく(ゼロではないだろうけど)、当事者たちのログや論文を読むことで事実関係を掘り起こして推測して結論づけたりしている。なるほど、その作業は電子の地層から掘り起こして塵を払ってつなぎ合わせて当時を復元していく作業にそっくりだ。それで「考古学」なのだな)なかなかに快刀乱麻で読んでいて実に楽しいのだ。

まずまえがきにぶっとぶ。

読み進めて次の文章に腰を抜かした。

人づてに聞いた話だが、著者の藤田氏は1970年代生まれよりも若い年代に本書を読んでほしいとのことだった。

それは若くない。とつっこみたくなるが、落ち着いて考えてみると、もし仕事を初めてから本格的にマシンに触るようになったとすれば1975年生まれの人がマシンに触るのは大体1990年代後半、すでにWindows95でマイクロソフトがふつうで、触りたければLinuxが使えるようになっていて、BSDは1994年に4.4で打ち止めている。確かに1970年代で若いということになるのだった。

第1章のプロローグがまずおもしろい。ものの本なら1行で「Multicsへの反省からトンプソンとリッチーが職場に転がっていたPDP-7を利用してUnixを開発した」で済まされるところを、きちんと掘り起こしていく。

・MulticsがGEを中心としたプロジェクトだったこと

この時点で、あー、IBMに敗れてコンピュータから手を引いた(後にウェルチで有名になる)GEかと歴史から消え去ったかっての覇者が突然出てきて驚く。するとMulticsが今どこにも存在しないのは、それが失敗プロジェクトだったというよりもGEがコンピュータ市場から撤退したからじゃないのかという巷間の歴史に対する疑念が湧いてくるわけだ。

・一方IBMはシステム360の開発で困り抜いて人月の神話が生まれる

というわけでOSの開発というものが、神話化してしまってビジネス的にはありえないプロジェクト化しつつある(と、ここでブルックスが乱入してきてびっくり)

人月の神話【新装版】(Jr FrederickP.Brooks)

(読めと本書でも語られている)

・ベル研(ここではBTL)は途中でプロジェクトから撤退

・AT&Tとしては独禁法がらみの縛りでコンピュータビジネスに手を出せない→ビジネス上の意味がない

となり、でっかな会社で失敗プロジェクトに属している社員が存在感を発揮するためには何をすればよいかというMulticsプロジェクト出向社員たちの命運はいかにというこれまで考えたこともなかったストーリーが始まる。

それにしてもかってALTO(というかSTAR)が超高級ワープロとして客先のコンピュータルームに置かれていたのを思い出して、1980年代初頭あたりまでは、普通の人たちには用途がわけわかなマシンを文書整形機として予算を獲得したりするものだったのだなぁとか隔世の感に打たれるのだった。(つまり、Unixはベル研の中でroffシステムとしてプロジェクト化されたのだった。で、実際にUnix-1は特許対策局で実用に供された)

・最初のUnixはPDP-7にハンドアセンブリして記述された

・トンプソンが作ったアセンブラは手抜きなので出力ファイル名は常にa.outとなる(ってことはaはアルファベット最初の1文字以上の意味ないんじゃないか?)

・Cが出てくるのはずいぶん後の時代

・高級言語の必要性から、最初トンプソンはFORTRANの実装を宣言していた

・すぐにあきらめてBCPLの実装を開始

・コードの断片が出ているが、LETでローカル関数を定義して地の文で呼び出している(C++で王の帰還となった「//」はBCPL)

・トンプソンは{}が好きらしい

・B誕生

(BCPLは僕にとってはAmiga OSの記述言語として印象深いのだが、イギリス生まれだったと知って、それでメタコムコ(イギリスの会社。Amiga OSの実装を担当)はBCPLを使ったのかとちょっと納得した)

と、ずいぶん迂回している。迂回している原因はPDP-11用に型を入れたかったで、というのはPDP-11がワードマシンではなくバイト(オクテットの意味だと思う)マシンだったから(なぜワードマシンからバイトマシンになると型が欲しいかというと、charとintの使い分けが空間的にも時間的にも効率に影響するからだ)

ブレークスルーになっているのがTMGという別のプロジェクトで作られたパーサジェネレータだとか、初期の開発時の超くそめんどうそうなクロス開発とかの様子がまたむちゃくちゃおもしろい。おもしろすぎるくらいだ。

・fork/execはMulticsに並ぶARPAの別プロジェクトのProject GENIE由来(GEがついているくらいでこれもGE。MulticsがMITならGENIEはUCB)

・パイプの必要性を説いたのはダグマクロイ(本書では人名は原語表記なので、このカタカナがそれなりに正確かは知らない)で、最初トンプソンもリッチーも必要性も重要性もまったく理解できなかったが、あまりにダグマクロイがしつこいのでトンプソンが1晩くらいのハックで実装してみた。結果、全員が口あんぐりするくらい有効だった。

(というような、今では当たり前の機能が全然存在していなかった時代に、誰のどのような思い付きや必要性から実現されていったかが説かれているところは取り分けおもしろい)

Unix考古学 Truth of the Legend(藤田 昭人)

で、この書籍の価値は? と聞かれれば、もちろん一つは大きな読書の楽しみであり知的好奇心に対する栄養なのだが、それだけではない。

その時に存在しなかった未来が手作りされていく感覚で、それが消費者目線ではなく利用者=開発者目線のところだ。その点からパイプのエピソードは衝撃的(roffのところも実はそうだ。ビジネスの話でもあるわけなのだった)。

それにしても、これは労作だ。著者は良い仕事をしているし、英語化して海外の人たちにも読んでもらいたいものだな。

(2/3はUNIX USERの連載に手を入れたもので、1/3は書下ろしとのこと)


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え