![]() |
|||||||||||||||||||||||||
Ken Brownへの反論
イントロダクションこのソープオペラにたった今チャンネルを合わせたみなさんのために、これまでのあらすじをご紹介しよう。 ワシントンの Alexis de Tocqueville Institution という名のシンクタンクの社長であるKen Brownは、GPLを使ったオープンソースは悪い考えであり、 Linus TorvaldsはMINIXから盗用してLinuxを作ったと主張する本を書いた。MINIXは私が書いたものだ。 盗用の疑いをかけられたLinusは こう答えた。 盗用された側として申し立てられた私もまた、 応答する必要性を感じた。 さてそこでKen Brownは 私の応答に反応した。 彼が私のところを訪れたとき、私が(1)インタビューでLinusを擁護し、そして(2)後でそのことをはっきり公開することを、 彼が予測していたとは私には到底思えない。 私は日曜の午後を何か有意義なことをして過ごそうと思っていたが、Brownが上記の投稿中で直接私に 挑戦してきたので、私は応答すべきだろうと思う。私は彼の投稿にコメントを付ける形式でいこうと思う。 彼のコメントはレイアウト上では次のように字下げされる:
私はクレジットが必要なところではクレジットを明示しなければならない。Brownはクレジットを受ける完全な権利がある。
***どんな*** 国にも特許事務所はある。米国はこの点で諸外国と変わりない。 さらに言えば、ソフトウェアに特許を与えるのはとんでもない考えだと多くの人が考えている。 ソフトウェア特許の問題は現在、ヨーロッパでは激しい議論の的になっている。
私はこれは受け入れられる。教授というものは常に新しい研究費の提供元を探しているものだ。
ええと、お待ちいただけますか? フィンランド人の学生が(フィンランドで)何かソフトウェアを書いて、たくさんの人がそれを 気に入って、それで彼は米国企業にたかったという嫌疑で訴えられるのだと? 私が前回確認したところでは、例えばIBMのような、非常に多くの米国企業が喜んでLinuxを使っているようだ。そして非常に多くの米 国企業が、(オープンソースの)Apacheウェブサーバを使っている。 たとえもしオープンソースが米国企業のためにならなかったとしても、世界のいたるところで行われているこの活動が、米国企業の利 益を第一の目標としてなされなければならないなんて、どこに書いてあるのだろうか?
この記述は文法的にも、政治的にも、そして事実関係についても正しくない。彼は「Linusが ハンセン氏病を患っている」と言いたいのだ ろうか? そうではないことを祈る。しかしもしそうであるなら、幸運なことに最近ではこの病気は容易に治療可能なのだ。彼がもし、 Linuxが萎縮しつつあると言いたいのなら、事実はそれとは逆だ。彼がもし、「Linuxには伝染性がある」と言いたいのなら、それは真 実だ。しかし他のより適切な言葉が用いられるべきだろう。
もし、例えばHPが自社のプリンタに自由なソフトウェアを載せたとして、なぜそのことがプリンタの ***価値*** を低下させるの だろうか? それによりコストは若干下がり、そのことは競争に基づく市場において価格をなにがしか下げる方向に働くかもしれない が、しかし私にはなぜより安価なプリンタがそんなに悪いものなのかが分からない。
このコメントは実際のところ正しいが、それはすべてのソフトウェアとすべての製品にもいえることだ。 何千人ものプログラマを抱える営利企業が、生み出されるコードがどこから来ているかをどうやって把握するというのだ? あなたはこう言うかもしれない: 「弁護士たちがコードを一行一行チェックして、著作権で保護されているかどうか確認しているんだ」と。 もちろんそうだろうとも。もしかすると弁護士があんなにたくさんいるのはそのせいかもしれない。チェックしなければならないコードは 大量にあるのだから。 Windows NT/2000/XPの簡単な歴史Windowsを所有しているのはMicrosoftだろうか? いや、おそらくHPだろう。ここで歴史を少し整理しよう。 Windows 3.1, 95, 98, MEは基本的に、16ビットのMS-DOSのそのまた上で動作する、それらしく飾り付けられたシェルだった(そして MS-DOSはMicrosoftが書いたものではなく、Seattle Computer Productsという会社から買ったものだ)。 1980年代、Microsoftは自分たちが将来本物の32ビットOSを必要とするだろうことを悟った。 このころ、DEC VAXやVMS用のOSのプリンシパルアーキテクトの一人だったDavid Cutlerは、VMSの後継の開発センターを作るためにシ アトルに移ったばかりだった。1988年に彼のプロジェクトをDECの首脳部が葬り去ってしまったとき、CutlerはDECを離れることを決心 し、間もなくすぐ近くにあったMicrosoftに雇われて、チームを率いることになった。このチームがWindows NTを生み出すことになる。 Cutlerは鍵となる人物を幾人か連れて移籍した。これはMicrosoftにとって決定的な大手柄だった。Cutlerほどの能力を持ったOS設計 者は数えるほどしかおらず、探しても見つかるものでない。 長い話になるので手短に言うと、Cutlerと彼のチームは成功を収め、その結果がWindows NTだ。Windows 98のユーザインタフェー スが付け加えられて細かな改善がいくつかなされたとき、それはWindows 2000と名付けられた。 わずかに変更されたバージョンが現在Windows XPとして売られている。 当然、WNTはVMSに非常によく似ていた(各文字のアルファベットを1つずつ後ろにずらしてごらん) 。 結局、両方のOSのチーフアーキテクトを同じ人物が務めたわけだ。 才能に恵まれた設計者が32ビットのOSを書き、数年後にまた別の32ビットのOSを書いたなら、 双方で本当によく似た箇所が生じる可能性がある。コードが同じ箇所があるかどうか、私は知らないけれど。 詳しくは、 この記事 ( Mark Russinovichによる)を読むとよい。 DECがWNTのことを知ったとき、彼らはMicrosoftと話し合いの場を持ち、事態を解決するために6千万ドル以上の金額がRedmondから Maynardへと受け渡された。 この件が法廷に持ち込まれることはなかった(それはたぶんMicrosoftが、勝つと思ったとしても何年もかかる訴訟の泥沼に引きずり 込まれずに、WNTを早く出荷したかったからだろう。 数年後、DECのAlphaチップに関する特許を侵害したかどで、DECはIntelを 訴えて、 これは法廷で決着が付いたけれども。 しかしながら1990年までには、DECの社長であるKen Olsenの「自分の家にコンピュータが必要な人など誰もいない」という発言とは裏 腹に、ミニコンピュータの時代が終わったことは誰の目にも明らかだった。 1990年代の半ばまでには、DECは藁をも掴む状態だっただろう。ただ生き残るだけのために、視野に入るすべての者を脅していた。 それは無駄に終わり、1998年に DECはCompaqに買収され、Compaqは次にHewlett-Packardに買収され、現在VMSの権利を所有しているのはHPだ。 もしMicrosoftが、競合する企業で以前同様の仕事をしていた自社のスタープログラマが、何かのIP(訳注: Intellectual Property、知的財産)を間違って利用しなかったと確かめることができなかったのならば、Microsoftでも他のどんな企業でも、何千 人もいる自社のプログラマがやってはいけないことを何もしなかったと確かめることなど、どうすればできるだろうか? それは不可 能だ。コードを不法に利用するプログラマの問題は、現実に存在するものだが、 この問題はフリーソフトウェアに独特なものではない。 そして、自社の研究者・技術者・その他の従業員が、競合他社が特許を持っている技術やプロセスを使っていないと確かめることがで きる企業など、あるのだろうか。それは実行不可能だ。しかし、商用のソフトウェアに関してよりもフリーソフトウェアに関してのほ うが、どういうわけかIPの盗用の問題が大きいという言質には、全く裏付けがない。
この引用は、文脈を無視してなされている。ここでの「そんなに多くのコード」というのは現在のLinux OSについて言及している ものだ。Linusが現在配布されているLinuxの全コードを1行1行にいたるまで自分で書いたとは、誰も一度も主張していない。私が言い たいのは、それなりのプログラマなら、Linux 0.01の10,000行程度のコードであれば1年間で容易に書けただろうということだ。
実際のところ、この件について私たちは意見が一致しなかった。Linux 0.01のモノリシックな設計には、私は全然感心しなかった。 このことは既に何度か指摘したと思う。 インタビュー
LinusはMINIXを開発プラットフォームとして使った。そのことについては異論はない。 彼はまたMINIXのアイデアをいくつか利用した。 しかしMINIXもまたオリジナルではない。ここでちょっと歴史を示そう。
LinuxはMINIXのアイデアを利用した 科学の世界では、どんな業績も、それ以前になされたもののうえに成り立っている。この件も例外ではない。 Linusがしなかったこと、それはMINIXのコードを盗むことだ。 このことは 十分に説明されている。
私はいつも大いに活気に満ちている。しかし、誰かが私の言いもしないことを言ったことにしようとするなら、厳しくもなろう。 半時間もの間、「Linusは自分自身でLinuxカーネルを書くことなどできたでしょうか?」という質問に対して、何度も何度も肯定する 言葉で答えた後だったので、私は少々いらいらしていた。 これを心理分析するならば、葛藤を感じているという解釈になるだろう。 私が愚か者を喜んで堪え忍ぶ人間でないことは、私を知る人ならおそらく同意してくれるだろう。
先に述べたように、私はフルタイムでMINIXを書いてなどいなかった。私には毎日の仕事があり、寝る前のお話を子供たちに毎晩読 んでやっていた。皮肉なことに、 Sheila McCullaghが書いたそれらの素晴らしい本の主人公は、 赤帽ロジャー(Roger Red-hat)だった。 陰謀理論が好きな向きは、この新しい情報について想像をたくましくするがよろしい。
もちろん私は私の学生たちに、教授というものは(特に試験の評価については)絶対に間違いを侵さないものだと考えるよう仕向 けているが、CSの教授が全員一流のプログラマだというわけではない。 私がいる部門の教授には、全くといっていいほどプログラムができない人もたくさんいる。 一人か二人の教授が良いプログラマであるという事実をもって、学生が腕の悪いプログラマであるとは必ずしも言えない。 さらに言えば、Linuxの最初のバージョンはそれほど素晴らしいものではなかった。このことは既に指摘したと思う。
そのとおり、私は私の間違いを訂正した。Coherentには6人年かかった。実時間で6年間かかったのではない。しかしその時間内で 彼らは、完全なOS、Cコンパイラ、その他すべてのユーティリティを書いたのだ。Brownは自身の投稿で、GNU Cコンパイラは今や 110,000行のコードから成っていると述べている。おそらくCoherentのコンパイラのコードはその半分か、60,000行くらいではないだ ろうか。MINIXユーティリティは約30,000行で、Coherentと同じくらいの機能をカバーしていた。これに10,000行のカーネルを加える と、3人のCoherentプログラマは6人年で100,000行のコードを書いたらしいという推測ができる。 これは1人年あたり16,000行の生産性ということになる。これを踏まえると、カナダの学生が1人年あたり16,000行の生産性を示すのが もっともらしくて、フィンランドの学生が1年で10,000行を生み出すのがそうではないというのは、私には理由が分からない。フィン ランドもカナダと同じくらい寒いので、プログラマが外に出かけたくなることなどない。 一人の人間でカーネルを書けるか?
Ken ThompsonはMULTICSに携わった若いプログラマだった。彼は設計者の一人ではなかった。 Dennis Ritchieは、Harvardの大学院生だった当時、MULTICSのファイルシステムに関する何らかのドキュメンテーションを書くパート タイムの仕事をMITでやったが、MULTICSのコードは全く書かなかった。 彼らがMULTICSについて格別に詳しかったと言うと、二人ともカーネルの裏も表も知りつくしていたような印象を与えるが、それは本 当のことではない。 KenはUNICSの最初のバージョンをPDP-7上でアセンブリコードを使って自分で書いた。 私が考えるに、それには1年もかからなかった。 彼はLionsの本を手に入れられる状態にはなかった。というのも、本が書かれるのはそれから10年以上後のことだからだ。 彼はただ端末の前に座り、たぶんそれはASR-33だったろうと思うが、タイプしはじめたのだ。 Dennisは最初のバージョンには全くかかわらなかった。 Linux 0.01は32,000行のコードからできてはいなかった。それは10,000行以下でしかなかった。
先の私の投稿で、ほとんど半ダースものOSカーネルが1人年程度で書かれていることを私は指摘した。 彼らのほとんどはUnixのライセンスを受けていない。 私はひとつ挙げ忘れてさえいたのだ。Bill Plaugerによって書かれたIDRISだ。 私の考えでは、Linusが少なくとも64KBを備えたPC上でCを使ってLinuxを書いたのは、Kenが4KのPDP-7上でアセンブラを使ってUNICSを 書いたのよりも簡単なことだった。KenのMULTICSに関する経験(MULTICSは、それが書かれた対象である大型メインフレームの256Kの メモリに収まらなかったので、当初は起動に失敗したものだ)は、ちっちゃなミニコンピュータ向けにアセンブリコードを書く際には あまり役立たなかった。 つまり手短に言うと、LinusがPC向けにLinuxを書いたことは、KenがUNICSをPDP-7用に書いたことと、さほど変わらないということだ。 Kenはもう少し経験はあったが、アセンブラを使っていたのとメモリが小さかったせいで、作業はより難しかった。 あることを既にやってのけた半ダースの人々が、次にそれをやった一人の人間よりも経験を持っていたということを理由にして、何か が実現できないと主張するのは、実におかしなことだと私は思う。何かを実現するのは、それが実現可能であることをいったん誰かが 示した後のほうが簡単だ。
おそらくKen Brownを除いて、事実をよく知っている人は誰もが、同じ結論に達したからではなかろうか? DennisがC言語を設計し最初のCコンパイラを全部自分で書いたという事実に、誰も挑戦しないのはなぜだろうか? それはたぶんカー ネルを書くのと同じくらいに難しかったはずだ。
まず、 Alexey Toptyginによるコード比較 に書かれているように、Linux 0.01はMINIXのコードを一切含んでいない。 次に、もし含んでいたとしても、MINIXコードを非商用の目的に使うことは、そもそも最初から禁じられていなかった。 BrownがToptyginを雇ってLinuxとMINIXのコードを比較させ、それらが完全に異なるという報告を得て、そのうえでなおLinuxがMINIX に基づいていると嬉々として主張し続けるのは、きわめて不誠実なことだと私は思う。Brownが彼の本を書くのにMS-Wordを使ったかど うか私は知らないが、LinuxがMINIXに基づいていると言うのは、Brownの本がMS-Wordに基づいていると言うようなものだ。 Torvaldsに関する追記
BrownがLinusに話をしなかったと述べるよりも「前に」、私はLinusにBrownが彼にインタビューをしたかどうかと聞いた。 彼から私に宛てたメールの抜粋を示す: ---------------------- AST: Brownは君のところを訪れたかね? Linus: いいや。僕のアーカイブに彼のメールを見つけることさえできなかったよ。だから彼が何かほかの名前を使っていたり、 spamとしてマークされて削除されたりしたのでもない限り、彼は僕にアプローチしようとさえしなかったということだ。---------------------- 最低でも言えるのは、Brownはあまり努力してみなかったということだ。過去何週間か、世界中の記者が私の居場所を突き止めてイ ンタビューを申し込んできている。Brownにとっては、こんなにも議論の火種になる件について、Linusに連絡を取ることがそれほど難 しいということはなかったはずだ。 ついに現れた真実
Ken Brownにもう1ポイント得点追加。 私たちにはこんなに素晴らしい 並列および分散システムの修士課程のプログラムがある...
私は高校でディベートのチームに所属していた。私も腕が落ちつつあるのかもしれない。 総体として、Brownの唯一の主張とは、21歳の子供がOSカーネルを1年以内で書くことが可能だったということを、半ダースの人々 が同じようなことをそれよりも先に実現しており、Linusが書いたコードは当初そんなに素晴らしいものではなかったにもかかわらず、 彼が個人的に信じないということだ。そして、大勢の人々が彼にそうではないと言い、彼が雇ったコンサルタントがMINIXとはコード が全く異なると言っているにもかかわらず、Brownはすべての事実をただ無視して、彼の信じるところに固執する。 彼は、モーツァルトが9歳のときに3つのシンフォニーを作曲し英国国王のために演奏したという、広く言われている 主張を、 9歳児は普通そんなことはしないといって却下するに違いない。 Andy Tanenbaum, 6 June 2004 This article was translated by Hisashi MORITA with permission from the author. Feedback on the translation are welcome. Changelog
|
|||||||||||||||||||||||||
|