Linux is Obsolete.(Linus Tanenbaum Debate)

『ディベート:リナックスは時代遅れだ』


Translation by Akira Kurahone



 この付録には、Andrew Tanenbaum教授とLinus Torvaldsの(comp.os.minixへの)投稿を軸にインターネット上で展開された、あの有名な「Linuxは時代遅れだ」という題で開始されるTanenbaum対Linus論争を記載しておこう。1992年の初めのころ、Andrew Tanenbaum教授は、オペレーティングシステムとOSの設計に関して非常に優れた現実的な考えを持ち、研究者として一目置かれている存在であった。教授は、ネットニュースで繰り広げられている話題がLinuxに移り変わっていたのに気づくと、いまがLinuxに関してコメントを述べる時期だと感じ、投稿を開始した。
 確かに、教授はLinusのことを高圧的に嘲け笑っていた。Linuxのカーネルに対して判断ミスを犯していた。しかし、そういった教授に対するLinusの接し方もフェアではなかった。我われ(原書版元)がこの論争を本書に収録するプランがあることを耳にしたとき、Linus Torvaldsは、自分が教授に対して何の敵意も持っていない点を皆が理解してくれるよう切に望んでいる、と言っていた。実際、彼が収録について承諾してくれたのは、この収録によって、OS設計に関する当時の考え方を読者に示すことができると納得したからである。
 我われ(原書版元)がこの収録を思いついたのは、それによって、大学在学中にマイクロカーネルの考えを放棄したLinusがどのような圧力下に置かれたかを示すことができると考えたからである。それによって、読者に、その当時の状況を理解してもらえると思ったからである。なお、Linus本人は、この点にについて、本書の第8章「Linuxの強味」でさらに説明を加えている。
 この論争の電子ファイルはWebに掲載されており、どの検索サービスでも簡単に見つけ出せる。面白く読めるし、誰が論争に参加したのか見るのも楽しい。天才プログラマのKen Thompson(UNIXの生みの親の一人)やDavid Miller(Linuxカーネルの主要プログラマ)なども登場している。
 この論争を正しい視点から眺められるよう説明しておくと、1992年当時は、チップの主流は386で、486は市場に出回っていなかった。また、Microsoft社はDOSやDOS用のWordを販売している小さな企業であった。Lotus 123がスプレッドシートの分野を支配し、ワープロソフトの主流はWordPerfectであった。DBASEがデータベース市場を席巻しており、今日、誰でもその名前を知っているNetscape、Yahoo、Exciteといった多くの企業は、まだ誕生すらしていなかった。



------------------------------------------------------------------------------
FromFrom: ast@cs.vu.nl (Andy Tanenbaum)
Newsgroups: comp.os.minix
Subject: LINUX is obsolete
Date: 29 Jan 92 12:12:50 GMT

米国の方に数週間出かけていたため、あまりLINUXについてコメントしませんでしたが(何処へも出かけていなかったとしてもコメントしていなかったかもしれませんが)、今がいい機会だと思いますので、いくつかコメントを述べることにします。

多くの方々はご存知だと思いますが、私にとってMINIXは趣味なのです。本の執筆に飽きたり、CNNの生放送で大きな戦争や革命も耳にせず、上院議事堂の視聴放送もない夜などに、私はMINIXでいろいろしています。しかし、私の本職は大学教授であり、オペレーティングシステムの分野を研究しています。

職業柄、オペレーティングシステムの次世代の方向性などについてよく知っているつもりです。次に、2つの点を明確に述べておきたいと思います。

1. マイクロカーネル対モノリシックなシステム
古いオペレーティングシステムの多くはモノリシックな、つまりオペレーティングシステム全体が「カーネルモード」で動作する単一のa.outファイルとなっています。このバイナリファイルには、プロセス管理やメモリ管理、ファイルシステム、その他も含まれています。こういったシステムの例が、UNIX、MS-DOS、VMS、MVS、OS/360、MULTICSなどです。

もう1つの方法がマイクロカーネルを基にしたシステムで、OSのカーネル部分のほとんどが個別のプロセスとして、たいていがカーネルの外側で動作します。それらはメッセージの受け渡しによってやり取りします。カーネルの仕事は、メッセージの受け渡し、割り込み処理、低レベルのプロセス管理、それにおそらくI/Oです。例としては、RC4000、Amoeba、Chorus、Mach、それにまだリリースされていないWindows/NTなどがあります。

ここで2つの設計方式の相対的な長所について長々と述べることもできますが、実際にオペレーティングシステムを設計している人々の間では、もう本質的に議論は終わっていると書くだけで十分でしょう。マイクロカーネルの方が勝利したのです。モノリシックなシステムの利点は唯一パフォーマンスでしたが、現在、マイクロカーネルがモノリシックなシステムと同じくらい速く動作することを示す証拠が十分にあります(たとえば、Mach 3.0をモノリシックなシステムと比較した論文をRick Rashidが書いています)。つまり、この2つの対立でまだ続いているのは、両サイドからの怒鳴りあいだけなのです。

MINIXはマイクロカーネルを基にしたシステムです。ファイルシステムとメモリ管理は、個別のプロセスとしてカーネルの外側で動作します。I/Oドライバも別のプロセスです(カーネル内で動作しますが、これはひとえに、それ以外で動作させるのが難しいIntelのCPUが持つ脳死現象のせいです)。これに対して、LINUXはモノリシックな形態のシステムです。その点で、LINUXの設計は、1970年代に大きく後戻りしてしまっています。既存の動作しているCプログラムを、わざわざBASICで書き直したようなものです。私にとっては、1991年というこの時代に、モノリシックなシステムを書くことは、本当に馬鹿げた考えだと言えます。

2. ポータビリティ(移植性)
かつて、4004 CPUがありました。機能が強化されて8008になり、その後、整形手術を受けて8080になりました。これは8086を生み出し、その子供として8088が誕生し、さらに80286が生まれ、80386ができ、80486が世に出るというように、この世代交代はN世代になるまで続いていくでしょう。86系がこのように変化している間に、RISCチップが登場しています。そのいくつかは100MIPSを超える速さで動作しています。200MIPSやそこらのチップも、あと数年の内には登場するでしょう。この変化は突然なくなってしまうものではありません。これからは、RISCチップが次第に80x86系に取って代わるのです。ソフトウェアで80386のコードを解析すれば、古いMS-DOSプログラムも動作します(C言語で専用のIBM PCシミュレータを書いたことがあります。これはftp.cs.vu.nl = 192.31.231.42サイトにあるminix/simulatorディレクトリからFTPで入手できます)。特定のアーキテクチャ用のOSを設計することは、これからの進むべき方向性ではないため、大間違いだと思います。

MINIXは移植性を考えて設計されており、Intel系から680x0(Atari、Amiga、Macintosh)、SPARC、NS32016にポーティングされています。これに対して、LINUXは80x86のアーキテクチャにかなり密接に結びついています。それは、本来進むべき方向ではありません。

誤解のないように述べておきますが、私はLINUXに不満があるわけではありません。LINUXは、MINIXをBSD UNIXに変えたいと思っている人の宗旨替えには役立っています。しかし正直に言って、「近代的」な「フリー」のOSを手に入れたいと思っている方には、おそらくGNUなどのようなマイクロカーネルをベースにしたポータブルなOSを探した方がいいとお薦めしておきましょう。

Andy Tanenbaum (ast@cs.vu.nl)

P.S.
ところで関係ないのですが、Amoebaには(ユーザ空間で動作する)UNIXエミュレータがありますが、完全にはほど遠い代物です。誰か作業したい人がいれば教えてください。Amoebaを動作させるには386機がいくつか必要です。そのうちの1つはメモリが16Mなければならず、また全部にWD Ethernetカードを搭載しておく必要があります。





------------------------------------------------------------------------------
FromFrom: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: LINUX is obsolete
Date: 29 Jan 92 23:14:26 GMT
Organization: University of Helsinki

なるほど、この手の話題には返信しなければならないでしょう。まず、もうLinuxについての話を、いままでさんざん耳にしているMinixユーザには謝っておきます。「けしかけられ」ても単に無視すればいいのでしょうが、ちょっとまじめに議論する時間でしょう……

In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
>
> 米国の方に数週間出かけていたため、あまりLINUXについてコメントしませんでしたが
> (何処へも出かけていなかったとしてもコメントしていなかったかもしれませんが)、今が
> いい機会だと思いますので、いくつかコメントを述べることにします。
>
> 多くの方々はご存知だと思いますが、私にとってMINIXは趣味なのです。本の執筆に
>
> 飽きたり、CNNの生放送で大きな戦争や革命も耳にせず、上院議事堂の視聴放送もない夜
> などに、私はMINIXでいろいろしています。しかし、私の本職は大学教授であり、オペ
> レーティングシステムの分野を研究しています。
>
> 職業柄、オペレーティングシステムの次世代の方向性などについてよく知っているつもり
> です。次に、2つの点を明確に述べておきたいと思います。

教授がこのように述べているのは、minixが持つ制限の弁解としてでしょうか? 残念ですが、教授、あなたの負けです。私はあなたよりも多くの反論を持っており、ほとんどすべての点で、LinuxはMinixより優れた点を備えています。加えて、PC minixの優れたコードのほとんどは、Bruce Evansが書いたというのも事実です。

反論1:趣味としてMinixをしているとのことですが、Minixでお金を儲けているのは誰でしょうか。Linuxをタダであげているのは誰でしょうか。この質問にちゃんと答えられてから、趣味でMinixをしているなどと言ってください。Minixをフリーに入手可能にしていただければ、Minixに対する私の最も大きな不満の1つはなくなります。自分にとって、Linuxは趣味以外の何物でもありません(ただし本気の趣味で最高のものです)。つまり、自分はLinuxでお金を儲けていません。大学での勉学の一部でも何でもありません。個人の時間を割き、自分のコンピュータを使って作り上げたものです。

反論2:大学教授で研究が本職ということですが、それこそ、頭のイカれたminixであることのよい弁明の1つです。Amoebaが、minixのように、そんなペテンでないことを望む(仮定する)だけです。

> 1.マイクロカーネル対モノリシックなシステム

この指摘は、確かに正しいです。Linuxはモノリシックなシステムで、マイクロカーネルの方が優れている点には同意します。この指摘が私にとってそれほど深刻でなければ、教授の述べたほとんどの事柄におそらく同意します。論理的(および審美的)な観点からすると、Linuxはminixに負けています。しかし、昨年の春にGNUカーネルが出来あがっていれば、わざわざ自分のプロジェクトを開始しようなどとしなくても済んだでしょう。しかし、あの時点で、GNUカーネルは出来あがっていなかったのです。そして、いまだに出来あがっていません。Linuxは、いま現在入手可能であるという点で勝っているのです。

> MINIXはマイクロカーネルを基にしたシステムです。[…途中省略…]
> これに対して、LINUXはモノリシックな形態のシステムです。

カーネルの「長所」を示す基準がこれしかないという意味で、教授がこの指摘をしているのであれば、それは正しいでしょう。しかし、ここで述べられていないのは、minixはマイクロカーネル的な働きをあまりうまく行なっていないという点で、(カーネル内の)実際のマルチタスク処理においては問題すらあります。私がファイルシステムのマルチスレッド処理に問題があるOSを作ったとしたら、他の人の作ったものをそんなに性急に非難しないでしょう。つまり、自分のしでかした大失敗を他の人に忘れさせるために、最大限の努力をするでしょう。

[もちろん、minixにはマルチスレッド処理の速成版もあることは知っています。しかし、それはあくまで速成版であって、Bruce Evansから聞いた話しによると、競合状況が多くあるそうです。]

> 2.ポータビリティ

「ポータビリティとは、新しいプログラムを書けない人々のためのものだ」
―― いま自分が作った言葉(皮肉をこめて)

LinuxがMinixよりもポータブルであることは事実です。え? ちゃんと教授の述べていることは読んでいますよ。それは事実ですが、教授が述べたような意味においてではありません。自分の知っていた規格にできるだけ準拠するようLinuxを作り上げたからです(POSIX規格については知識なし)。一般に、何かをLinux上に移植する(ポーティング)ほうが、Minix上にするより/もっと/簡単です。

移植性(ポータビリティ)が重要である点にも同意します。けれども、それは移植性があることが有意義な場合に限ってのことです。オペレーティングシステムを過度にポータブルにする試みには理解できません。ポータブルなAPIを目指せば、それで十分です。オペレーティングシステムの/考え/は、ハードウェアの性能を利用することにあります。そして、そのような機能を利用していることを高レベルな呼び出しの層に隠すことにあります。Linuxは、まさにこれを実行しています。Linuxは、他のカーネルが行なっているであろうことよりも、もっと多くの386機能のサブセットを利用しています。確かに、そのせいでLinuxのカーネルは適切なポータビリティを持たなくなりますが、そのせいで設計が/もっと/単純化されいるのも事実です。これらは許容範囲内のトレードオフなのです。Linuxは、このトレードオフによって、トップの座についているのです。

Linuxのポータビリティが極端に低いことにも同意します。私は、去年の1月に手に入れた386機を勉強する目的もあって、Linuxのプロジェクトを始めました。このプロジェクトが始めから本格的な開発プロジェクトであったなら、多くの点がもっとポータブルに行なわれるべきだったでしょう。しかし、この点に関しては、ことさら弁解しません。私は、自分の設計判断に基づいてLinuxをこのように開発したのです。去年の4月にプロジェクトを開始した時点では、Linuxを使う人間などいないだろうと考えていました。現在、自分の予測が間違っていたと報告するのを嬉しく思っています。自分の書いたソースはフリーで入手できるので、ポーティング作業が思っているほど簡単でなくても、誰でも自由に試していただいてかまいません。

Linus

PS.
不快な表現がいくつか出ている点については謝ります。代替品が他にないのであれば、minixは十分にいいシステムです。周囲に余っている386機が5〜10台あれば、Amoebaもいいシステムと言えるでしょう。しかし、もちろん自分の周りにはありません。普通、自分は口論(フレーム)には加わらないのですが、Linuxのことになると過敏になってしまうようです :)





------------------------------------------------------------------------------
FromFrom: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 13:44:34 GMT

In article <1992jan29.231426.20469@klaava.helsinki.fi> torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) writes:
> 教授がこのように述べているのは、minixが持つ制限の弁解としてでしょうか?
少なくとも、MINIXの制限の一部は、自分が大学教授であることに関係しています。明示的な設計目標は、学生でも購入可能な安いハードウェアで動作するというものでした。ですから、この数年、ハードディスクが付いていない普通の4.77MHZのPC上でも動作しています。minixでは、システムの修正やリコンパイルも含め、すべてのことが行なえます。1年ほど前の記録ですが、2つのバージョンがありました。1つはPC(360Kディスケット)で、もう1つは286/386(1.2M)用です。PC版は286/386版と同じか2倍もよく売れました。詳しくはわかりませんが、推するに、8088/286/680x0などが極端に少ないのとは対照的に、既存の6000万台のPCのほんの少しは386/486マシンです。生徒の間なら、これはもっと少ないでしょう。ソフトウェアをフリーにすることが興味深い考えなのは、最先端のハードウェアを購入できる仲間内にとってのことだけです。もちろん、これから5年後には、事情は変わっているでしょう。しかし、いまから5年後には、誰もが200MIPSで64MのSPARCstation-5上でフリーのGNUを動かしているかも知れないのです。

> 反論2:大学教授で研究が本職ということですが、それこそ、頭のイカれたminixであこ
> とのよい弁明の1つです。Amoebaが、minixのように、そんなペテンでないことを望む
> (仮定する)だけです。
Amoebaはハードディスクの付いていない8088上で動作するよう設計されていません。

> カーネルの「長所」を示す基準がこれしかないという意味で、教授がこの指摘をしている
> のであれば、それは正しいでしょう。しかし、ここで述べられていないのは、minixはマ
> イクロカーネル的な働きをあまりうまく行なっていないという点で、(カーネル内の)実際
> のマルチタスク処理においては問題すらあります。私がファイルシステムのマルチスレッ
> ド処理に問題があるOSを作ったとしたら、他の人の作ったものをそんなに性急に非難し
> ないでしょう。つまり、自分のしでかした大失敗を他の人に忘れさせるために、最大限の
> 努力をするでしょう。

マルチスレッド化されたファイルシステムは、パフォーマンスを上げるためにいろいろやってみるための手段としてのみ有効です。通常の場合、小さなPCではたった1つのジョブしかアクティブでありません。そのような場合、マルチスレッド化されたファイルシステムは何の恩恵ももたらさず、単にコードに複雑さが追加されてしまうだけです。複数のユーザをサポートできるほどマシンが十分に速ければ、おそらくキャッシュの高いヒット率が保証できるほど十分なバッファキャッシュを持っていることになり、その場合、マルチスレッドは何の役にも立ちません。複数のプロセスが実際にディスクI/Oを本当に行なっている場合にだけ優位なのです。こういった場合のためにシステムをより複雑にすることが価値あるかどうかは、少なくとも異論のあるところでしょう。

1991年の今どきに、モノリシックなカーネルを設計することは根本的に間違いなのです。あなたは、私の生徒でないことに感謝した方がいいでしょう。そんな設計では進級できないでしょうから :-)

> LinuxがMinixよりもポータブルであることは事実です。え? ちゃんと教授の述べて
> いることは読んでいますよ。それは事実ですが、教授が述べたような意味においてではあ
> りません。自分の知っていた規格にできるだけ準拠するようLinuxを作り上げたからです
> (POSIX規格については知識なし)。一般に、何かをLinux上に移植する(ポーティング)
> ほうが、Minix上にするより/もっと/簡単です。

MinixはPOSIXが規格化される以前に設計されたもので、このニュースグループを読んでいる人なら誰でも知っているように、現在POSIX化が(ゆっくりとですが)進められています。ユーザレベルでの標準化が素晴らしい考えである点には誰もが同意するでしょう。それはそうと、POSIX規格が手元にない状態でPOSIX準拠のシステムが書ける点に、お祝いの言葉を述べておきましょう。非常に長い間、標準化規格の勉強をした後でも、私にとっては難しく感じられます。

私は、特定のハードウェアに密接に関係した、特にIntel系のような奇妙なCPUに依存したオペレーティングシステムを新たに書くことは、基本的に間違っていると指摘しているだけです。OSそのものは、新しいハードウェアのプラットフォームに簡単に移植できるものでなければなりません。25年前にIBM 360用にアセンブラでOS/360を書いても、おそらく大目に見てもらえたでしょう。しかし、10年前、8088用にMS-DOSを書いた愚考を、IBMやMicrosoftは今になって認識しています。1991年に386用のためだけの新しいOSを書くということは、今学期の成績でもう1つ「不可」をもらうことにつながります。もちろん、期末試験でうまくやれば、まだ単位を取得できるかもしれませんが。

Prof. Andrew S. Tanenbaum (ast@cs.vu.nl)





------------------------------------------------------------------------------
FromFrom: feustel@netcom.COM (David Feustel)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 18:57:28 GMT
Organization: DAFCO - An OS/2 Oasis

ast@cs.vu.nl (Andy Tanenbaum) writes:

> 1991年の今どきに、モノリシックなカーネルを設計することは根本的に間違いなのです。
> あなたは、私の生徒でないことに感謝した方がいいでしょう。そんな設計では進級できな
> いでしょうから :-)
大丈夫。アインシュタインも数学と物理の単位はお粗末だったよ。





------------------------------------------------------------------------------
FromFrom: pete@ohm.york.ac.uk (-Pete French.)
Subject: Re: LINUX is obsolete
Date: 31 Jan 92 09:49:37 GMT
Organization: Electronics Department, University of York, UK

in article <1992jan30.195850.7023@epas.toronto.edu>, meggin@epas.
utoronto.ca (David Megginson) says:
>
> In article <1992jan30.185728.26477feustel@netcom.com> feustel
> @netcom.COM (David > Feustel) writes:
>  >>
>  >> 大丈夫。アインシュタインも数学と物理の単位はお粗末だったよ。
>
> 前副大統領ダン・クエールも政治科学の成績が低かったな。
> 世の中にはアインシュタインよりもダン・クエールのような人が多いような気がする……
> ;-)

なんて恐ろしいことを考えるんだ!

だけど、マイクロカーネル対モノリシックなシステムという点に関しては、利用されているコンピュータ言語にある程度依存するんじゃないだろうか? MINIXはマイクロカーネルのシステムとしてうまく設計されているが、結局は、「OS」としてロードされる巨大でモノリシックなバイナリデータの塊にやはり我慢することになる。そういう考えをC言語がサポートしていないという単純な理由で、個別のプログラムとして書かれたんじゃないだろうか? Cで書かれた複数の部分で構成されるマイクロカーネルと、OCCAMのような言語で書かれたモノリシックなカーネルの間で、実質的な違いはあるのだろうか? そのような比較をした場合、自分はモノリシックな設計の方がマイクロカーネル式よりも優れていると考える。なぜなら、並行処理できる言語でカーネルを書ける利点によって、MINIXよりも、さらに多くのモジュールが作成できることになるからだ。

さて、MINIXユーザの意見はどうなのだろうか?:-)

-bat.





------------------------------------------------------------------------------
FromFrom: kt4@prism.gatech.EDU (Ken Thompson)
Subject: Re: LINUX is obsolete
Date: 3 Feb 92 23:07:54 GMT
Organization: Georgia Institute of Technology

観点がその有益性にまったく関係していないようですね。最新の設計基準からから見れば、ほとんどではないにしても、既存のソフトウェアの多くがおそらく古くさいものと判断されるでしょう。しかし、たいていのユーザは、自分たちの利用しているオペレーティングシステムの内部が古くても、あまり気にしないものです。彼らは、当然のことながら、ユーザレベルでの性能や特性にもっと興味を持っています。

おそらくマイクロカーネルが来るべきカーネル、という説には一般的に同意しますが、個人的な意見からすると、モノリシックなカーネルを実装するほうがもっと簡単ですし、さらに修正しながら、瞬く間にコナゴナにしてしまうのも簡単です。

Regards,
Ken





------------------------------------------------------------------------------
FromFrom: kevin@taronga.taronga.com (Kevin Brown)
Subject: Re: LINUX is obsolete
Date: 4 Feb 92 08:08:42 GMT
Organization: University of Houston

In article <47607@hydra.gatech.edu> kt4@prism.gatech.EDU (Ken Thompson) writes:
>
> 観点がその有益性にまったく関係していないようですね。最新の設計基準からから見れば、
> ほとんどではないにしても、既存のソフトウェアの多くがおそらく古くさいものと判断さ
> れるでしょう。しかし、たいていのユーザは、自分たちの利用しているオペレーティング
> システムの内部が古くても、あまり気にしないものです。彼らは、当然のことながら、ユー
> ザレベルでの性能や特性にもっと興味を持っています。
>
> おそらくマイクロカーネルが来るべきカーネル、という説には一般的に同意しますが、個
> 人的な意見からすると、モノリシックなカーネルを実装するほうがもっと簡単ですし、さ
> らに修正しながら、瞬く間にコナゴナにしてしまうのも簡単です。

多くの修正を加えても、ソースコードツリー(ソースコードファイルの格納してある階層的なディレクトリ構造)にそれほど大きなダメージを与えないように、モノリシックなカーネルのソースコードツリーを構造化することはどれくらい難しいことなんでしょうか? また、こういった類の努力を行なった際に、どんな種類の落とし穴にぶつかり、それをうまく対処するためにどんな提案があるとお思いでしょうか?

つまり、お尋ねしたいのは、たとえばカーネルそのものがモノリシックであっても、カーネルに加えたほとんどの変更箇所が、ある範囲にローカルなままになるようソースコードを構成するのはどれくらい難しいのか、ということです。

もう何年もモノリシックなカーネルについての経験をお持ちでしょうから :-) この手の質問に対して、スバリこれだ!といった解答をお持ちかと思ったので、お尋ねしています。

Kevin Brown





------------------------------------------------------------------------------
FromFrom: rburns@finess.Corp.Sun.COM (Randy Burns)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 20:33:07 GMT
Organization: Sun Microsystems, Mt. View, Ca.

In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
>In article <1992jan29.231426.20469@klaava.helsinki.fi> torvalds@klaava.Helsinki.>FI (Linus Benedict Torvalds) writes:

> もちろん、これから5年後には、事情は変わっているでしょう。しかし、いまから5年後
> には、誰もが200MIPSで64MのSPARCstation-5上でフリーのGNUを動かしているか
> も知れないのです。

う〜ん、個人的には、こうなったところを是非見てみたいな。

> >> LinuxがMinixよりもポータブルであることは事実です。え? ちゃんと教授の述
> >> べていることは読んでいますよ。それは事実ですが、教授が述べたような意味にお
> >> いてではありません。自分の知っていた規格にできるだけ準拠するようLinuxを作
> >> り上げたからです(POSIX規格については知識なし)。一般に、何かをLinux上に移
> >> 植する(ポーティング)ほうが、Minix上にするより/もっと/簡単です。
.........
> 私は、特定のハードウェアに密接に関係した、特にIntel系のような奇妙なCPUに依存
> したオペレーティングシステムを新たに書くことは、基本的に間違っていると指摘してい
> るだけです。

第一に、Linuxで80x86用に見事に調整されている部分は、カーネルとデバイスである。単にLinuxがユーザ全員にGNUソフトウェアを利用させることの一時凌ぎの手段だとしても、それでも、いまある様々なアーキテクチャ用にカーネルをうまくチューニングするのは値打ちがある、というのが自分の気持ちだ。

> OSそのものは、新しいハードウェアのプラットフォームに簡単に移植できるものでなけ
> ればなりません。

逆に、Linuxのポータブルじゃない唯一の個所が、カーネルとドライバだ。しかし、これらはコンパイラ、ユーティリティ、ウィンドウシステムなどと比較すると、それほど不便を感じない部分だ。LinuxにはポータブルなOSと互換性を持った呼び出し関数が数多く備わっているからだ。不平を言っているのではない。個人的には、バークレイやFSF、CMUとかから生み出されたソフトウェアの長所を活かせやすい、LinuxのようなOSが持てることを非常に嬉しく思っている。2〜3年に超安いBSD版とGNU Hurdが登場したら、そのときには、Linuxは古くさくなるかもしれない。だがそれでも、いま現在は、LinuxはOSの開発などに便利なgccやbison、bashといったツールを利用する際の費用を非常に低く抑えられるシステムだ。





------------------------------------------------------------------------------
FromFrom: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: LINUX is obsolete
Date: 31 Jan 92 10:33:23 GMT
Organization: University of Helsinki

In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
> 少なくとも、MINIXの制限の一部は、自分が大学教授であることに関係しています。明示
> 的な設計目標は、学生でも購入可能な安いハードウェアで動作するというものでした。

OK。その点は本当に技術的なポイントです。また、その点について私が書いたコメントは、弁解の余地のない誤りでした。しかし同時に、教授、上述のコメントによって、あなたも自分で自分の足元をすくってしまいました。Minixの間違いのいくつかは、UNIXを実際に動かすようには設計されていないマシンも含め、あまりにもポータブルであり過ぎるという点だということを、ご自分で認めたからです。あなたのコメントは、マシンがサポートしていたとしても、ページングのような処理が行なえるようにMinixを簡単には拡張できないということにつながります。たしかに、おっしゃる通りMinixはポータブルですが、これは「何の機能も利用していない」と言っているのと同じことです。

> マルチスレッド化されたファイルシステムは、パフォーマンスを上げるためにいろいろ
> やってみるための手段としてのみ有効です。

そうではありません。マルチスレッド化されたファイルシステムは、/マイクロカーネル/に対してはパフォーマンスを上げるための手段ですが、これはモノリシックなカーネルを書いた場合には自動的に出来あがる機能です。(そして、私がASTへの個人的な手紙で指摘したように)マイクロカーネルがあまりうまく機能しない1つの側面です。UNIXを「古めかしい」方法で書いたとすると、自動的にマルチスレッドのカーネルとなります。つまり、どのプロセスも自分の作業を行ない、効率的に動作させるためにメッセージの待ち行列のようなものを作る必要はないのです。

これとは別に、「パーフォーマンスを上げるための手段」を極めて重要だと考えている人もいます。スーパーコンピュータのcray-3を利用しているのでもなければ、コンピュータの処理が終わるのを待つのは退屈なものです。Minixを使っていたころの自分がそうでした(もちろん、Linuxでもそうですが、Minix/よりは/退屈でない)。

> 1991年の今どきに、モノリシックなカーネルを設計することは根本的に間違いなのです。
> あなたは、私の生徒でないことに感謝した方がいいでしょう。そんな設計では進級できな
> いでしょうから :-)

なるほど。でも、教授がいなくても、おそらく良い成績は取れないでしょう。ここでは、大学でOSの設計を教えている一人の人間と(まったく関係のない、OSとも関係していない)議論を行なっているのです。いつ教えてくれるんでしょうね :)

> 私は、特定のハードウェアに密接に関係した、特にIntel系のような奇妙なCPUに依存
> したオペレーティングシステムを新たに書くことは、基本的に間違っていると指摘してい
> るだけです。

しかし、/私/は、オペレーティングシステムはどの系統のプロセッサにも結びつけられて/いない/という意見です。つまり、UNIXは実在するほとんどのプロセッサで動作します。もちろん、/実装/はハードウェア固有のものですが、非常に大きな違いがあります。ハードウェアに依存しているという点でOS/360とMS-DOGを悪い設計例に指摘していますが、それはその通りでしょう。しかし、それらとLinuxは大きく違います。LinixのAPIはポータブルなのです(賢い設計のおかげではなく、よく考え抜いて判断してOSをテストしたおかげです)。

いま現在、教授がLinux用のプログラムを書いて、21世紀に登場するHurd用にコンパイルし直すことになっても、あまり驚くようなことは起こらないはずです。前に指摘されているように(私ではない)、Linuxのカーネルはシステム全体のほんの極一部です。つまり、Linuxのすべてのソースは、現在、圧縮して約200kBで、開発システムのフルソースは少なくとも10MBに圧縮できます(簡単にもっと圧縮可能)。このソースはどれも小さなカーネル以外は移植性に富んでいます。このカーネルでさえも、/何の/予備知識もなくても、1年とかからずに、いちから全体を書き直すことができます(証明:実際に自分で行なった)。

実際、Linuxのカーネル/全体/は、machの386に依存した部分よりもさらに小さくなっています。machの現行バージョンのファイルi386.tar.Zは、圧縮して800kB(nic.
funet.fiによると823391バイト)を超えています。一般に認められているように、machは「いくぶん」大きく、より多くの機能を備えていますが、これも何かを語っていることになります。

Linus





------------------------------------------------------------------------------
FromFrom: kaufman@eecs.nwu.edu (Michael L. Kaufman)
Subject: Re: LINUX is obsolete
Date: 3 Feb 92 22:27:48 GMT
Organization: EECS Department, Northwestern University

仕事場から次の2つをポストしてみたんですが、どこかで食べられてなくなってしまったようです。もうすでに読んだことがあれば無視してください。

Andy Tanenbaum教授は面白い記事をポストしていますが(このニュースグループを実際に読んでいる人を見つけるのも面白いのですが)、重要な点を見逃していると思います。

He Wrote:
> 多くの方々はご存知だと思いますが、私にとってMINIXは趣味なのです……

おそらく全員ではないにしても、これはLinuxに関与しているほとんどの人にとって真実でしょう。OS市場を圧巻するようなシステムを開発しているのではなく、単に素晴らしい時間を過ごしているのです。

> これからは、RISCチップが次第に80x86系に取ってかわるのです。ソフトウェアで
> 80386のコードを解析すれば、古いMS-DOSプログラムも動作します。

こういうことが起こったとしても、まだLinuxで遊びたければ、自分の386シミュレータ上で動かすことができます。

> MINIXは移植性を考えて設計されており、Intel系から680x0(Atari、Amiga、
> Macintosh)、 SPARC、NS32016にポーティングされています。これに対して、LINUXは
> 80x86のアーキテクチャにかなり密接に結びついています。それは、本来進むべき方向で
> はありません。

そういったマシンを持っている人にはいいでしょうが、MINIXの移植だってタダではなかったはずです。その移植性は、パフォーマンスや機能をいくらか犠牲にする代償として得られるものです。LINUXが本来進むべき方向ではないと判断する前に、それがどういった用途に使われるかを考えるべきでしょう。私は、486機上で、メモリ使用量と計算量が非常に多いグラフィックプログラムに使います。自分にとって、最先端の機能や移植性よりも、計算速度とメモリの方が重要です。

> しかし正直に言って、「近代的」な「フリー」のOSを手に入れたいと思っている方には、
> おそらくGNUなどのようなマイクロカーネルをベースにしたポータブルなOSを探した方
> がいいとお薦めしておきましょう。

マイクロカーネルをベースにした、ポータブルなフリーのOSについては何も知りません。GNUにはまだベイパーウェアです。近々予想、完成しそうにもありません。実際にお薦めのものはありますか? それとも、我われのことを弄んでいるだけなのでしょうか?
;-)

---------------------------------------------------------------------
In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
> 私は、特定のハードウェアに密接に関係した、特にIntel系のような奇妙なCPUに依し
> たオペレーティングシステムを新たに書くことは、基本的に間違っていると指摘している
> だけです。OSそのものは、新しいハードウェアのプラットフォームに簡単に移植できる
> ものでなければなりません。

教授に同意できない点がわかった気がします。教授はOSの設計をそれ自体の目的として見ているのです。私の考えでは、Minixは/ポータブル/であり、/マイクロカーネル/などの点でいいOSです。Linuxは/モノリシック/であるし、/Intel系に強く依存している/といった点でいいOSとは言えないでしょう。教授のような考えの持ち主は、大学や研究所関係の世界では珍しくありません。しかし、普遍的に共有されている考えではありません。Linuxは教材として書かれたものではなく、抽象的な演習問題でもないのです。Linuxは、GUNタイプのソフトウェアを_今日_動かせるように書かれたものです。5年以内に使われなくなってしまうという事実は重要ではなく、それよりも、現在(多分4月の時点で)、自分が動かしたいソフトウェアをどれも実行できるという事実の方が大切なのです。教授は、Minixの方が優れていると言い続けていますが、自分の実行したいソフトウェアが動かせなければ、(自分にとっては)まったく役に立ちません。

> 25年前にIBM 360用にアセンブラでOS/360を書いても、おそらく大目に見てもらえた
> でしょう。しかし、10年前、8088用にMS-DOSを書いた愚考を、IBMやMicrosoftは
> 今になって認識しています。

この点も同じです。MSは「OSの研究分野を探究」するためにDOSを生み出したのではなく、金儲けのためにしたのです。教授は彼らが_目標_に失敗したと言っていますが、MS-DOSがいまだに数多く売れているところを見ると、そうは思えません。MS-DOSが最良のOSという意味ではなく、MSの目標を達成したという意味で成功したOSなのです。

Michael





------------------------------------------------------------------------------
FromFrom: julien@incal.inria.fr (Julien Maisonneuve)
Subject: Re: LINUX is obsolete
Date: 3 Feb 92 17:10:14 GMT

Kevin Brownが述べた点を補足する意味で、いくつかユーザの立場から追加しておこう。

- Tanenbaum教授がFSのマルチスレッドは役立たないと書いたのを読んで、(フロッピー
- からアーカイブを読み込むような)ジョブを何回もバックグラウンドで実行しようとして
- も無駄で、シェルの演算子&が単に無視されてしまっていたのを思い出した。
-
- ATKコンパイラ(Minixコンパイラ)の驚くべき制限によって、面白いユーティリティの
- ほとんどがコンパイルできない。基本的なPCではまったく理解できなかったが、386の
- 不合理な点である。どんな馬鹿なDOSコンパイラでもラージモデルを備えている(もっ
- と高価でもOK)。13ビット圧縮なんて大嫌いだ!
-
- 仮想メモリをサポートしていない点が、この分野の実験を試みることの障害となってし
- まっており、大規模なプログラムをユーザに使わせないようにもしている。Mimixの奇
- 妙な設計のせいで、修正も困難だときている。

問題は、minixで研究を行なうことすら苦痛だという点だ。何か作業を成し遂げたければ(または面白く行ないたければ)、(DJ GPPのようなものを使えば)DOSのほうがまだましだ。Minixは、基本的な形態において、本当にOSの講義のサンプルとして優れたオモチャだけれども、やはりオモチャでしかない。パッチを手に入れて当てるのも苦労するし、将来のアップグレードが除外されている。

Minixは、もっといろいろなものが使えたら、本当に素晴らしいものになっていたのに残念だ。教授のソフトウェアには感謝するが、Linuxに対する教授の批判は当たっていない。Linixは、一般の人にとって、MINIXより多くのことをもっとうまく行なえる。

Julien Maisonneuve.

ここに書いたことはフレームではなく、単なる自分の経験です。





------------------------------------------------------------------------------
FromFrom: richard@aiai.ed.ac.uk (Richard Tobin)
Subject: Re: LINUX is obsolete
Date: 4 Feb 92 14:46:49 GMT
Reply-To: richard@aiai.UUCP (Richard Tobin)
Organization: AIAI, University of Edinburgh, Scotland

In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
> マルチスレッド化されたファイルシステムは、パフォーマンスを上げるためにいろいろ
> やってみるための手段としてのみ有効です。通常の場合、小さなPCではたった1つのジョ
> ブしかアクティブでありません。そのような場合、マルチスレッド化されたファイルシス
> テムは何の恩恵ももたらさず、

Minixを使っている際、単一スレッドのファイルシステムが非常に苦痛だと感じています。(猛烈に遅い)フロッピーディスクからファイルを読み込んでいる間も何か行ないたいと思うことがよくあります。大きなCプログラムやLispをコンパイルして待っている間、rogueで遊んでいたいのです。プログラムをコンパイルしている間にエディタの1つのバッファでファイルを眺めていたいのです。

(ファイルシステムがファイル処理に専念して、ターミナルI/Oとやり取りしなければ、問題はもう少し軽くて済みます)。

もちろん、仮想コンソールがなく、emacsを動かす可能性を持っていない基本的なMinixでは、これは大きな問題ではありません。しかし、ほとんどの人にとって、これは欠点であって利点ではありません。2つ以上のプロセスをアクティブにできないシングルユーザのマシンが単なる原因ではありません。多くの人が貧弱なマシンで貧弱なオペレーティングシステムを利用しているため、見せかけだけの考えになってしまっているのです。

ポータビリティに関して言えば、Minixが優れているのはこの点だけです。それは機能を限定しているからにほかなりません。ページング、ジョブ制御、ウィンドウシステムなどを備えたフル機能のUNIXがほしい場合、基本的なMinixから始めて機能を追加していくのと、Linuxから始めて386固有の部分を修正するのとどちらが早いのでしょうか? Linuxの目的とMinixの目的がまったく違っています。それなのに、Linuxを批判するのはフェアじゃないと思います。教育的に利用するシステムがほしければ、その答えはMinixです。しかし望んでいるのが、自宅のコンピュータで(たとえば)なるべくSunのような環境というのなら、Minixでは十分ではありません。

-- Richard





------------------------------------------------------------------------------
FromFrom: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: LINUX is obsolete
Date: 5 Feb 92 14:48:48 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam

In article <6121@skye.ed.ac.uk> richard@aiai.UUCP (Richard Tobin) writes:
> Linuxから始めて386固有の部分を修正するのとどちらが早いのでしょうか?ページン
> グ、ジョブ制御、ウィンドウシステムなどを備えたフル機能のUNIXがほしい場合、基本
> 的なMinixから始めて機能を追加していくのと、Linuxから始めて386固有の部分を修
> 正するのとどちらが早いのでしょうか?

すっかり忘れられているようなので、ここで、もう1つのオプションとして、UNIXかクローンを購入するというオプションを書いておきましょう。システムの内部をいじるのでなく、単純に利用したいだけなら、ソースコードは必要ありません。Coherentはたったの$99ですし、もっと機能を備えたもっとお金のかかる本当のUNIXシステムもいろいろあります。真のプログラマにとってソースコードがないのは致命的でしょうが、UNIXシステムを使いたいだけの人には、(フリーでないですが)他の様々なオプションがあります。

Andy Tanenbaum (ast@cs.vul.nl)





------------------------------------------------------------------------------
FromFrom: ajt@doc.ic.ac.uk (Tony Travis)
Subject: Re: LINUX is obsolete
Date: 6 Feb 92 02:17:13 GMT
Organization: Department of Computing, Imperial College, University of London, UK.

ast@cs.vu.nl (Andy Tanenbaum) writes:
> すっかり忘れられているようなので、ここで、もう1つのオプションとして、UNIXかク
> ローンを購入するというオプションを書いておきましょう。システムの内部をいじるので
> なく、単純に利用したいだけなら、ソースコードは必要ありません。Coherentはたった
> の$99ですし、もっと機能を備えたもっとお金のかかる本当のUNIXシステムもいろいろ
> あります。真のプログラマにとってソースコードがないのは致命的でしょうが、UNIXシ
> ステムを使いたいだけの人には、(フリーでなですが)他の様々なオプションがあります。

教授。この件に関するメッセージがニュースグループに最初にポストされてから、Minixの開発をたどり、現在、Bruce Evansの386用パッチを当てた1.5.10を動かしています。

私は自分のPCにUNIXが_ほしい_だけで、内部のハッキングには興味ありませんが、でも、やはりソースコードが_ほしい_のです!

UNIXの成功と人気をもたらした重要な原理は、他の人の作成したものを土台にするという哲学です。

そして、この哲学は、ソースコードが提供され、チェックや修正が可能となり、新しいソフトウェアが再利用できてこそ機能しえます。

私は、何年か前、幸にも、AT&TのUNIX Version 7のソースコードを眺める使用許諾書を持つ立場にいました。そのときでさえ、あなたがMinixのソースを入手可能すると決断したと知ったとき、これでAT&Tの持つ著作権の束縛から解放される!、と感じました。

教授は、あなたの「趣味」が「パーソナル」なUNIX(つまり手ごろなUNIX)の入手可能性の向上に大きく貢献したことを、忘れているのではないでしょうか。私がMinix 1.2を動かしていた8086 PCは、いま私が持っている386/SXクローンよりも遥かに高価だったことを忘れているのではないでしょうか。

あきらかに、どんな人にとってもMinixがすべてだという訳ではありませんが、68000や他の線形アドレス空間を持ったアーキテクチャと同じように、386版へ進化する理屈もわかるような気がします。自分のようにMINIXを使っていて、PC版のセグメント化されたアーキテクチャのせいでアプリケーションが不自然だと感じている人にとっては、386版は優れものなのです。

教授が何も言わない点が、自分にCoherentを使わなければと確信させるようで……

Tony





------------------------------------------------------------------------------
FromFrom: richard@aiai.ed.ac.uk (Richard Tobin)
Subject: Re: LINUX is obsolete
Date: 7 Feb 92 14:58:22 GMT
Organization: AIAI, University of Edinburgh, Scotland

In article <12696@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
> システムの内部をいじるのでなく、単純に利用したいだけなら、ソースコードは必要あり
> ません。

残念なことに、内部のハッキングは自分たちの多くがシステムに対して望んでいること
だ……。あと(きっと)数か月のうちにBSD-detoxやGNUが出てきたら、私たちのほとんどはMinixから足を洗ってしまうだろう。

-- Richard





------------------------------------------------------------------------------
FromFrom: comm121@unixg.ubc.ca (Louie)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 02:55:22 GMT
Organization: University of British Columbia, Vancouver, B.C., Canada

In <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
> しかし正直に言って、「近代的」な「フリー」のOSを手に入れたいと思っている方には、
> おそらくGNUなどのようなマイクロカーネルをベースにしたポータブルなOSを探た方が
> いいとお薦めしておきましょう。

私のように「フリー」のOSをほしい人にとって、Linux以外の別の方法はまったくないのです。「フリー」OSを利用している人の大半が386機を使っていると考えると、移植性は、実際にはそれほど大きな問題ではありません。Sparcを持っていたなら、Solarisを使っています。

現状では、私は、Linuxにgccとemacs 18.57、kermit、それにGNUユーティリィを何の問題もなく全部インストールできています。パッチを当てる必要もありませんでした。単にインストール説明に従っただけです。コンピュータ学科のの宿題に使えるこんなOSは、(Linix以外)_どこにも_ありません。Minixよりも先に、Linuxにネットワーク機能がサポートされ、X-Windowsもポーティングされるようです。そうなると、本当に便利になります。個人的な意見としては、標準のUNIXソフトウェアと互換性があるのも重要な点です。

モノリシックなシステムを用いた設計がマイクロカーネルのように優れていないことは知っています。しかし、短い間でも(自分の386をアップグレードしない/できない間)、Linuxは自分にぴったりのシステムです。

Philip Wu
pwu@unixg.ubc.ca





------------------------------------------------------------------------------
FromFrom: dgraham@bmers30.bnr.ca (Douglas Graham)
Subject: Re: LINUX is obsolete
Date: 1 Feb 92 00:26:30 GMT
Organization: Bell-Northern Research, Ottawa, Canada

In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
> ここで2つの設計方式の相対的な長所について長々と述べることもできますが、実際にオ
> ペレーティングシステムを設計している人々の間では、もう本質的に議論は終わっている
> と書くだけで十分でしょう。マイクロカーネルの方が勝利したのです。

その2つの手法の長所と短所を述べた(公平な)書籍を推薦してもらえませんか? マイクロカーネルの手法については一言述べておきたい点もあるかと思うのですが、それを利用している他のシステムとMinixはどれだけ類似しているのでしょうか? もちろん、Minixも数多くのタスクとメッセージを利用していますが、マイクロカーネルのアーキテクチャの特徴はそれだけではないでしょう。それから、Minixのコードは最適にタスクに分割されていない気がします。

> モノリシックなシステムの利点は唯一パフォーマンスでしたが、現在、マイクロカーネル
> がモノリシックなシステムと同じくらい速く動作することを示す証拠が十分にあります
> (たとえば、Mach 3.0をモノリシックなシステムと比較した論文をRick Rashidが書
> いています)。つまり、この2つの対立でまだ続いているのは、両サイドからの怒鳴りあ
> いだけなのです。

Minixに対して自分が抱えている大きな不満は、パフォーマンスではなく、機能の追加に恐ろしく苦労しなければならない点です。自分は、マイクロカーネルのアーキテクチャにおいては、こういった点が軽減されるのだと想像していました。

> MINIXはマイクロカーネルを基にしたシステムです。

これは意見が一致していることなのでしょうか?

> LINUXはモノリシックな形態のシステムです。その点で、LINUXの設計は、1970年代に
> 大きく後戻りしてしまっています。既存の動作しているCプログラムを、わざわざBASIC
> で書き直したようなものです。私にとっては、1991年というこの時代に、モノリシックな
> システムを書くことは、本当に馬鹿げた考えだと言えます。

ご立派な主張ですが、そうおっしゃる論理的根拠がわかりません。Linuxはたった12000行ほどのコードだったと思います。あちこちのタスクや騒々しいメッセージに分割することで改良につながるというご指摘が納得できません。

> 誤解のないように述べておきますが、私はLINUXに不満があるわけではありません。
> LINUXは、MINIXをBSD UNIXに変えたいと思っている人の宗旨替えには役立っていま
> す。しかし正直に言って、「近代的」な「フリー」のOSを手に入れたいと思っている方に
> は、おそらくGNUなどのようなマイクロカーネルをベースにしたポータブルなOSを探し
> た方がいいとお薦めしておきましょう。

う〜ん、私の知っている限り、この時点での選択肢はありません。でもGNU OSが登場したら、もう一度、私はすぐに乗り替えるでしょう。教授は、Linuxをあまり喜ばしく思っていないように感じます(ちょっと驚きですが)。多くの人がそんなにもLinixを採用している理由は、思うに、より多くの機能を提供しているからでしょう。Minixに機能を求める人に対する教授の接し方は、その機能を本当は必要としないのだよ、と教えるやり方でした。Linuxの進む方向が、教授のやり方が間違っていることを証明すると進言しましょう。

放棄声明文:私はLinuxの開発にまったく関係していません。Linuxのほうが、Minixよりも理解しやすいシステムだと感じているだけです。

--
Doug Graham dgraham@bnr.ca My opinions are my own.





------------------------------------------------------------------------------
FromFrom: hedrick@klinzhai.rutgers.edu (Charles Hedrick)
Subject: Re: LINUX is obsolete
Date: 1 Feb 92 00:27:04 GMT
Organization: Rutgers Univ., New Brunswick, N.J.

ソフトウェアの歴史が物語っているように、生き残るのは、技術的に品質の高いものよりも入手可能ものである。これはLinuxの大きな利点だ。Linuxは、汎用的なUNIXとかなりの互換性を持った小さな386ベースのシステムで、フリーで入手できる。私は、数年前、次の点がはっきりした時点で、Minixのコミュニティを抜けた。(1) これまでずっと(そして近い将来も)、Minixは8086より上位のCPUの利点を何も利用しようとしなかった。(2) 使用許諾書(確かに驚くほど好意的だけど)は、やはり386版の作成に興味を持っている人には厄介な代物だった。あきらかに、多くの人が386上で優れたソフトウェアを開発しているが、配布形態はすべてdiff形式だった。このため、新しいユーザにとって、386システムの構築が実用的でなく、実際問題、自分も構築したいとは思えなかった。

ここ数年で事情が変わっていたら謝らなければならない。すぐに実行できる形式で386版がいま入手可能なら、Minixのソースを共有する方法をコミュニティが作り上げ、そうすれば、普通のUNIXプログラムを持ち込むのがもっと簡単になる。そのときには、私も喜んでMinixを考え直したい。Minixの設計は本当に好きだ。

LinuxがGnuやfree BSDに取って代わられる可能性はある。しかしながら、Gnu OSが他のあらゆるGnuソフトウェアの例に従うのであれば、使うのに128MBのメモリと1GBのディスクのシステムが必要となる。もちろん、小さなシステムの余地もまだある。自分の理想とするOSは4.4 BSDだ。だが、4.4のリリース日は、極端に遅れたという歴史を持つ。ほとんどのスタッフがBSDIに移ったため、この状況が改善されるとは信じがたい。自分が個人的に使う分には、BSDIシステムがおそらく最高だろう。だが、非常に魅力的な価格でも、自分のほとんどの生徒たちには高過ぎる傾向があり、ユーザがそのソースを入手可能だとしても、いくつかのファイルに知的所有権が設定されているという事実は、変更したコードをパブリックなFTPに置けないということを意味している。いずれにしろ、Linuxは存在するし、他のそういった代替案はいまだに形になっていない。





------------------------------------------------------------------------------
FromFrom: tytso@athena.mit.edu (Theodore Y. Ts'o)
Subject: Re: LINUX is obsolete
Date: 31 Jan 92 21:40:23 GMT
Organization: Massachusetts Institute of Technology
In-Reply-To: ast@cs.vu.nl's message of 29 Jan 92 12: 12:50 GMT

> From: ast@cs.vu.nl (Andy Tanenbaum)
> これはftp.cs.vu.nl = 192.31.231.42サイトにあるminix/simulatorディレ
> クトリからFTPで入手できます)。特定のアーキテクチャ用のOSを設計することは、これ
> からの進むべき方向性ではないため、大間違いだと思います。

Linuxが80386アーキテクチャに密接に関係していると信じたのは、教授のミスではありません。多くのLinuxサポータが(Linus自身も含め)、そう言ってきたのですから。しかしながら、80386固有のコード量は、Minixに含まれているよりも多くないでしょう。あきらかに、Linuxで80386固有のコードは、BSD 4.3のVax固有のコードよりも少ないのです。

ご指定の通り、Linuxは、いまだに他のアーキテクチャへの移植が行なわれていません。しかし、自分が新しいアーキテクチャ上にUNIX風のシステムを持ち込むとしたら、おそらくMinixよりもLinuxで始めるでしょう。これは単純に、出来あがったシステムを自分で自由にしたいからです。もちろん、VMとデバイスドライバ層の大部分を書き直さなければなりません。しかし、他のどのOSであっても、やはりそうしなければならないのです。Minixを新しいアーキテクチャに移植するよりも少し骨が折れるでしょうが、しかし、それも最初の移植作業のときだけでしょう。

> ここで2つの設計方式の相対的な長所について長々と述べることもできますが、実際にオ
> ペレーティングシステムを設計している人々の間では、もう本質的に議論は終わっている
> と書くだけで十分でしょう。マイクロカーネルの方が勝利したのです。モノリシックなシ
> ステムの利点は唯一パフォーマンスでしたが、現在、マイクロカーネルがモノリシックな
> システムと同じくらい速く動作することを示す証拠が十分にあります(たとえば、Mach
> 3.0をモノリシックなシステムと比較した論文をRick Rashidが書いています)。つま
> り、この2つの対立でまだ続いているのは、両サイドからの怒鳴りあいだけなのです。

これはかならずしも十分な主張ではありません。教授は、実際よりも脚色して、白黒つけているように思えます。Brent Welsh(welch@parc.xerox.com)の『The Filsystem Belongs in the Kernel』という論文に目を通してみてください。この論文は、ファイルシステムが十分に成熟した抽象概念であり、厳密なマイクロカーネルの設計がそうであるように、カーネルの外側にではなくカーネル内に存在するべきものであると論じています。

またモノリシックなシステムと比較する際に、OSF/1 Machの速度に関心を寄せている人も数多くいます。それらの人たちは、特に、ネットワークトラフィックの処理、つまりネットワーク化されたファイルシステムに必要なコンテキストスイッチの頻度に興味を持っています。

もちろん、マイクロカーネルの手法がもたらす利点は理解していますが、それでも、Linuxはいま実際に使える状態で存在しています。GNUはまだ存在していません。GNU Hurdを生み出す作業は、LinusがLinuxの開発に費やしたよりもさらに長い間続いてきています。Minixはフリーではないので、この際、勘定には入りません。 :-)

マイクロカーネル対モノリシックなシステムのバランスは、何を行なうかに依存すると思っています。カーネルの研究に興味があれば、マイクロカーネルのモジュールをいくつか削除したり置き換えるのは簡単です。そして、研究者だけがオペレーティングシステムに関する論文を書いているため、事実上、マイクロカーネルが適切な手法にならざるを得ないのです。しかしながら、私は、研究者でないカーネルのプログラマを多数知っています。そういった人たちは、コピーの代価や、マイクロカーネルに負わされたコンテキストスイッチの代価に大きな関心を持っています。

ところで、シングルユーザのシステムにマルチスレッドのファイルシステムは必要ないというのが教授の意見ですが、私はそうは思いません。ウィンドウシステムを組み込めば、1つのウィンドウ上でコンパイルしながら、別のウィンドウ上でニュースリーダを起動し、バックグラウンドでUUCP/C Newsを動かしていたりできます。そうなれば、たとえシングルユーザのシステムでも、適切なファイルシステムのパフォーマンスがほしくなるでしょう。理論家にとっては、最適化や(教授の言葉を使うと)「パフォーマンスの向上手段」は必要ないでしょうが、自分は研究用のオモチャではなく_本物_のオペレーティングシステムに関心があるのです。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Theodore Ts'o bloom-beacon!mit-athena!tytso
308 High St., Medford, MA 02155 tytso@athena.mit.edu
Everybody's playing the game, but nobody's rules are the same!





------------------------------------------------------------------------------
FromFrom: joe@jshark.rn.com
Subject: Re: LINUX is obsolete
Date: 31 Jan 92 13:21:44 GMT
Organization: a blip of entropy

In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
>
> MINIXは移植性を考えて設計されており、Intel系から680x0(Atari、Amiga、
> Macintosh)、SPARC、NS32016にポーティングされています。これに対して、LINUXは
> 80x86のアーキテクチャにかなり密接に結びついています。それは、本来進むべき方向で
> はありません。

著者を信じる代わりにソースを見てみれば、これが嘘だということがすぐにわかる!

著者は、'fubyte'をセグメントレジスタを明示的に用いたルーチンで置き換えている。もちろん、これは簡単に変更できる。同様に、'386 MMUを想定している数個所は別として、正確なページサイズなどを隠すいくつかのマクロのせいで、ポーティングが些細なものになってしまっている。'386 TSSを使えばコードがもっと単純になるが、VAXとWE32000は類似の構造を持つ。

すでに著者(教授)も認めているように、少し設計を考えれば、システムがもっと格好よくなるが、単純に'386アセンブラを組み込むことは犯罪ではない!

失礼ながら、次の2点を指摘させてもらう。
- 書籍にはポーティングの問題点が記されていない(いくつかの"#ifdef M8088"は別と
- して)。
- リリースされた時点では、Minixは68000ユーザを大騒ぎさせる8086のいくつもの
- 「機能」に依存していた。

> Andy Tanenbaum (ast@cs.vu.nl)

joe.





------------------------------------------------------------------------------
FromFrom: entropy@wintermute.WPI.EDU (Lawrence C. Foard)
Subject: Re: LINUX is obsolete
Date: 5 Feb 92 14:56:30 GMT
Organization: Worcester Polytechnic Institute

In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:

> 誤解のないように述べておきますが、私はLINUXに不満があるわけではありません。
> LINUXは、MINIXをBSD UNIXに変えたいと思っている人の宗旨替えには役立っていま
> す。しかし正直に言って、「近代的」な「フリー」のOSを手に入れたいと思っている方に
> は、おそらくGNUなどのようなマイクロカーネルをベースにしたポータブルなOSを探し
> た方がいいとお薦めしておきましょう。

自分自身はマイクロカーネルが必然的に優れているとは確信できませんが、教授はいくつか根拠の確かな意見をお持ちなのでしょう。2つをどうにかして組み合わせられる方法のほうが、もっと意味があるような気がします。私は、Linux用に書いているIPCコードの一部に、デバイスドライバとファイルシステムをユーザプロセスとして動作可能にするコードを含めようとしていますが、これは極端に遅くなり、すべてをカーネルの外側に移動させるのは間違いだと思っています(TCP/IPは内部にして)。

実際、OSの理論家に対する自分の一番の問題は、自分たちの考えをまったくテストしないとう点です! そういった考えは(MACHを一部の例外として)、これまでどれも日の目を見たことがありません。ところが、Linusは、この10年で利用可能になった32ビットのホームコンピュータのために、AT&Tに$100,000払わなくても使える実用的なOSを最初に書いたのです。実際に手にして使える1つのソフトウェアは、10個のベイパーウェアと同じ価値があります。OSの理論家は、OSを批判したがりますが、それに代わるものを提案するようなことはしません。

マイクロカーネルが次に進むべき方向性であるという一般的なコンセンサスは、実際にアプリケーションが動作するマイクロカーネルがなければ、意味をなしません。

Linuxが出てきたおかげで、ここ数年、実験したかったいくつかの考えを試すことができました。機能の豊富なOSのソースコードを使って、いろいろ実験できるチャンスはこれまで一度もなかったのです。





------------------------------------------------------------------------------
FromFrom: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: LINUX is obsolete
Date: 5 Feb 92 23:33:23 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam

In article <1992feb5.145630.759@wpi.wpi.edu> entropy@wintermute.WPI.EDU (Lawrence C. Foard) writes:
> 実際、OSの理論家に対する自分の一番の問題は、自分たちの考えをまったくテストしな
> いという点です!

大変な侮辱です。私は_理論家ではない_。昨日の学部ミーティングに出席した人に誰でもいいから聞いてみればいい(冗談です)。

事実、OSの理論は、実際に十二分にテストされています。OSFは社運をマイクロカーネル(Mach 3.0)に賭け、USLも別のもの(Chorus)に運命を預けています。どちらも数多くのソフトウェアが動作し、両方とも、モノリシックなシステムと広範囲に渡って比較されています。Amoebaは完全実装されたもので、かなりのアプリケーションを実際にテストしてあります。QNXはマイクロカーネルをベースにしたシステムで、インストールベースで200,000システムに組み込まれていると誰かから聞きました。マイクロカーネルは空想的な考えではありません。立証された技術を表わしたものなのです。

Machの開発に従事している人たちが『UNIX as an application program』という論文を書いています。1990年夏のUSENIXカンファレンスで、Golub氏などが執筆したものです。また、Chorusの開発に従事している人たちも、マイクロカーネルのパフォーマンスに関する技術レポートを書いており、私も同じ話題に関して昨日述べた別の論文の共著者になっています(1991年12月『Computing Systems』)。チェックして見てください。

Andy Tanenbaum (ast@cs.vu.nl)





------------------------------------------------------------------------------
FromFrom: peter@ferranti.com (peter da silva)
Subject: Re: LINUX is obsolete
Organization: Xenix Support, FICC
Date: Thu, 6 Feb 1992 16:02:47 GMT

In article <12747@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
> QNXはマイクロカーネルをベースにしたシステムで、インストールベースで200,000ス
> テムに組み込まれていると誰かから聞きました。

なるほど、Amigaの販売台数は300万台以上で、つまりどのUNIXメーカーが出荷した数よりも多いことを意味していますね。おそらく、すべてのUNIXシステムを合わせたよりも多いんでしょう。





------------------------------------------------------------------------------
FromFrom: peter@ferranti.com (peter da silva)
Subject: Re: LINUX is obsolete
Organization: Xenix Support, FICC
Date: Thu, 6 Feb 1992 16:00:22 GMT

In article <1992feb5.145630.759@wpi.wpi.edu> entropy@wintermute.WPI.EDU (Lawrence C. Foard) writes:
> 実際、OSの理論家に対する自分の一番の問題は、自分たちの考えをまったくテストしい
> ないとう点です!

失礼ながら……、8088(QNX)から大規模な研究システムまで、いたる用途に対して、マイクロカーネルのオペレーティングシステムが数多く存在しています。

> そういった考えは(MACHを一部の例外として)、これまでどれも日の目を見たことがあり
> ません。ほとんど10年の間に32ビットのホームコンピュータが入手可能となり、そのた
> めに、AT&Tに$100,000払わなくても使える実用的なOSを書いた最初の人間がLinus
> だったのです。
> 実際、OSの理論家に対する自分の一番の問題は、自分たちの考えをまったくテストしな
> いという点です! そういった考えは(MACHを一部の例外として)、これまでどれも日の
> 目を見たことがありません。ところが、Linusは、この10年で利用可能になった32ビッ
> トのホームコンピュータのために、AT&Tに$100,000払わなくても使える実用的なOSを
> 最初に書いたのです。

どうも私は、AmigaOSを空想していたようですね。そうだとすると、私は、過去6年間、自分の想像の産物をずっと使ってきたわけです。

AmigaOSの設計はマイクロカーネルとのメッセージ受け渡しで、容易に入手可能な他のPC用オペレーティングシステムよりも、つまりMINIX、OS/2、Windows、MacOS、Linux、UNIXよりも応答時間とパフォーマンスが優れています。もちろん*MS-DOS*よりも優れています。

マイクロカーネルの設計は非常に貴重である点は証明されています。第三者からしか普通は入手できない新しいファイルシステムのようなものが、Amigaでは趣味の製品になっているのです。デバイスドライバは、特定のエントリーポイントとメッセージポートを持つ、単純な共有ライブラリとタスクです。ファイルシステムやウィンドウシステムなども同じです。素晴らしい設計で、マイクロカーネルに関して述べられたことすべてを確証しています。もちろん、UNIXのようなマイクロカーネルをベースにしたコルーチンよりも、離陸するのに作業が必要ですが、多機能である点の方が、何倍もの見返りがあります。

最初のリリース以来学習したことに基づいて、新しいMINIXを教授が生み出してくれることを本当に望んでいます。MINIXは、仕切がうまくいっていませんが、基本的な考え方は優れていると思います。

> マイクロカーネルが次に進むべき方向性であるという一般的なコンセンサスは、実際にア
> プリケーションが動作するマイクロカーネルがなければ、意味をなしません。

いま一度、夢見ているのでしょうか? 私は、どれも「本物」だったと確信して、自分のAmiga用にDeluxe PaintやSculpt 3d、Photon Paint、Manx C、Manx SDB、Perfect Sound、Videoscape 3d、それに他のアプリケーションを購入しました。本物でないとしたら、そんな下らないものは送り返すべきかもしれません。

Linuxが入手可能性になったことは素晴らしいことです。Linuxが登場したことを本当に嬉しく思っています。マイクロカーネルで設計する理由の1つは、早く実装できるからであり、これがマイクロカーネルとして設計する正当な理由だと思っています。しかしながら……、私はマイクロカーネルが本質的に遅いとか、単純に研究用のオモチャだと言っているわけではありません。





------------------------------------------------------------------------------
FromFrom: dsmythe@netcom.COM (Dave Smythe)
Subject: Re: LINUX is obsolete
Date: 10 Feb 92 07:08:22 GMT
Organization: Netcom - Online Communication Services (408 241-9760 guest)

In article <1992feb5.145630.759@wpi.wpi.edu> entropy@wintermute.WPI.EDU (Lawrence C. Foard) writes:

> 実際、OSの理論家に対する自分の一番の問題は、自分たちの考えをまったくテストしな
> いという点です! そういった考えは(MACHを一部の例外として)、これまでどれも日の
> 目を見たことがありません。

分散システムの講義で、David Cheriton教授(スタンフォード大学の教授でVシステムの作者)が似たようなことを言っていましたので、以下意訳します。

「研究者には2種類のタイプがいる。実際に実装してみる人と、そうでない人だ。後者のタイプは、それを行なうには142通りの方法があり、どれが最善の方法かは意見が一致していないと言う。前者のタイプの研究者は、141通りの方法がうまく動作しないと単に言うだけだ。」

同じような理由で、教授はOSI愛好家もまったく除外しています。インターネットのプロトコルは、一定期間実際に利用された後で採用されるようになっており、正当な方式での実装が絶対に行なえないような標準化がされないようにしています。それとは反対に、OSI支持者たちには、標準からの「脱出」を含め、正当な参考的な実装が存在する前から、何でもかんでもできるだけ標準化しようというのが目的のようです。結果として、サブバイトレベルのデータフィールドのパック化といった、古い考えが永遠にはびこってしまい、10G強の消火栓のホースをコンピュータが飲み込んでいる際に、素晴らしいパフォーマンスを出すのが難しくなってしまいます。

$.02分のポストでした。

D





------------------------------------------------------------------------------
FromFrom: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Apologies (was Re: LINUX is obsolete)
Date: 30 Jan 92 15:38:16 GMT
Organization: University of Helsinki

In article <1992jan29.231426.20469@klaava.helsinki.fi> I wrote:
> なるほど、この手の話題には返信しなければならないでしょう。

ご存知のように、上品さもネチケットもかなぐり捨てて、もう返答しました。教授には陳謝します。また、John Nallからの親愛な「どのように行なったかではない」という手紙にも感謝します。自分は過剰に反応し過ぎました。いま、教授へ個人的な(もっとトゲトゲしくない)手紙を書いています。願わくば、(a)ひょっとして古いみたいだからという理由でLinuxを見捨てる人が誰もいませんように(いくつかの批判は確かに正しいけれども、でもまだ事実じゃないと思っている)。(b)短気なやつが書いたからという理由で、Linuxを見捨てる人が誰もいませんように。 :-)

「これが、最初で最後の論争であることを願っています」。 Linus Torvalds





------------------------------------------------------------------------------
FromFrom: pmacdona@sanjuan (Peter MacDonald)
Subject: re: Linux is obsolete
Date: 1 Feb 92 02:10:06 GMT
Organization: University of Victoria, Victoria, BC, CANADA

このMinix対Linuxという話題に関して、最初の頃にメッセージをポストしてから考えてきたのですが、MinixからLinuxへ切り替えた理由について、どうしてもコメントしておきたいと感じていました。重要な点を順に記しておくと、次のようになります。

1) Linuxはフリーである。
2) Linuxは申し分のないテンポで拡張し続けている(新しい機能がLinusの配布キットに組み込まれるから)。

最初の点に関してはいくつか説明が必要でしょう。すでにMinixを購入しているのであれば、どうして価格が問題なのでしょう? 簡単です。OSがタダならもっと多くの人が使うことになるし、サポートや拡張も施されるからです。私が、sparc(たった30%多く支払うだけで買えた)の代わりに、386機を購入したのも同じ理由からでした。PCは安価で、どこでも手に入るため、PCを購入したり利用する人も多くなり、すなわち、品質の優れた安価/フリーのソフトウェアが豊富になるからです。

2番目の点は、Minixを一定期間使ってきた人なら誰にでもはっきりしているはずです。一般に、教授はMinixへの拡張を受け入れません。これは教授への挑戦という意味ではなく、単に事実を述べただけです。この点については、教授は正当でもっともな理由を持っており、それに関して論じ合うつもりはありません。しかし、もはや一緒に暮らして行けない制限をMinixはいくつか持っており、その方針のせいで、妥当なときに解決されるという予想は、十分ではありませんでした。制限には以下の点が含まれています。

386はサポートしていない
仮想コンソールがない
ソフトリンクがない
selectコールがない
ptyがない
オンデマンドのページング/スワッピング/共有テキスト/共有ライブラリ……がない(効率的なmm)
chmem(柔軟性のないmm)
X-Windowがない(理由は、Linuxや386にX-Windowがないのと同じと言われている)
TCP/IPがない
GNU/SysVが統合化されていない(ポータビリティ)

このうちのいくつかはパッチを当てれば直せます(自分で行なったのであれば、どんなに満足か言う必要はないでしょう)。しかし、少なくとも最後の5つの項目は、正当な期待に応えていませんでした。いまだに応えていません。

結局、Minixのセグメント化されたカーネルもしくはマイクロカーネルのアーキテクチャに関する自分のコメント(おしゃべり?)は、Linuxでどのようにしてやるのかをお手本にしながら、MinixのPTYパッチを当てようとした際に感じた、欲求不満と当惑を雄弁に物語っていたのです。これは、メッセージ受け渡しによって、機能の実装が非常に複雑になってしまったいい例です。

モノリシックな方法と、メッセージ受け渡しでする方法の違いについては、自分なりの意見がありますが、ここには述べていません。後から述べるという意味でもありません。自分の目標は非常に近視眼的です(時間/費用/悩みが最小限で済む最大限の機能を手に入れることです)。ですから、私が、モノリシックとメッセージ受け渡しについてどう考えているかは、ここで述べることではありません。うっかり述べて誤解を招くべきものでもありません。先に述べた機能がないのを気にしないのであれば、お金を払うのがいやでない限り、Minixを考えるべきでしょう。 :)





------------------------------------------------------------------------------
FromFrom: olaf@oski.toppoint.de (Olaf Schlueter)
Subject: Re: Linux is obsolete
Date: 7 Feb 92 11:41:44 GMT
Organization: Toppoint Mailbox e.V.

モノリシック対マイクロカーネルの議論に発展したLinux対Minixの論議にいくつかコメントしたいと思います。

それぞれの主張を唱える2派の間には、忘れているのかも知れませんが、LinuxとMinixは違う利用形態のために設計されたという意見が一致していないのではないでしょうか。

単一のマシン上で動作する安価で強力で、苦痛なく標準のUNIXソフトウェアを組み込める可能性がある、拡張されたUNIXシステムがほしければ、Linuxを選ぶといいでしょう。近代的なオペレーティングシステムの考えに興味があり、マイクロカーネルベースのシステムがどのように動作するのか勉強したいのなら、Minixを選んだ方がいいと思います。

これはマイクロカーネル型システムに対する論争ではなく、さしあたり、PCにモノリシック的に(単一な形で)実装されたUNIXが優れたパフォーマンスを発揮してきたという点です。少なくとも単一のマシン上で動作させるには、UNIXはモノリシックなOSとして実装された優れたOSであるというだけの意味です。ユーザの観点からしてみれば、OSの内部設計などどうでもいいのです。ネットワークに関連するまではその通りです。モノリシックな手法では、ファイルサーバは、Ethernetのような何らかのハードウェア機能をベースにしたユーザプロセスとなります。この機能を利用したいプログラムは、このサーバとコミュニケーションするための呼び出しを備えた特殊なライブラリを用いる必要があります。マイクロカーネルのシステムでは、新しい「システム」コールを必要とせずに、サーバをOSに組み込むことが可能です。ユーザから見ると、何も変えずに優れたパフォーマンスが得られるので、これは利点です(たとえば、より多くのディスク領域が使えるという意味で)。実際に実装する人から見ると、マイクロカーネルのシステムの方が、ハードウェアの設計上の変更により早く対応できます。

教授は、Minixへのどんな改良も却下していると非難されてきました。しかし、教授の関心は、Minixの教育的価値にあったのです。だとしたら、コードを単純なままにしておき、機能を詰め込み過ぎたくないという主張も理解できます。教材として、おそらくモノリシックなOSのほうが優れたパフォーマンスを発揮するハードウェアのプラットフォームで動作していますが、Minixはマイクロカーネルのシステムとして書かれたものです。しかし、ネットワークアプリケーションの分野は広がっており、AmoebaやPlan 9のような近代的なOSを、モノリシックなシステムとして書くことはできません。そのため、Minixは、生徒にマイクロカーネルのOSの実例を示し、タスクとメッセージで遊ばせることを意図して書かれたのです。SYS VやBSDインプリメントの10分の1の価格で、安価で強力なOSを多くの人に与えることを考えて開発されたわけではありません。

まとめ:LinuxはMinixより優れていないし、その反対でもありません。正当な理由でそれぞれ違うのです。





------------------------------------------------------------------------------
FromFrom: meggin@epas.utoronto.ca (David Megginson)
Subject: Mach/Minix/Linux/Gnu etc.
Date: 1 Feb 92 17:11:03 GMT
Organization: University of Toronto - EPAS

とっても面白い議論ですね。マイクロカーネルが次に進むべき方向性であるというTanenbaum教授の言葉には、すっかり納得させられます。しかし、Minixのソースを眺めればながめるほど、これがマイクロカーネルだとは信じられなくなってきています。おそらく、LinuxをM68000にポーティングするようなことには悩まされないでしょうが、MINIXが備えているよりも多くの機能を私は使いたいのです。

MACHと互換性を持ったメッセージ/syscallであるマイクロカーネルというのはどういうものでしょう? 将来のGNU UNIXエミュレータやBSDなどのプログラムを騙すために、はたから見ればMACHのように_見える_だけで、実際には、仮想メモリページングのような、MACHで可能なことをすべて行なう訳ではありません。自分たちのM68000ベースや80286ベースのマシンの便利な生活がもう少し長く引き延ばせるでしょう。しばらくの間は、おそらくMiNTに戻るよりも、自分のSTにはMinixを入れておくつもりです。結局、少なくともMinixはUnix風に見えますし、MiNTはUnixのように見せようとしているTOSのようなものです(TOS互換でなければなりません)。

David





------------------------------------------------------------------------------
FromFrom: peter@ferranti.com (peter da silva)
Newsgroups: comp.os.minix
Subject: What good does this war do? (Re: LINUX is obsolete)
Date: 3 Feb 92 16:37:24 GMT
Organization: Xenix Support, FICC

二人とも、お互いに口論は止められたらどうですか?

Linuxは、下位互換性に何年も束縛されてきたハードウェアプラットフォーム上で高いパフォーマンス環境をほどよく提供するように設計されたものです。Minixは教材として設計されたものです。互いの用途に使うにはそれぞれ適していません。また、そうしなければならない理由もありません。Minixは(本当に)すぐに息切れしてしまうという事実は、一定期間使うのには問題ではありません。オモチャのオペレーティングシステムよりも優れているのは確かです。また、386/ATが数百万台もあるこの時点で(しかも、かなり安い。386/SXなら$1000以下で十分購入可)、Linuxが386/ATプラットフォーム以外に移植可能ではないという事実も問題ではありません。

モノリシックなカーネルは、システムをすぐに生み出すのであれば、十分簡単に構築でき、そうする価値もあります。プログラミングに要する時間の節約になると考えてください。APIはポータブルです。アプリケーションを混乱させずに、カーネルをマイクロカーネルの設計に置き換えられます(MINIXはマイクロカーネルの設計の要ではありません。ローエンドのPC用でもです。……。AmigaOSを見てください)。APIがポータブルであることが一番大切だと言われているのは、まさにこの理由です。

あきらかに、マイクロカーネルの設計のほうが多くの面で優れています。しかし、効率的に行なうにはより多くの作業が必要です。したがって、マイクロカーネルの利点をどんな現実的な方法でも活かしていない設計は、教材的な目的での利用を考慮すると価値があるのです。学生の学習効率を向上させるものと考えてください。それでもマイクロカーネルは設計的に優れており、インターフェイスにAPIが得られれば、_非常に_印象的なパフォーマンスが得られます(8MHzの68000で毎秒数千ものコンテキストスイッチが可能)。





------------------------------------------------------------------------------
FromFrom: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Unhappy campers
Date: 3 Feb 92 22:46:40 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam

最近、不満に思っている人たちから何通かメールをもらいました(43,000の読者からメッセージが10通届くというのは多いようにも思えますが、実際はそれほどでもありません)。どのメールにも次の3点の反論が書いてあります。

 1. モノリシックなカーネルもマイクロカーネルと同じくらい優れている。
 2. ポータビリティはそんなに重要ではない。
 3. ソフトウェアはフリーであるべきだ。

マイクロカーネル対モノリシックなカーネルを真剣に議論したければ、それもいいでしょう。ただし、comp.os.researchで話し合うべきです。それから、自分が何を言っているのか理解しないで、まくし立てないでください。これまでに、私は3つのオペレーティングシステムの設計と実装に手を貸したことがあります。1つはモノリシックなOS、もう2つはマイクロカーネルのOSです。また、他のOSに関しても詳しく研究してきました。提示されている論争の多くは、成功の見込みのないものです(たとえば、マイクロカーネルはユーザ空間でページングが行なえないからよくないなど――しかし、Machはユーザ空間でページングが_行なえます_)。

マイクロカーネル対モノリシックなカーネルに関してよくご存知なければ、雑誌『USENIX journal』の1991年12月の「COMPUTING SYSTEMS」特集号に、私がFred Douglis、Frans Kaashoek、およびJohn Ousterhoutと共同執筆した論文に有益な情報がいくつか載っています。その雑誌を持っていなければ、ftp.cs.vu.nl(192.31.231.42)のamoeba/papersディレクトリにあるcomp_sys.tex.Z(compressしたTeXのソース形式)またはcomp_sys.ps.Z(compressしたPostScript形式)というファイルをFTPしてください。その論文が読めます。実際のパフォーマンス測定が掲載されており、マイクロカーネルベースのシステムはモノリシックなカーネルとちょうど同じくらい効率的だというRick Rashidの結論をサポートしています。

移植性(ポータビリティ)に関しては、まじめな論議がもはや交わされていないようです。UNIXはPCからCrayまであらゆるものにポーティングされてきました。ポータブルなOSを書くことは、ポータブルではないOSを書くよりもそんなに難しくなく、最近では、すべてのシステムがポータビリティを念頭に置いて書かれています。たしかに、OS教授のLinusはこの点を指摘しました。OSのコードをポータブルにすることは、1987年に私が開発したものではありません。

ほとんどの人は、カーネルの設計とポータビリティに関して理性的に述べていますが、フリーかどうかの問題は100%感情的な代物です。最近、MINIXがフリーでない点に関連して、私がどれほどの_自主規制により一部削除_を得たかは信じられないでしょう。MINIXの価格は$169ですが、使用許諾書にはバックアップ用コピーを2つ作成してもかまないと明記してあります。そのため、実質的な価格は$60以下となります。さらに、教授であれば生徒用に_無制限_にコピー可能であると記述してあります。Coherentは$99です。またFSFは、インターネットにアクセスできないのであれば、「フリー」ソフトウェアをテープにコピーするのに$100以上をチャージしています。これに対して誰かが不平を述べていると聞いたことがありません。4.4 BSDは$800です。お金が問題だとはまったく思っていません。その上、このニュースグループを読んでいる方は、おそらくすでに持っているでしょう。

FTPで何かを入手可能にすることがかならずしも広範囲な配布を提供する手法ではありません。この点を正しく理解している人はあまりいないと思います。インターネットはまだエリート集団のものです。ほとんどのコンピュータユーザは、インターネットに接続されて_いません_。発売元のPHから聞いたところによると、MINIXが最も広く利用されている国は米国ではなくドイツだそうです。ドイツの(商用)コンピュータ雑誌の1つが熱心に押してくれたのが主な理由です。また、東ヨーロッパ、日本、イスラエル、南アメリカなどでも広く利用されています。こうした人たちのほとんどは、どこか企業が販売しなければ、絶対に入手できなかったでしょう。

「フリー」という言葉が意味する点に立ち戻ると、フリーのソースコードとはどういう意味なのでしょう? Coherentはバイナリだけですが、MINIXはLINUXと同じようにソースコード付きです。自分の好きなように変更でき、このニュースグループに変更したものをポストすることができます。5年間、何の問題もなく、人々はそのようにしてきました。また、自分も何年もフリーでアップデートを提供してきました。

問題の核心は別のところにあると考えています。仮想メモリ、ページング、シンボリックリンク、ウィンドウシステム、その他の機能を繰り返し提示されてきましたが、生徒が理解できる簡単なシステムのままにしようとしてきたため、そういう申し出は一切断ってきました。そういったものを組み込むことはできますが、自分のバージョンには組み込みませんでした。「MINIXはフリーじゃない」と言う人をうんざりさせるのは、$60だからではなく、この点だと考えています。

興味深いのは、Linusが自分の管理からLinuxを「フリー」にしたがっているのかどうかということです。多くの人がLINUXを修正(破壊)して、売ったりするのでしょうか? イギリスのMINIXセンターが新しい郵便料金でディスケットをほとんど原価で販売していた際に、「Re: Your software sold for money(お金のためにソフトウェアが売られている)」という題の何百ものメッセージが届いたことを忘れないでください。

Fred van Kempenが生き返り、FredのLINUXとLinusのLINUXが作られたとしたら、どちらも便利ですが違うものです。そういう状況はOKでしょうか? かなりの人数の人々がLINUXをLinusが望んでいない方向に発展させたいと望んだときに試練がやってきます。しかし、実際にそういったことが起こるまでは、議論の余地が残るのです。

私の哲学よりもLinusの哲学が気に入ったなら、どうぞ、彼について行ってください。ただし、LINUXが「フリー」だからという理由でLINUXに乗り換えるんだと主張しないでください。多機能のシステムがほしかったからと言ってください。結構です。選択するのはあなたなのです。それをとやかく言うつもりはありません。真実を語ってください。

ところで、ニュースのヘッダ情報を見ていない人に述べておきますが、Linusはフィンランドにいて、私はオランダに住んでいます。U.S.が完全に支配しているフリーソフトウェア産業が、外国勢の競争で取って代わられる状況に到達しているのでしょうか? アメリカのフリーソフトウェアをもっとヨーロッパに輸入するよう要請しに、Richard StallmanとRick Rashidを従えて、まもなくブッシュ大統領がヨーロッパに来るのでしょうか?

Andy Tanenbaum (ast@cs.vu.nl)





------------------------------------------------------------------------------
FromFrom: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: Unhappy campers
Date: 5 Feb 92 23:23:26 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam

In article <205@fishpond.uucp> fnf@fishpond.uucp (Fred Fish) writes:
>
> PHに配布の独占権が承認されていなければ、興味を持っているMINIXのハッカー全員を
> 取りまとめ、拡張版MINIXの制作に専念したグループを組織することも可能だっただろ
> う。このグループの目的は、一般に求められている拡張をすべて施した、MINIXの1つの
> サポートバージョンを作成することであった。それが可能であったら、ここ数年、gccが
> 進化してきたのと同じように、MINIXも発展することができたであろう。

これは_確か_に可能です。これを行ないたいグループがいるのなら、それでいいでしょう。世界中にいる1000人ものお天気屋さんたちをコーディネィトすることは、散らばっている猫たちを一箇所に集めるのと同じくらい簡単でしょうし、法的な問題も何もありません。新しいリリースの準備ができたら、1.5に対するdiffのリストを作成して、ポストするかFTP可能にしてください。インストールするのに、一部のユーザにとっては作業がいくらか必要となりますが、それほどの作業ではありません。私はdiffのパッチを当ててインストールするシェルスクリプトを持っています。Fred van Kempenもこのようにしていました。PHから販売されているバージョンを基にしたdiffではなく、新しいバージョンを出版することに固執した点が彼の過ちでした。これはPHを環の外に切り離すことになり、当たり前のことですが、そんなに荒っぽい考え方に対する賛同は得られませんでした。こうしたい人がまだいるのなら、どうぞ、そうしてください。

もちろん、自分のバージョンにそういった変更をまったく加えるつもりがないという訳ではありません。オフィシャル版と拡張版を同期させるのにいくらか作業が必要ですが、作業を最小限にすることに喜んで協力します。長い間、Bruce EvansとFrans Meulenbroeksともにこれを行なってきました。

Linusが公式バージョンの管理を続けたいとして、熱心な集団が別の方向にLinuxを進ませたかった場合に、同じ問題が発生します。著作権に関することが本当に問題だとは考えていません。問題はコーディネィトです。GNUやMINIX、LINUXのようなプロジェクトは、誰か一人が管理している限りは首尾一環しています。1970年代に構造化プログラミングが謳われた際、プログラミングを行なうチームは外科手術チームのように構成しなければならないとHarlan Millsは指摘しました。つまり、誰に対しても斧を与えて切り刻ませる豚の解体チームではなく、執刀医は一人であとは介添役で構成するのです。

開発者が広範囲に分散していても、無秩序状態に陥ることなく複雑なコードをデバッグできると言う人は、まだソフトウェアのプロジェクトを管理したことのない人です。

>> rms/FSFの賛成しない方向にgccを進化させたい多くの人たちがどこにいるのだろ
>> う?

コンパイラは、人が感情的な思い入れを持つようなものではありません。コンパイルされる言語(たとえばANSI標準規格)が与えられても、それに革新的な機能を付け加える余地はそれほどありません。オペレーティングシステムには、自分の好きな機能を実装するチャンスが無限にあります。

Andy Tanenbaum (ast@cs.vu.nl)





------------------------------------------------------------------------------
FromFrom: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: Unhappy campers
Date: 6 Feb 92 10:33:31 GMT
Organization: University of Helsinki

In article <12746@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
>
> Linusが公式バージョンの管理を続けたいとして、熱心な集団が別の方向にLinuxを進
> ませたかった場合に、同じ問題が発生します。

教授からの「言いがかり」を見るのは2回目です。教授は、おそらくまだ見たこともないカーネルに関してコメントしても大丈夫だと感じているのでしょう。もしくは、少なくとも私に尋ねてもこないし、これに関してalt.os.linuxも読んでいらっしゃらない。したがって、教授の憶測から誰も真実性を見出せないように、教授の質問に対する私の答えを、次の一言を述べておきます。

私はそうしません。

事実上、私が管理していることは、他の誰よりもLinuxをよく知っているという点で、自分の施した変更点はFTPサイトなどから入手可能するということだけです。結果的に、それが公式リリースとなり、これがいつか変わってしまうとは予想していません。自分が道徳的な正義を感じているからではなく、それほど不満が耳に入ってこないからです。カーネル内で起こっている事柄に対して同じ「感じ」を抱いている人が他にもいると自分で意識できるまでには、何か月かかかると思います(すでに人々が集まってきているのかもしれません。私自身、0.10へもいくつか大きな変更を加えましたが、他の人もいろいろ変更を追加しています)。

実際に、同じ感じを抱いている人々に、将来的に追加/すべき/すべての機能(SCSIなど、自分の持っていないハードウェア用の機能)を自分でフルサポートできないと予想して、リリースに関する決定をする"linux-kernel"というメーリングリストを送りました。反応はありません。どうしても変更したいのとは違うようです(サポートできるよう寄附を募るべきだと言う人が一人いました。誰か周囲に転がっているハードウェアに興味があれば、喜んで受け付けます :))。

著作権が禁止している唯一のことは(これが最大の道理だと感じています)、他の人々がそれでお金を稼ぎ始めることで、ソースを入手可能にしないなども……そうです。多分、これは論理の質問ではありませんが、私の作成したソフトウェアを単にお金のために誰かが売れるとしたら、個人的なプロジェクトに使えるよう、わざわざ入手可能にした場合、非常に気分が悪くなります。ほとんどの人は私の気持ちを理解していると思っています。

それはそうと、Fred van KempenがスーパーLinuxを作成したかったら大歓迎です。彼はそれでお金を稼ぐことができませんし(フリー配布のみ)、Linuxをいくつにも分けてしまうのはいい考えだとは思いませんが、著作権が自分にあったとしても、彼を止めたりしません。

> 著作権に関することが本当に問題だとは考えていません。問題はコーディネィトです。
> GNUやMINIX、LINUXのようなプロジェクトは、誰か一人が管理している限りは首尾一
> 環しています。

そうです。コーディネートが大きな問題です。いつか私が「主任執刀医」でなくなってしまうとは考えていません。この問題の重要性をほとんどの人が理解しているからです。しかし、著作権は/いま現在/の問題です。つまり、私が悪いソフトウェアを書いたとほかの人が感じたなら、彼ら自身でそれを行なうことができます。gccのソースを自由にしながら使えるのとまったく同じです。しかしながら、MINIXの著作権では、もっと優れたMINIXを作れると誰かが感じたとしても、その人はパッチを作成するか(どんなに言われても、これは優れた方法ではありません)、いちから作り直さなければならないことを意味しています(そして、別の考えを持っている教授の矢面に立たなければなりません)。

パッチでの配布はそれほど楽しいものではありません。Linuxのシングルバージョン用cdiffはまだ作成していません(これは変更する予定です。間もなく、カーネルよりパッチが小さくなれば、パッチと完全なバージョンの両方を入手可能にしておくのがいい考えだと思います。完全なバージョンもまだ入手可能にしている点に注意)。パッチにパッチを重ねるのは実用的ではなく、特に自分たちで変更を行なっている人にとっては、実行不可能なものです。

> >> rms/FSFの賛成しない方向にgccを進化させたい多くの人たちがどこにいるのだろ
> >> う?
> コンパイラは、人が感情的な思い入れを持つようなものではありません。コンパイルされ
> る言語(たとえばANSI標準規格)が与えられても、それに革新的な機能を付け加える余地
> はそれほどありません。オペレーティングシステムには、自分の好きな機能を実装する
> チャンスが無限にあります。

GNU emacsがありますね……。
我われは、エディタに対して感情的な思い入れを持っていないとは言わないでください。 :)

Linus





------------------------------------------------------------------------------
FromFrom: dmiller@acg.uucp (David Miller)
Subject: Linux is Obsolete and follow up postings
Date: 3 Feb 92 01:03:46 GMT
Organization: AppliedComputerGroup

オペレーティングシステムの設計に興味がある第三者として、この議論の進展に黙っていられませんでした。まず、自分は何年もUNIXを利用してきていますが、minixやlinuxを使った経験がほとんどないことを明言しておきます。最初に、いくつか観察した点を述べておきます。

Minixは教授が自分の講義に使う教材として書かれたもので、商用のオペレーティングシステムではない。UNIXシステム用にフリーで入手可能なソースコードを実行することは、設計要素にはなかった。また、必要な機能面をできるだけカバーしながら、マイクロカーネルと個別のプロセスを用いて、オペレーティングシステムはどのように設計すべきかを示したものである。

Linuxは、386ファミリーのプログラミング方法を学習するというLinus自身の課題としてほとんど書かれたもので、究極のオペレーティングシステムを設計することが目的ではなかった。広く入手可能なあらゆる種類のソフトウェアを実行できる、利用価値があり、フリーのプラットフォームを提供することが考慮されており、それによく合致している。


これらのシステムのどちらも、*自分たちにとって*そうあってほしいシステムではないと言う人の批評は場違いです。結局、どちらかのシステムが動作するコンピュータを持った人は誰もが、Linusや教授がフリーであったと同様にフリーであり、自分のものは自分で書けるのです。

Linuxを開発した相当な努力と、それを誰に対してもフリーにするという決断をしたことにおいて、私はLinusを賞賛します。また、minixを購入可能なものにした教授の努力も賞賛に値します。もちろん、私はminixがフリーではないという不満に関連したトラブルも実際には抱えています。minixを探検する時間があり、基本的なコンピュータシステムを持てる余裕があるのなら、$150は高いとは言えません。それに、書籍も手に入れられるのです。

次に、いくつか教授に質問があります。

MINIXは「本当のオペレーティングシステム」と想定しているのですか? それとも教材なのでしょうか? 教材としてなら、非常にすぐれたソフトウェアです。本当のオペレーティングシステムとしては、いくつか重大な欠点があります(一例として、どうしてmalloc()がないのでしょう?)。MINIX関連の書籍を読んだり、ここにポストされた記事を読んで感じるのは、教授は自分の講義に使う教材がほしかったのに対して、他の人たちは、購入可能なオペレーティングシステムで遊んでみたかったという点です。これらの人たちは、際立った成功のないまま、「本当のオペレーティングシステム」に仕立て上げる十分な機能をMINIXにはめ込もうとしてきています。

メモリ管理のような基本的なOSの機能をユーザプロセスに分割する理由は何でしょう? 優れた*NIXのグルなら誰でも知っているように、成功の秘訣は、問題をきちんと扱いやすく定義したコンポーネントに_簡略化する_ことを目的とした、分割と取りまとめです。オペレーティングシステムの基本部分をユーザ空間のプロセスに分割した結果、追加メカニズム(メッセージの受け渡しや複雑なシグナル処理)を持ち込むことになり、それによって機能が複雑になってしまうのであれば、それは設計と実装を簡略化するという目的を満たすでしょうか?

*nixが特にsysVr4で機能の悪しき状況に苦しんだことには同感です。機能性や互換性に対して求められる特徴は、おそらく、実行時にロード可能なモジュール/ライブラリで提供できるでしょう。マイクロカーネルはまだべースレベルのリソースマネージャで、同時にリクエスト機能を適切なモジュール/ライブラリにルーティングします。モジュールはスレッドまたはユーザプロセスでもかまいません(と思います。OSハッカーの方、間違っていたら訂正してください :-))。

ポストに$.04しかかかっていません。どうぞ、ご自由にポストしたり、電子メールで返信をしてください。私は正式な情報処理の講義を受けたことはありませんので、自分の無学さから、本当にこれらを質問しているのです。他にも私と似たような質問を考えている人がネット上に多くいるのではないかと思いますが、先に質問してみました。

-- David





------------------------------------------------------------------------------
FromFrom: michael@gandalf.informatik.rwth-aachen.de (Michael Haardt)
Subject: 1.6.17 summary and why I think AST is right.
Date: 6 Feb 92 20:07:25 GMT
Reply-To: u31b3hs@messua.informatik.rwth-aachen.de (Michael Haardt)
Organization: Gandalf - a 386-20 machine

まず最初に、_近い_将来、MINIXに期待できる点をまとめて、そして自分は教授が正しいと考えている理由を説明しよう。

ちょっと前に、MINIXの次のリリース(1.6.17)に関して詳しく知りたいと質問した。いくつか返事をもらったが、1.6.16を動かしている人からだけだった。以下の情報はオフィシャルではなく、間違っているところもあるかもしれないが、いま自分が知っているすべての情報である。どこか違っていたら訂正してほしい。

- 1.6.17のパッチは、PHから販売されている1.5への相対的なものとなる。
- ヘッダファイルが綺麗。
- 2種類のファイルシステムが同時に利用できる。
- シグナル処理がPOSIX用に書き直されている。古いバグが取り除かれている。
- コンパイラのバイナリとしてANSIコンパイラ(Transmediarから入手可能だと思う)
- と新しいライブラリが付属している。
- Amoebaのネットワークプロトコルはサポートされていないようである。
- times(2)が正しい値を返す。termios(2)も実装されるが、速成バージョンである。
- 「実装される」という意味が、カーネルに実装されているのか、それとも現在のエミュ
- レーションなのかは知らない。
- 新しいファイルシステムに関するドキュメントがない。新しいfsckとmkfsがあるが、
- まだわからない。
- ANSIコンパイラでは、浮動小数点サポートがより優れている。
- スケジュールが改善されているが、Kai-Uwe Bloemが書いたようには良くない。

これを尋ねたのは、MINIX 1.6.17にアップグレードするべきか、それともテストが終わった後でLinuxにした方がいいかを自分で判断するための事実を得るためだった。なので、自分はもう決めた。現在MINIX 1.5でやたらとパッチを当てて動作している自分に必要なソフトウェアが全部Linuxで動作するのであれば、今月の終わりにLinuxにアップグレードして、ウィンチェスターディスクからMINIXを削除する。これには2か月はかかるだろう。自分がこう決めた大きな理由は次の点である。

- 1.6.17が登場するが、MINIXの「現在」のリリース版というのはなく、基本的にパッ
- チに使われており、1.6.17がいつ登場するかは誰もしらない。
-
- ライブラリにいくつかバグがあり、聞いた話しによると、そのバグ修正はされていない。
- 新しいコンパイラは登場しないので、16ビットユーザはバグだらけのACKをまだ使い
- 続けなければならない。
-
- 1.6.17はPOSIXにより準拠するが、やはり完全なtermiosはない。
-
- 16ビットユーザ用にもまだ開発が行なわれているとは疑わしい。

ここ数か月のうちに、MINIXソフトウェアのメンテナンスを止めると思う。続けたいという人は誰かいるだろうか?自分のマシンでLinuxが_完璧_に動くまでは、Origamiの各アップデートは16ビットMINIXでも動作させる。これらの最終バージョンが出来あがったら発表する予定である。

個人的な意見としては、教授が下したMINIXに関する判断は正しいと思う。これまでのメール論争を読んできて、ありのままのMINIXが自分は好きなんだと言わずにはいられない。いま現在は、Linuxがそうなのだが……。MINIXには次のような利点がある。

- ウィンチェスター型のドライブがなくても起動でき、プログラムのコンパイルだって可
- 能。数年前に実際に試した。
-
- 非常にコンパクトなので、うまく動作する小さなシステムで多くを知る必要がない。
-
- 書籍も出ている。もちろんバージョン1.3のものだが、ほとんど内容がまだイキ。
-
- MINIXは非モノリシックなカーネルのサンプルである。頭のイカれたハードウェアの障
- 害を乗り越えるためであれば、MINIXのことをマイクロカーネルとかハックと呼んでも
- いい。つまり、MINIXは、概念、それも文書化された概念を長所と短所とともに示した
- ものだ。

自分の目からすると、UNIXやシステムプログラミングを始める最初のステップとしては優れたシステムだと思う。私自身も、UNIX上でのC言語によるプログラミングからシステム管理、それにセキュリティホールも :)、すべての領域でUNIXに関して知っている事柄のほとんどをMINIXで憶えた。MINIXは、1.5.xxへのアップグレード、仮想コンソール、メールとニュース、テキスト処理、クロスコンパイルなど、自分とともに成長してきた。しかし、いまでは自分にはあまりにも小さ過ぎる。自分としては、教育システムはもういらない。もっと複雑で機能の多いUNIXを手に入れたい。その1つがLinuxである。

昔を振り返ってみると、昔はv7が最先端だった。そして、v7のほとんどの機能を備えたMINIXができ、1〜2年してから、現在よく目にしているPOSIXが登場した。小さなシステムを動かして実験したり遊んでみたい人々のために、POSIXのほとんどを備え、新しい書籍も伴ったMINIXが登場してくれることを望む。

口論はもう止めてほしい。MINIXとLinuxは目的が違う別々のシステムである。片方は教材だし(すごくちゃんと出来ていると思う)、もう一方は真のプログラマのための本物のUNIXである。

Michael





------------------------------------------------------------------------------
FromFrom: dingbat@diku.dk (Niels Skov Olsen)
Subject: Re: 1.6.17 summary and why I think AST is right.
Date: 10 Feb 92 17:33:39 GMT
Organization: Department of Computer Science, U of Copenhagen

michael@gandalf.informatik.rwth-aachen.de (Michael Haardt) writes:

> 口論はもう止めてほしい。MINIXとLinuxは目的が違う別々のシステムである。片方は
> 教材だし(すごくちゃんと出来ていると思う)、もう一方は真のプログラマのための本物の
> UNIXである。

聞きました? Linuxについてはalt.os.linux(自分のサイトがalt.*を取っていなければcomp.os.misc)で、Minixについてはここで行なうことにしましょう。

eoff (end of flame fest :-)

Niels