アンドリュー・タネンバウムとリーヌス・トーヴァルズの議論

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

アンドリュー・タネンバウムとリーナス・トーヴァルズの議論 (アンドリュー・タネンバウムとリーナス・トーヴァルズのぎろん) は、アンドリュー・タネンバウムリーナス・トーバルズの間で交わされた、Linuxカーネルカーネルアーキテクチャ一般に関する議論。

概要[編集]

アンドリュー・タネンバウムは、1992年にUsenet (ネットニュース) のニュースグループ comp.os.minix で、Linuxを批判する趣旨の投稿をして、この議論を始めた[1]。 タネンバウムはこの投稿で、オペレーティングシステム (OS) のカーネルの設計方式として、マイクロカーネルモノリシックカーネルより優れており、それゆえモノリシックカーネルを採用したLinuxは1992年において既に時代遅れになっていると、主張した。 デイヴィッド・S・ミラーセオドア・ツォーなどの著名なハッカーたちも、この議論に参加した[2]

ニュースグループ (comp.os.minix) では強い文章での投稿が交わされたため、この議論は「フレーム戦争」として広く人々に認識されるようになった。 すなわち、2つの陣営が対峙して敵対的なメッセージが飛び交うようになったのである。 2つの陣営とは、Linux陣営とMINIX陣営であり、言い換えると、モノリシックカーネルの信奉者たちの陣営とマイクロカーネルの信奉者たちの陣営であった。 そしてこのような議論の情況が、その後に出版された多くの書籍で言及されることとなった[3]。 トーヴァルズ自身もまた、この議論における彼の最初の投稿で議論がこうした情況であると認めた。 議論におけるトーヴァルズの最初の投稿の中では、彼は次のように述べている。 「 [タネンバウムの投稿という] 『餌を無視する』ことができればいいのですが ... 真剣に議論するべき時ですね。[4]

この議論は、2006年に再燃した。 再燃のきっかけは、同年にタネンバウムがIEEEの「コンピュータ」誌で「オペレーティングシステムの信頼性を高めかつセキュアにすることが可能か?」という題のカバーストーリーを書いたことであった[5]。 タネンバウム自身は、カーネル設計についての議論を再び始める文章は書かなかったと、述べている[6]。 2006年の当時は、このタネンバウムのカバーストーリーと、コンピュータに関するニュースのウェブサイトであるスラッシュドットに存在した1992年の議論のアーカイブが、ともに存在する情況となった[7]。 こうして議論は再燃した。 トーヴァルズは、オンラインのフォーラムでタネンバウムの主張に反論する投稿をした[8]。 そしてコンピュータに関するニュースの複数のウェブサイトが、この議論を報道し始めた[9]。 こうした情況を受けて、Jonathan Shapiro は、信頼性が高くかつセキュアであると実際に証明されたコンピュータシステムの多くは、マイクロカーネルに似た方式を採用していると、述べた[10]

背景[編集]

アンドリュー・タネンバウムは、MINIXの中心的な開発者であり、オランダアムステルダム自由大学コンピュータ科学部の教授であり、オペレーティングシステム (OS) などの教科書の著者であった。 リーナス・トーヴァルズは、Linuxカーネルの中心的な開発者であり、フィンランドヘルシンキ大学でコンピュータ科学を専攻する学生であった。 MINIXとLinuxは、どちらもUNIXに似たオペレーティングシステムである。 MINIXは、設計方式としてマイクロカーネルを採用している。 Linuxは、設計方式としてモノリシックカーネルを採用している。

comp.os.minix は、MINIXについて議論をするUsenet (ネットニュース) のニュースグループである。 トーヴァルズは、1991年10月はじめに Linux 0.02 をリリースした旨を comp.os.minix に投稿した。 その後Linuxはバージョンアップを重ね、1991年12月はじめには Linux 0.11 がリリースされた。

議論[編集]

1992年の議論は、比較的穏やかに始まった。 2つの陣営は、まずカーネルの設計について基礎的なことをお互いに述べあった。 2つの陣営の間の一連のやりとりは、時がたつにつれてあらゆる面で詳細になり複雑になっていった。 カーネル設計だけにとどまらず議論は、他のいくつかの主題に分岐した。 分岐した主題の例の一つを挙げると、将来はどのマイクロプロセサアーキテクチャが他を制して勝利するか、というものがあった。 アンドリュー・タネンバウムリーナス・トーヴァルズだけでなく、他に複数の人々が議論に参加した。 そうした人々の一部を次に示す。

「Linuxは時代遅れだ」[編集]

モノリシックカーネルを視覚的に表現した図。モノリシックカーネルでは、すべてが特権モードのカーネルスペースで動作する。

この議論の発端は、1992年1月29日であったと記録されている。 この日にタネンバウムは、Linuxカーネルについての初めての批判をUsenet (ネットニュース) のニュースグループ comp.os.minix に投稿した。 この投稿では、モノリシックカーネルの設計方式はオペレーティングシステムにとっていかに有害でその能力を失わせるかを、述べていた[1]。 タネンバウムは、この投稿に“Linux is obsolete” (「Linuxは時代遅れだ」) という題名をつけた。 タネンバウムは、この最初の投稿では、なぜ自分がマイクロカーネルの設計方式がモノリシックカーネルより優れていると感じているかについては、あまり詳細には説明しなかった。 しかしタネンバウムは、マイクロカーネルが移植性と強く関連していると述べ、Linuxカーネルとx86系列のプロセサとの関係が密接過ぎているためLinuxカーネルの移植性が損なわれていると主張している。 またタネンバウムは、1991年にモノリシックカーネルを作ることは、「1970年代への大いなる後退」であると、述べている。

タネンバウムによる批判がニュースグループに投稿されたとき、トーヴァルズはこの批判に対して直接に返信することができた。 半日後にトーヴァルズは実際に返信した。 トーヴァルズはこの返信で、MINIXには設計について固有の欠点があると主張した。 欠点の一つとして挙げたのは、ある特定の状況におけるマルチスレッディングの欠如である。 トーヴァルズは、「理論的および美的」な観点に立てばマイクロカーネルの設計がモノリシックカーネルより優れていると認識していると、述べた[4]。 トーヴァルズはまた、自分が自由になる時間を使ってLinuxを開発し、Linuxを誰もが自由に無償で使えるように公開したことを、強調した。 なおMINIXは、この時点では誰もが自由に無償で使えるようにはなっていなかった。 さらにトーヴァルズは、特に Intel 80386 向けにLinuxを開発したと述べた。 それは単に、Intel 80386 アーキテクチャについてより深く学ぶことができるようにするための、自分の個人的なプロジェクトを行っていたからであった。 こうした事情からトーヴァルズは、Linuxはカーネル自体は移植性の面でMINIXより劣っていると述べたが、一方で移植性のあるアプリケーションプログラミングインタフェース (API、システムコール) がLinuxの設計原則であるとも述べた。 この設計原則に従うことで、Linuxの設計を簡潔にすることができたとしている。 このような理由から、トーヴァルズは「LinuxはMINIXより移植性が高い」と述べた。

マイクロカーネルを視覚的に表現した図。マイクロカーネルでは、オペレーティングシステムの多くの機能をユーザースペースのプログラム (「サーバ」群と呼ぶ) にもたせている。

トーヴァルズの返信に応じてタネンバウムは、MINIXのいくつかの制限は自分が教授であることに関係していると、述べた。 MINIXのシステムには、平均的な学生が使うような資源の少ないハードウェア上でも動作することができることという、要件がある。 タネンバウムは、Intel 8088 を基にしたコンピュータに言及した。 Intel 8088 を基にしたコンピュータは、ハードディスクを備えていない場合がある[11]。 Linuxは、その当時は Intel 80386 に特化して構築されていた。 Intel 80386 は、Intel 8088 と比べて非常に性能が高くまた値段も高いプロセサであった。 こうした事情について、タネンバウムは次のように述べた。 「 [...] 約1年前の時点では、[MINIXには] 2つのバージョンがありました。 PC (360KB ディスケット) 向けのバージョンと、286/386 (1.2MB ディスケット) 向けのバージョンです。 PC向けのバージョンは、286/386 向けのバージョンと同じかあるいはその2倍売れていました。」 タネンバウムは、Linuxは自由に無償で使うことができるが、自分が受け持つ学生にとっては採用することができないだろうと、述べた。 なぜならタネンバウムの学生は、Linuxを動かすために必要とされるハードウェアを買うことができないであろうからである。 そしてMINIXについては、「ハードディスクを備えていない普通の 4.77 MHZ PC 」上で使うことができると、述べた。 これに対して Kevin Brown という Usenet のユーザが、タネンバウムはLinuxが386アーキテクチャに密に結びついていることについて論難するべきではないと、述べた。 なぜならLinuxは、オペレーティングシステムの設計についての知識が身につかないという事態を避けるために、意識的により良い選択をした結果だからである。 Brownは次のように述べた。 「 [...] Linuxにおける明確な設計面の目標は、386アーキテクチャに特有な複数の機能を活用することです。 それでは肝要なことは正確には何でしょうか? 設計面で異なる目標があれば、異なる設計をすることになるということです。[12]」 Brownはまた、特に廉価なハードウェア向けにシステムを設計するということは、将来には移植性の問題につきあたるであろうとも、述べた。 Linuxがサポートしている新しいハードウェアをMINIXでは十分にサポートできない。 こうしたことからLinuxは、新しいハードウェアを実際に所有する人々にとっては良い選択肢となった。 こうした事実にもかかわらずタネンバウムは、x86アーキテクチャは将来には他のアーキテクチャの前に敗北するであろうから、自分はLinuxに関係する議論には深く関わる必要はないと、述べた。 次のように言及した。 「今から5年後には当然ながら情況は変わっていることでしょう。 5年後には誰もが自由なGNUを、200MIPSで64MBのSPARCstation-5 [ のコンピュータで ] 動かしていることでしょう。」 タネンバウムは、Linuxカーネルはハードウェアの進歩によっていずれ突然に廃れるだろうと述べた。 なぜならLinuxは、386アーキテクチャに非常に密接に結びついているからである[11]。 このタネンバウムの主張についての詳細は、#外れた予言を参照。

トーヴァルズは、議論をここで終わらせようと試みた。 自分は、タネンバウムの最初の投稿に対して過剰に反応するべきではなかったと感じていることと、謝罪するための個人的な電子メールをタネンバウムに対して送るために執筆していることを、述べた[13]

影響[編集]

このような議論があったにもかかわらず、リーナス・トーヴァルズアンドリュー・タネンバウムの仲は良好のようである。 トーヴァルズは、自分とタネンバウムに対して全く敵意をもっていないということを、人々に理解してほしいと思っている。 タネンバウムは、考え方や技術的な問題についての不一致は、確執として解釈するべきではないとの立場を、明確にしている。 [14]

外れた予言[編集]

この論点と初期の全ての議論は、オライリーメディアから1999年に出版された書籍 Open Sources: Voices from the Open Source Revolution (日本語訳『オープンソースソフトウェア― 彼らはいかにしてビジネススタンダードになったのか』) に収録されている。 この書籍ではこの議論を「オペレーティングシステムの設計について当時はどのように考えられていたか」を示す例であると言及している[14]

Intel 80386 プロセサは、1992年の議論の後に、最も普及したプロセサとなった。 そのとき、Intel 486 プロセサはハイエンドのコンピュータで使われており、また Intel 80286 プロセサは既に時代遅れになっており、World Wide Web は未だ広く使われるようにはなっていなかった。 タネンバウムによるLinuxに対する批判の一つは、x86系列のプロセサに密接に結びつき過ぎているということであった[1]。 しかし2008年の時点では、x86系列のアーキテクチャのプロセサは、デスクトップコンピュータのプロセサとして世界で最も一般的に使われ続けている。

Linuxは、x86系列以外の数多くのプロセサアーキテクチャに移植されてきている。 Linuxが移植されたプロセサアーキテクチャとしては、DEC AlphaSPARCPOWER/PowerPCMIPS680x0ARMIA-64x64 などがある (この他にも多数のプロセサアーキテクチャに移植されている) 。

もう一つ、議論で繰り返し言及されてきたのは、LinuxMINIXの代わりとして使うことができるシステムについてであった。 例えば、GNU4.4BSDである。 タネンバウムは、議論の発端となった最初の投稿では、GNUを薦めていた。 GNUはLinuxと異なり、「現代的な」 (モダンな) システムであると述べたのであった[1]。 タネンバウムは、2回目の投稿で次のように述べた。 「 [...] 5年後には誰もが自由なGNUを、200MIPSで64MBのSPARCstation-5 [ のコンピュータで ] 動かしていることでしょう。[11]」 議論に参加した人々のうち複数の人々が、GNUはLinuxやMINIXの代わりとしてはふさわしくないと考えた。 Kevin Brown は、GNUをベーパーウェアと呼び、(GNUではなく) Linuxによりx86アーキテクチャから大きな恩恵を受けることができるであろうと述べた。 x86アーキテクチャは、この議論の後も一般的に使われ続けており、一般の人々が手に入れやすいアーキテクチャとなっている。 Linuxの初期の開発に貢献したセオドア・ツォーは、マイクロカーネルの方法からは恩恵を受けることができるであろう、しかし 「 [...] Linuxは手元にあります。 そしてGNUは手元にありません。 — そして複数の人々が [ GNU ] Hurd を長い期間をかけて開発し続けてきています。 それも、リーナスがLinuxを開発してきた期間よりもずっと長い期間をかけて。 [15]」 トーヴァルズは、GNUの人々の努力に関心を払ってきたが、次のように述べている。 「もしGNUのカーネルが去年 (1991年) の春に完成していれば、わざわざ自分のプロジェクトを始めたりはしなかったでしょう。 しかしGNUのカーネルは去年の春には完成していませんでしたし、現在も完成していません。 [16]

4.4BSD-Lite は、USLとBSDiとの間の訴訟のために、2年間使うことができない状態だった。 この訴訟は、AT&Tの子会社である Unix System Laboratories (USL) が Berkeley Software Design (BSDi) を訴えたことによるものであった。 BSDiは、UNIXに関する知的財産権に直接に関係していた。 この訴訟のために、BSDから派生した自由なソフトウェアは、2年近くの間、BSDの法的な状態が疑わしい情況であったので、開発が遅くなってしまった。 Linuxにはこのような法的な曖昧さは存在しなかったため、Linuxに基づくシステムは広く支援を受けることができた。 USLとBSDiとの間で和解が交わされたのは、1994年1月のことであった。 その後1994年6月に4.4BSDがリリースされた。 なお4.4BSDの最後のリリースは1995年に行われたが、4.4BSDに基づいた複数の自由なバージョンがその後開発されてきている。 4.4BSDに基づいた自由なバージョンとしては、FreeBSDNetBSDOpenBSDなどがある。

"Samizdat" について[編集]

2004年3月23日、Alexis de Tocqueville Institution というシンクタンクの所長である Kenneth Brown が、タネンバウムにインタビューした。 このインタビューは、Kenneth Brown が著した Samizdat: And Other Issues Regarding the 'Source' of Open Source Code という書籍の出版に先立って行われたものであった。 その書籍には、LinuxはもともとはMINIXから不正にコピーして開発されたという趣旨の記述があった。 タネンバウムは、これに対して公に強い反論をして、トーヴァルズを擁護した[17]。 その際に次のように述べた。

私は、いくつかの誤解を解くことと、また2つの誤りを正すことにより、この問題を終わらせたいと思っています。 まず、私はリーナスに対してまったく腹を立ててはいません。 本当です。 リーナスもまた、私に対して腹を立てていません。 私は、リーナスにより失墜させられたと感じている「手痛い敗北を喫した人間」などでは、ありません。 MINIXは私にとって、個人的な楽しみであり趣味のようなものであるに過ぎません。 私は教授です。 私は、学生に教え、研究をし、書籍を書き、カンファレンスに出席し、またその他に教授として行うことを行っています。 私は、自分の仕事が好きですし、自分が受け持つ学生たちが好きですし、自分が属する大学が好きです。 [...] 私がMINIXを書いたのは、自分が受け持つ学生たちにオペレーティングシステムを扱うという実践を通じた経験をしてほしかったからです。 AT&Tが、John Lions により著された書籍[18]を使って教育することを禁じた後、私はUNIXに似たシステムを書くことを決めました。 学生たちが扱えるようにするためです。 [...] 私は、GNU/HURDBerkeley UNIX に取って代わるものを開発しようとしていたわけではありません。 事実、私はこの旨をこれまで十分に繰り返し述べてきました。 私はただ、自分の学生たちや他の学生たちに、現代的な技術を使ってUNIXに似たシステムをどのようにして書くことができるかを、示したかっただけです。 他の多くの人々は、自由に使える製品水準のUNIXを声高に何度も強く望み、MINIXをそのようなシステムに書き換えたいと思いました。 私は、しばらくの間こうした渦の中に引きずり込まれていました。 しかしLinuxが出現すると、私は教授としての活動に戻ることができてほっとしました。 [...] リーナスは、すばらしい活動を行っているようです。 そして私は、将来に彼が大きな成功を収めることを期待しています。


MINIXを書くことは私にとって楽しみではあるのですが、私は、自分がこれまで行ってきたことの中でMINIXが最も重要なこととは、実際は評価していません。 MINIXを書くことは、私にとって何にも勝る気晴らしです。 私がこれまで行ってきたことの中で最も重要なことは、非常に良い学生を数多く育ててきたことです。 とりわけPh.D.を取得した学生たちです。 Ph.D.を取得した学生たちの一覧が私のホームページにありますので、見てください。 彼らはいくつも大きな業績を残しています。 私は、自分が彼らの母親であるような思いで、彼らを誇りに思っています。 リーナスは、私の学生たちの中に含めることができるので、私は彼のことも誇りに思っています。 教授というものは、自分が受け持った学生たちが大きな名誉を手にするとき、それをすばらしいことだと思うものなのです。 [19]

脚注[編集]

[ヘルプ]
  1. ^ a b c d [[アンドリュー・タネンバウム |A. S. Tanenbaum]] (1992年1月29日). “LINUX is obsolete”. comp.os.minix. (ウェブリンク). 2006年11月27日閲覧。 
  2. ^ この議論にはケン・トンプソンによる論評もあった。この人物は、UNIXのオリジナルの開発者として有名なケン・トンプソンとは同名の別人である。
  3. ^ Williams, S. (March 2001). “GNU/Linux” (English). Free as in Freedom: Richard Stallman's Crusade for Free Software. O'Reilly Media. ISBN 0-596-00287-4. http://www.oreilly.com/openbook/freedom/ch10.html. "This quote is taken from the much-publicized Torvalds-Tanenbaum 'flame war' following the initial release of Linux." 
  4. ^ a b [[リーナス・トーヴァルズ |L. Torvalds]] (1992年1月29日). “Re: LINUX is obsolete”. comp.os.minix. (ウェブリンク). 2006年11月28日閲覧。 
  5. ^ Tanenbaum, A. S. (May 2006). “Can We Make Operating Systems Reliable and Secure?”. IEEE Computer Society 39 (5): 44–51. http://www.computer.org/portal/site/computer/menuitem.5d61c1d591162e4b0ef1bd108bcd45f3/index.jsp?&pName=computer_level1_article&TheCat=1005&path=computer/homepage/0506&file=cover1.xml&xsl=article.xsl& 2006年11月26日閲覧。. 
  6. ^ Tanenbaum, A. S. (2006年5月). “Tanenbaum-Torvalds Debate: Part II”. Vrije Universiteit Amsterdam. 2007年1月14日閲覧。
  7. ^ “bariswheel”, “Hemos” & Slashdot contributors (2006年5月). “Microkernel: The Comeback?”. Slashdot. 2007年1月14日閲覧。
  8. ^ Torvalds, L. (2006年5月). “Hybrid kernel, not NT”. Real World Technologies. 2006年11月30日閲覧。
  9. ^ “diegocgteleline.es”, “ScuttleMonkey” & Slashdot contributors (2006年). “Torvalds on the Microkernel Debate”. Slashdot. 2006年9月28日閲覧。
  10. ^ “Jonathan Shapiro” (2006年). “Debunking Linus's Latest”. coyotos.org. 2007年5月14日閲覧。
  11. ^ a b c A. S. Tanenbaum (1992年1月30日). “LINUX is obsolete”. comp.os.minix. (ウェブリンク). 2006年1月10日閲覧。 
  12. ^ Kevin Brown (1992年1月31日). “RE: LINUX is obsolete”. comp.os.minix. (ウェブリンク). 2007年4月7日閲覧。 
  13. ^ L. Torvalds (1992年1月30日). “Apologies (was Re: LINUX is obsolete)”. comp.os.minix. (ウェブリンク). 2007年1月10日閲覧。 
  14. ^ a b DiBona, Chris; Sam Ockman, Mark Stone, Brian Behlendorf, Scott Bradner, Jim Hamerly, Kirk McKusick, Tim O'Reilly, Tom Paquin, Bruce Perens, Eric Raymond, Richard Stallman, Michael Tiemann, Linus Torvalds, Paul Vixie, Larry Wall, Bob Young (January 1999). “The Tanenbaum-Torvalds Debate” (English). Open Sources: Voices from the Open Source Revolution. O'Reilly Media. ISBN 1-56592-582-3. http://www.oreilly.com/catalog/opensources/book/appa.html. "When Linus himself heard that we were including this, he wanted to make sure that the world understood that he holds no animus towards Tanenbaum and in fact would not have sanctioned its inclusion if we had not been able to convince him that it would show the way the world was thinking about OS design at the time." 
  15. ^ Theodore Y. Ts'o (1992年1月31日). “Re: LINUX is obsolete”. comp.os.minix. (ウェブリンク). 2007年5月11日閲覧。 
  16. ^ L. Torvalds (1992年1月29日). “Re: LINUX is obsolete”. comp.os.minix. (ウェブリンク). 2006年5月11日閲覧。 
  17. ^ Tanenbaum, Andrew S.. “Some Notes on the "Who wrote Linux" Kerfuffle”. 2007年12月24日閲覧。
  18. ^ Lions' Commentary on UNIX 6th Edition, with Source Code 、日本語訳も同じ書名で出版されている。
  19. ^ Tanenbaum, Andrew S.. “Ken Brown's Motivation”. 2007年12月24日閲覧。

参考文献[編集]

外部リンク[編集]