誤りのあるサイト・書籍など --- Part1
これまで、UNIX初期の歴史やビル・ゲイツ初期の経歴などを調べてきました。
その結果、Webサイトや書籍の記述には必ずしも正しくないものが含まれていることがわかりました。
今回からは、そういったものを整理してみようと思います。
まずは、Peter H. Salus著「UNIXの1/4世紀」 アスキー(日本語訳)です。
amazonの書評などで散々書かれている通り、この本の日本語版には問題が多いです。
意味のとれない箇所があり、英語の原書を読むと逆のことが書いてあったりします。
英語版を読んでも、根拠不明の箇所や誤った記述がみられます。
私は、英語の原書と日本語の翻訳の両方を読みました。以下では、誤訳の指摘はせずに、原書で確認できる間違いを、日本語訳のページ数を引用して示します。
P103に、Robertsという人が語ったものとして、
1970年のはじめには、Bで実装されたUNIXがPDP-11に載っていることを知っていた。
と書かれています。しかしながら、リッチーが、The Evolution of the Unix Time-sharing Systemで、
Only passing thought was given to rewriting the operating system in B rather than assembler
と書いており、これは正しくありません。
P110に、 Steve Johnsonという人が語ったものとして
Dennisは、Honeywellシステムで動作する、Bという簡単な言語のコンパイラを開発した。
と書かれています。この文章は、間違ってはいませんが、リッチーがB言語を作ったと誤解されかねない書き方です。
P59に、Mike Mahoneyという人がDennis Ritchieから聞いた話として、
KenはBという実にシンプルな言語に取り組んで、PDP-7に載せた。Bは、実際にはPDP-11に移植されたんだ。システムプログラムもいくつか書かれた。オペレーティングシステムではなくて、ユーティリティだったが。インタプリタだったから、とても遅かった。
と書かれており、リッチーが書いたC言語の歴史に関する文章を読む限りこちらが誤解を招かない正しい内容で、BはPDP上でケン・トンプソンが作った言語で、当初はインタプリタ言語です。
P155に
初期のEditionとPDP
UNIX Edition | PDPモデル |
First | PDP-7 |
Third | PDP-11; 11/20 |
・ |
|
・ | PDP-11/45 |
・ | |
Sixth | PDP-11/70 |
Seventh | PDP-11、Interdata 8/32 |
という記載があります。根拠は示されていません。
これは、第3者が言ったことを引用したものではなく、著者が書いたものとみられます。
この表では、バージョンが途中抜けており、かつその内容は、以前に見た公式マニュアルによるバージョンともケン・トンプソンらの論文によるバージョンとも異なります。
これは、本書の著者が、公式マニュアルによるバージョンと、ケン・トンプソンらの論文によるバージョンとの違いに気が付きながらも、きちんと検討せずにつじつま合わせをしていると読めなくもありません。
他にも、本書には怪しげな箇所が多数あるのですが、UNIX初期の歴史以外の内容については、きちんと語れるだけのものを持ち合わせていませんので、本書についての指摘はここまでとします。
続いては、Mike Gancarz著「UNIXという考え方」 オーム社(日本語訳)です。
この本の日本語版は、内容の正誤以前に問題があります。
訳者が示されていないのです。
芳尾桂という人が監訳者となっていますが、監訳というのは訳された文章をチェックしたということであり、訳した人は別にいるということです。ですが、本当に訳した人の名前が書かれていません。
本名でなくても、ペンネームでもハンドル名でもよいとは思いますが、訳した人の名前を明示するのが普通です。
それを示さないというのは、一般的ではないと思います。
UNIX初期の歴史に関係するのは、P5からP6にかけての短い箇所のみです。
P6に、
トンプソンは、もともとアセンブリ言語でUNIXを書いた。1972年に移植性のあるB言語を用いて書き直した。
と書かれています。しかし、上に見たとおり、Bを用いてUNIXが書かれた事実はありませんし、ほとんど検討されてすらいません。
仮に、C言語で書き直したことを言っているのだとすれば、それは1973年であり、1972年ではありません。
この書籍の著者は、伝聞情報をもとにして、それを検証せずに書いているものとみられます。
P5に、
1969年にトンプソンは、ニュージャージー州マレーヒルにあるAT&Tベル研究所で最初のUNIXを書いた。それはスペース・トラベルというゲームプログラムの動作環境として、DECのミニコンピュータPDP-7上で動作した。もともとスペース・トラベルはマサチューセッツ工科大学で開発されていたMulticsシステム用に作られていた。
と書かれています。
しかし、Multicsはマサチューセッツ工科大学だけで開発されていたわけではありません。GEやベル研も開発に参加しています。間違いとまでは言えなくとも、不正確です。
PDP-7をミニコンピュータであるとするのも、正しくありません。正確には、PDP-8とPDP-11がミニコンピュータであり、DEC社自身は、PDP-7のような18ビットマシンをミニコンピュータとは認識していません。
また、
それはスペース・トラベルというゲームプログラムの動作環境として、DECのミニコンピュータPDP-7上で動作した。
の箇所は、あくまでも、「動作した」としか書いていないので間違ってはいませんが、前後関係から、スペース・トラベルというゲームを動かすためにUNIXを作ったと受け止められかねず、適切な表現ではないと思います。スペース・トラベルとUNIXの関係ははっきりとはしていませんが、直接的には無関係の可能性が高いです。
P5に
UNIXは、Multicsをもとにした、タイムシェアリング動作をする初期のオペレーテイングシステムの一つだった。
と書かれています。
この文章は、「UNIXが、タイムシェアリング動作をする初期のオペレーティングシステムの一つだった」と読めます。
UNIXはタイムシェアリング動作をするように後になりますが、開発当初はそうではありません。
英語の原文では、ここは、
UNIX is based on Multics, one of the first timesharing operating systems.
であり、
UNIXは、最初のタイムシェアリングオペレーティングシステムの一つであるMulticsをもとにしている。
と訳するのが正しいです。
英語の原文は間違っておらず、タイムシェアリング動作をしたのはMulticsであってUNIXではありません。
本書は、わずか1ページほどの中にこれだけ問題があります。
UNIX初期の歴史以外の内容について、その妥当性を検証できるだけの資料を私は持ち合わせていません。
ただ、書籍全体を通して、書かれている内容を根拠づけるものは提示されていません。
著者とその周辺で考えられていることや、信じられていることを、検証せずに書いているだけという可能性があります。
全体としての印象を言えば、本書の内容はUNIXの特徴の一面を表しているとは思います。
しかし、UNIXの全盛期とも言ってよいSUNのSolarisなどでは、本書に書かれている内容とは異なる部分があります。
UNIXのすべてで本書が正しいとは言えないでしょう。
本書はあくまでもUNIXという考え方を示しているだけで、すべてのUNIXでそれが実現されていなくてもよいのかもしれませんが、やや説得力に欠ける印象を持ちます。
本書の英語の原題は、"The UNIX Philosophy"です。
ただ、UNIXの初期の歴史を見ると、ケン・トンプソンの個人的な好みが反映されてはいるものの、どちらかというと、「哲学」に基づいて設計・開発されたというよりも、目先の目的を達成しているうちに自然とそうなった、という方が実態に近いように感じられます。
それが、後々継承されて、「哲学」的なものになっていった面があるかもしれませんが、それがUNIXに関わる全ての人に共有されてきたとは言えないように感じます。
UNIXに限ったことではないのですが、「信者」のような人は、事実をきちんと検証せずに、「そうあるべきもの」と自信が信じ込んでいるものや、「そうあって欲しいもの」を事実であるかのように語ってしまう傾向があります。
この本も、そういう側面が少なからずあり、単純に事実であると受け取ってよいものではないように思えます。
前回へ 次回へ