logo
Go to the homepage of the Vrije Universiteit. Goto the homepage of the faculty of sciences. Goto the homepage of the department of computer science.
www.TellAnAmericanToVote.com

 


Ken Brownへの反論


Original comment Follow up Code comparison Rebuttal

イントロダクション

このソープオペラにたった今チャンネルを合わせたみなさんのために、これまでのあらすじをご紹介しよう。 ワシントンの Alexis de Tocqueville Institution という名のシンクタンクの社長であるKen Brownは、GPLを使ったオープンソースは悪い考えであり、 Linus TorvaldsはMINIXから盗用してLinuxを作ったと主張する本を書いた。MINIXは私が書いたものだ。 盗用の疑いをかけられたLinusは こう答えた。 盗用された側として申し立てられた私もまた、 応答する必要性を感じた。 さてそこでKen Brownは 私の応答に反応した。 彼が私のところを訪れたとき、私が(1)インタビューでLinusを擁護し、そして(2)後でそのことをはっきり公開することを、 彼が予測していたとは私には到底思えない。

私は日曜の午後を何か有意義なことをして過ごそうと思っていたが、Brownが上記の投稿中で直接私に 挑戦してきたので、私は応答すべきだろうと思う。私は彼の投稿にコメントを付ける形式でいこうと思う。 彼のコメントはレイアウト上では次のように字下げされる:

"Samizdat(訳注: 地下出版の意)は、今年中に刊行予定のオープンソースとOSについての書籍からの抜粋を集めたものだ。 AdTIは狂信的なLinux派の開発者がSamizdatを大歓迎するだろうとは思っていない。"

私はクレジットが必要なところではクレジットを明示しなければならない。Brownはクレジットを受ける完全な権利がある。

"米国には米国特許商標部(United States Patent and Trademark Office)がある。特許商標部は国際的に評価の高い機関であり、 知財を保護し管理する世界的な取り組みに貢献している。"

***どんな*** 国にも特許事務所はある。米国はこの点で諸外国と変わりない。 さらに言えば、ソフトウェアに特許を与えるのはとんでもない考えだと多くの人が考えている。 ソフトウェア特許の問題は現在、ヨーロッパでは激しい議論の的になっている。

"Samizdatリポートは、例えばBSDやMITライセンスなどに基づくソフトウェアなどの、真のオープンソースプロダクトを作り出す研究開発の 取り組みに、米国政府が50億ドルを投資することを推奨している。オープンソース開発に対する政府の投資は改革を加速するだろう。"

私はこれは受け入れられる。教授というものは常に新しい研究費の提供元を探しているものだ。

"現実には不穏なことに、このハイブリッドソースモデルは米国の企業または米国のプロプライエタリなソフトウェアあるいはその両方の 能力に「たかる」ことに強く依存している。この疑問を呈せざるを得ない借用の多くは a) 米国企業の利益にならず……"

ええと、お待ちいただけますか? フィンランド人の学生が(フィンランドで)何かソフトウェアを書いて、たくさんの人がそれを 気に入って、それで彼は米国企業にたかったという嫌疑で訴えられるのだと? 私が前回確認したところでは、例えばIBMのような、非常に多くの米国企業が喜んでLinuxを使っているようだ。そして非常に多くの米 国企業が、(オープンソースの)Apacheウェブサーバを使っている。 たとえもしオープンソースが米国企業のためにならなかったとしても、世界のいたるところで行われているこの活動が、米国企業の利 益を第一の目標としてなされなければならないなんて、どこに書いてあるのだろうか?

"Linuxはらい病である ..."

この記述は文法的にも、政治的にも、そして事実関係についても正しくない。彼は「Linusが ハンセン氏病を患っている」と言いたいのだ ろうか? そうではないことを祈る。しかしもしそうであるなら、幸運なことに最近ではこの病気は容易に治療可能なのだ。彼がもし、 Linuxが萎縮しつつあると言いたいのなら、事実はそれとは逆だ。彼がもし、「Linuxには伝染性がある」と言いたいのなら、それは真 実だ。しかし他のより適切な言葉が用いられるべきだろう。

"... そしてソフトウェア産業の分野の価値を確実に低下させるので、米国のIT産業に有害な影響を与えている。ソフトウェアは、ハー ドウェアやチップやプリンタや、家電にさえ組み込まれている。組み込みソフトウェアもまた「自由」になるべきだとしたら、ハード ウェアの価値もまた同様に低下すると結論づけるのが自然だ。"

もし、例えばHPが自社のプリンタに自由なソフトウェアを載せたとして、なぜそのことがプリンタの ***価値*** を低下させるの だろうか? それによりコストは若干下がり、そのことは競争に基づく市場において価格をなにがしか下げる方向に働くかもしれない が、しかし私にはなぜより安価なプリンタがそんなに悪いものなのかが分からない。

" ... TorvaldsおよびLinuxカーネルの管理チームは、貢献されたソースコードを盲目的に受け入れる。そのうえで、彼らは証明を求める。 しかしその証明は、貢献者にもLinuxコミュニティにもTorvaldsにも法的に責任を負わせるものではない。ソースが「クリーンルーム」で作られたことを保証するものでもない。"

このコメントは実際のところ正しいが、それはすべてのソフトウェアとすべての製品にもいえることだ。 何千人ものプログラマを抱える営利企業が、生み出されるコードがどこから来ているかをどうやって把握するというのだ? あなたはこう言うかもしれない: 「弁護士たちがコードを一行一行チェックして、著作権で保護されているかどうか確認しているんだ」と。 もちろんそうだろうとも。もしかすると弁護士があんなにたくさんいるのはそのせいかもしれない。チェックしなければならないコードは 大量にあるのだから。

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の盗用の問題が大きいという言質には、全く裏付けがない。

"彼が言うには、Linusはそんなに多くのコードを書くことができなかったはずだと、"とTanenbaum氏は言った。"しかしプログラマの間には非常に大きなばらつきがある──私が見たある研究によると、偉大なプログラマと無能なプログラマの間には30対1もの差があるそうだ──Linusがすべてのプログラマのなかで上位10%か1%に位置することは簡単だっただろう。
--Lisa Stapleton, Linux Insider, May 21, 2004"

この引用は、文脈を無視してなされている。ここでの「そんなに多くのコード」というのは現在のLinux OSについて言及している ものだ。Linusが現在配布されているLinuxの全コードを1行1行にいたるまで自分で書いたとは、誰も一度も主張していない。私が言い たいのは、それなりのプログラマなら、Linux 0.01の10,000行程度のコードであれば1年間で容易に書けただろうということだ。

"AdTIとTanenbaumはこの一点に関して完全に同意見である: Linuxカーネルという業績は、桁外れに素晴らしいが、しかし異様なものだ。"

実際のところ、この件について私たちは意見が一致しなかった。Linux 0.01のモノリシックな設計には、私は全然感心しなかった。 このことは既に何度か指摘したと思う。

インタビュー

"多くの人がご存じのように、私はTanenbaum教授にインタビューをした。教授はMinixの作者であり、MinixはPrentice Hallが著作権 を持つ保護された財産である。 2004年の3月8日に、Tanenbaum教授は次の電子メールを送ってきた: "MINIXはLinusがLinuxを作った土台となるものだ。彼はまたMINIXから多くのアイデアを採用した。そのなかには ファイルシステムやソースツリーやその他多くのものが含まれる。"

LinusはMINIXを開発プラットフォームとして使った。そのことについては異論はない。 彼はまたMINIXのアイデアをいくつか利用した。 しかしMINIXもまたオリジナルではない。ここでちょっと歴史を示そう。

LinuxはMINIXのアイデアを利用した
MINIXはUNIXのアイデアを利用した
UNIXはMULTICSのアイデアを利用した
MULTICSはCTSSのアイデアを利用した
CTSSはFMSのアイデアを利用した

科学の世界では、どんな業績も、それ以前になされたもののうえに成り立っている。この件も例外ではない。 Linusがしなかったこと、それはMINIXのコードを盗むことだ。 このことは 十分に説明されている。

"Tanenbaum氏のインタビューですぐに気付いたのは、教授は活気に満ちて生き生きとしているが、権利および責任の帰属の問題につい ては厳しい人物だということだ。Minix/Linuxの開発に関するよく知られた事実は、疑問をさし挟む余地なしと彼は感じていた。彼が 最初にメールを送ったことについて、彼は非常な葛藤と、そしておそらく残念さを感じていたことは明らかだった。"

私はいつも大いに活気に満ちている。しかし、誰かが私の言いもしないことを言ったことにしようとするなら、厳しくもなろう。 半時間もの間、「Linusは自分自身でLinuxカーネルを書くことなどできたでしょうか?」という質問に対して、何度も何度も肯定する 言葉で答えた後だったので、私は少々いらいらしていた。 これを心理分析するならば、葛藤を感じているという解釈になるだろう。 私が愚か者を喜んで堪え忍ぶ人間でないことは、私を知る人ならおそらく同意してくれるだろう。

"疑問#1: OSの経験がなく、Unixのライセンスも持っていない学生(Linux Torvalds)が、MinixないしUnixのソースコードを全く使わずに、機 能するカーネルを6ヵ月で作り上げることができたというのは、ありえる話だろうか?──あなた(Tanenbaum)がMinixを作り上げる のに3年間を要したというのに。"

先に述べたように、私はフルタイムでMINIXを書いてなどいなかった。私には毎日の仕事があり、寝る前のお話を子供たちに毎晩読 んでやっていた。皮肉なことに、 Sheila McCullaghが書いたそれらの素晴らしい本の主人公は、 赤帽ロジャー(Roger Red-hat)だった。 陰謀理論が好きな向きは、この新しい情報について想像をたくましくするがよろしい。

"Tanenbaum氏の最近の投稿(5)で彼は、(私に彼が語ったところによると)Unixクローンないし同様の枠組に分類されるOSを作った 「他の人々」がいると主張している。Tanenbaum氏の主張は、Torvaldsの物語に関する我々の疑念を増大させるだけだった。というの も、比較があまりにも信じられないものだったからだ。 Tanenbaum氏の主張を受け入れるとすると、1年間のC言語プログラミングの経 験しか持たない21歳のLinus Torvaldsが、抜きん出て優れた計算機科学者であるDoug Comerと同等であったか、もしくはCoherentチー ムよりも賢かったということになる。そしてもちろん才能ある大学教授よりも良いプログラマであったということにもなる。"

もちろん私は私の学生たちに、教授というものは(特に試験の評価については)絶対に間違いを侵さないものだと考えるよう仕向 けているが、CSの教授が全員一流のプログラマだというわけではない。 私がいる部門の教授には、全くといっていいほどプログラムができない人もたくさんいる。 一人か二人の教授が良いプログラマであるという事実をもって、学生が腕の悪いプログラマであるとは必ずしも言えない。 さらに言えば、Linuxの最初のバージョンはそれほど素晴らしいものではなかった。このことは既に指摘したと思う。

"Tanenbaum氏はCoherentプロジェクトについて繰り返し我々に話をしたが、しかしそれが全く異なる状況であったことは少し調査をす れば容易に分かることだった。それは個人による活動ではなく、チームによるものだ。次に、時系列の年表が間違っていた。 Tanenbaum氏はそれに要した時間は2年間だと我々に話したが、後に自分自身のウェブサイトで6年間と訂正している。"

そのとおり、私は私の間違いを訂正した。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行を生み出すのがそうではないというのは、私には理由が分からない。フィン ランドもカナダと同じくらい寒いので、プログラマが外に出かけたくなることなどない。

一人の人間でカーネルを書けるか?

"RitchieとThompsonの二人とも、MULTICSについて格別によく知っていた──そして後に一からUNIXを書いた。何もないところから何 の経験もなく始めたと話すLinusとは完全に異なっている。これが興味深いと思える別の理由は、RitchieとThompsonのカーネルは何年 もかけて書いた11,000行のコードから成っており、Torvaldsのカーネルは1年以下で32,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行以下でしかなかった。

"Tanenbaumの論理のもうひとつの問題は、Unixのライセンスを受けてUnixのソースコードを持っていた人たちか、ソフトウェア開発に 格別に詳しかった人たちの例しか挙げていないということだ。Torvaldsのケースに無理なく比較できるような例を、彼はひとつも挙げ ることができていない。"

先の私の投稿で、ほとんど半ダースもの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はもう少し経験はあったが、アセンブラを使っていたのとメモリが小さかったせいで、作業はより難しかった。 あることを既にやってのけた半ダースの人々が、次にそれをやった一人の人間よりも経験を持っていたということを理由にして、何か が実現できないと主張するのは、実におかしなことだと私は思う。何かを実現するのは、それが実現可能であることをいったん誰かが 示した後のほうが簡単だ。

"問題(原文ママ)#2: なぜ記事はTorvaldsが「スクラッチからLinuxを書いた」と断言し続けるのか?"

おそらくKen Brownを除いて、事実をよく知っている人は誰もが、同じ結論に達したからではなかろうか? DennisがC言語を設計し最初のCコンパイラを全部自分で書いたという事実に、誰も挑戦しないのはなぜだろうか? それはたぶんカー ネルを書くのと同じくらいに難しかったはずだ。

"疑問#3 : もしLinuxがMinixに基づいているとしたら、それはPrentice Hallに権利が帰属するものではないだろうか?"

まず、 Alexey Toptyginによるコード比較 に書かれているように、Linux 0.01はMINIXのコードを一切含んでいない。 次に、もし含んでいたとしても、MINIXコードを非商用の目的に使うことは、そもそも最初から禁じられていなかった。 BrownがToptyginを雇ってLinuxとMINIXのコードを比較させ、それらが完全に異なるという報告を得て、そのうえでなおLinuxがMINIX に基づいていると嬉々として主張し続けるのは、きわめて不誠実なことだと私は思う。Brownが彼の本を書くのにMS-Wordを使ったかど うか私は知らないが、LinuxがMINIXに基づいていると言うのは、Brownの本がMS-Wordに基づいていると言うようなものだ。

Torvaldsに関する追記

"AdTIはTorvaldsの雇用者であるOSDLに連絡を取り、事実関係を明らかにするためのインタビューを申し入れた。Tanenbaum氏は何の証 拠もなしに、AdTIはLinusに連絡を取ろうとしなかったと投稿するにいたったが、これは添付した投稿と矛盾している。OSDLの連絡窓 口である人物はAdTIに対して、もしLinusが我々に連絡をしなかったなら、それは彼がインタビューに興味がないということだと言っ てよこしている。"

BrownがLinusに話をしなかったと述べるよりも「前に」、私はLinusにBrownが彼にインタビューをしたかどうかと聞いた。 彼から私に宛てたメールの抜粋を示す:

----------------------

AST: Brownは君のところを訪れたかね?

Linus: いいや。僕のアーカイブに彼のメールを見つけることさえできなかったよ。だから彼が何かほかの名前を使っていたり、 spamとしてマークされて削除されたりしたのでもない限り、彼は僕にアプローチしようとさえしなかったということだ。

----------------------

最低でも言えるのは、Brownはあまり努力してみなかったということだ。過去何週間か、世界中の記者が私の居場所を突き止めてイ ンタビューを申し込んできている。Brownにとっては、こんなにも議論の火種になる件について、Linusに連絡を取ることがそれほど難 しいということはなかったはずだ。

ついに現れた真実

"Vrije大学はとてもいかしたところだ。AdTIはAmsterdamを訪れるすべての人に、ここに足を運ぶことをおすすめする。良き教授の口 添えにより、AdTIはVirje大学の計算機科学の教授陣と何時間も話し込んだ。 彼らと話をするのは非常に楽しく、極めて有益であった。このことにも我々は深く感謝するものである。"

Ken Brownにもう1ポイント得点追加。 私たちにはこんなに素晴らしい 並列および分散システムの修士課程のプログラムがある...

"Tanenbaum教授は、Linus Torvaldsが一からLinuxカーネルを書いたということをAdTIに納得させるにいたらなかった。"

私は高校でディベートのチームに所属していた。私も腕が落ちつつあるのかもしれない。


総体として、Brownの唯一の主張とは、21歳の子供がOSカーネルを1年以内で書くことが可能だったということを、半ダースの人々 が同じようなことをそれよりも先に実現しており、Linusが書いたコードは当初そんなに素晴らしいものではなかったにもかかわらず、 彼が個人的に信じないということだ。そして、大勢の人々が彼にそうではないと言い、彼が雇ったコンサルタントがMINIXとはコード が全く異なると言っているにもかかわらず、Brownはすべての事実をただ無視して、彼の信じるところに固執する。 彼は、モーツァルトが9歳のときに3つのシンフォニーを作曲し英国国王のために演奏したという、広く言われている 主張を、 9歳児は普通そんなことはしないといって却下するに違いない。

Andy Tanenbaum, 6 June 2004

Back to my home page

This article was translated by Hisashi MORITA with permission from the author. Feedback on the translation are welcome.

Changelog

  • 2004-01-01: First draft.
  • 2004-08-05: Permission obtained.


If you spot a mistake, please e-mail the maintainer of this page.
Your browser does not fully support CSS. This may result in visual artifacts.