パスワードを忘れた? アカウント作成
183094 journal

taro-nishinoの日記: TanenbaumとTorvaldsの論争パートⅡ 5

日記 by taro-nishino

Linus氏のgoto有用論やC++否定論を始めて聞いた時、私は正直、氏なら言っても可笑しくないと思いました。それは、氏がC言語をアセンブリ言語の代用として使っていることもありますが、gotoがどうのこうの、OO指向言語がどうのこうの、そんなみみっちい議論よりも前に、Linus氏のOS設計思想から万事すべてが端を発しているからです。Tanenbaum氏との論争、すなわちマイクロカーネル対モノリシックカーネル論争におけるLinus氏の考え方が氏のすべてなんです。その内容については、氏の半生記"Just for Fun"の"Minix vs. Linux"の節(原書p98から記述あり)や、他の書籍にも載っているし、論争の舞台であったニューズグループのアーカイブズもオンライン上にありますから、詳細を知りたければそれらを見ていただくとして、ここでは繰り返しません。
しかしながら、私の周辺の人達とよもやま話をした時、この論争自体があったことすら知らない人もいました。さすがにLinus氏を知らない人はいませんでしたが、Tanenbaum氏を知らない人が結構いて、話を続けようにもどうしても途切れてしまい、Linus氏のgoto有用論やC++否定論の根本がどこにあるのか、触れずじまいになりました。今やTanenbaum氏のかの有名なOS教科書の存在すら知らない人が殆どを占めるのです。OS開発に従事したことが無くても業界人や情報数理系学生の常識(本当に読んだかどうかは別にして)だと私なんかは思っていたのですが、最早そういう時代ではないのです。
ところで、Linuxがブレークして随分時間が経った2006年にも、Tanenbaum氏はマイクロカーネルの優位性を主張する論文を発表しました。その経緯を簡単に纏めたのがTanenbaum氏の"Tanenbaum-Torvalds Debate: Part II"というエッセイです。(尚その中で、少しばかりLinus氏がOO指向を毛嫌いにする要因にも触れております。)とは言っても、結局はマイクロカーネルとモノリシックカーネルのどちらが優れているか(理論上ではなく実践的に)はもっと後世の人が判断することになるのでしょう。
その私訳を以下に載せておきます。

TanenbaumとTorvaldsの論争パートⅡ
2006年5月12日 Andy Tanenbaum

始めに
再びのマイクロカーネル論争の時のように見えるらしい。技術的議論に入る前に、私は言いたいことがある。多くの人が、Linusと私が敵か何かのようなことを言ったり、示唆した。それは完全に出鱈目である。私は彼と一度会った。彼は愛想が良く、非常に賢明だ。私達はいくつかの技術的問題について反対だが、それが敵同士にはならない。考え方の不一致を個人的な不和と混同しないでほしい。私はLinusに対して何もないし、彼の成し遂げていることに大いに敬意を持っている。

あり得ない事であるが、2、3年前マイクロソフトはKen Brownという男を雇い、Linusが私のMINIX 1システムからLinuxを盗んだとする本を書かせた。Linusの名声を台無しにする言いがかりに、私は強く反駁した。私はLinuxの設計に完全には賛成でないかも知れないが、LinuxはLinusの子供であり、私の子供ではないし、Brownが盗用だと言った時、大変残念だった。

詳細に入る前に、私の関心はマイクロカーネル自体にあるのではないことも言いたい。私の関心は高信頼度な(そしてセキュアな)オペレーティングシステムであり、マイクロカーネルはそのための良いツールであると考える。これについて以下で詳しく述べる。

魅了する話
「魅了する話の前には、頭を働かせよ」
と読める標識がコロラドの米空軍アカデミーにあるらしい。私はそこに実際にあるのか知らないが、何事においてもいい考えだと思う。

マイクロカーネルが如何に遅いか、マイクロカーネルが如何にプログラミングが難しいか、如何に商業的に使用されていないかについてや、他にも大量のナンセンスが長年スラッシュドットのようなフォーラムに絶えずポストされて来ている。事実上、これらのポストのすべてが、マイクロカーネルが何なのかまたは何が出来るのか知らない人から来ている。そのようなポストをしている人々が始めにマイクロカーネルベースのオペレーティングシステムを試し、「マイクロカーネルベースのOSを試したが、X、Y、Zを直接見た」のような信頼性を持つポストであれば、議論のレベルを高めるであろうにと私は思う。

最も簡単な方法は、MINIX 3をダウンロードし試すことだ。フリーで、オープンソース(BSDライセンス)であり、一度CD-ROMイメージを持てば、CD-ROM上に焼き、そこからブートし、ルートとしてログイン出来る。しかし、何か実際的なことをするためには、ディスクパーティション(1GBになるだろう)を割当て、MINIX 3をそこにインストールする必要がある。どうか最初にセットアップマニュアルをプリントし、読んでほしい。インストールは10分くらいかかるだろう。そして、セットアップマニュアルに書かれている通りに、パッケージすべてをCD-ROMにインストールする。今やXをスタートさせ、実体験を得られる。マニュアル通りに、全オペレーティングシステムをリビルドしてみてほしい。その全ビルドは、カーネル+ユーザモードドライバーとユーザモードサーバ(全部で125コンパイル)が約5から10秒かかる。

MINIX 3は祖父のMINIXでないことに注意してほしい。MINIX 1は教材として書かれた。教材としては大学で尚も広く使用されている。Al Woodhullと私はMINIX 1についてテキストブックすら書いた。MINIX 3は、それプラス、高信頼度で自己回復可能な、そして肥大化無縁のオペレーティングシステムの始まりであり、第3世界の子供達を助ける100ドルラップトップのようなプロジェクトや、もしかして組込みシステムにもおそらく有用だ。MINIX 1とMINIX 3は、Windows 3.1とWindows XPが関係があるのと同じ意味で、関連性がある。つまり、ファーストネームが同じだ。従って、学内にいる時MINIX 1を使っていても、MINIX 3を試してみよ。驚くだろう。最小だが、X, bash, pdksh, zsh, cc, gcc, perl, python, awk, emacs, vi, pine, ssh, ftp, the GNU tools及び400を超える他のプログラムの付いている役立つUNIXシステムなのである。それがすべて、ちぽっけなマイクロカーネルをベースにして、直ぐにでも利用可能だ。

だから、「Tanenbaumがマイクロカーネルは非常に素晴らしいと思うなら、何故彼はマイクロカーネルベースのOSを書かないのか?」といったようなコメントを繰り返さないようにして貰いたい。私は書いた(実際は、私、私の学生、私のプログラマでやった)。LinuxまたはBSDのようには、まだ完成または成熟していないが、小さく理解し易いマイクロカーネルに基づくユーザ空間内に、信頼出来る、自己回復可能なマルチサーバUNIXクローンの実装が実現出来ることをはっきりと示している。未成熟(一年ちょっとの期間で3人でやった)をマイクロカーネルに関する議論と混同するな。時間の経過に伴って、更にフィーチャーを追加出来るし、する積りだし、更にソフトウェアをポートする(貴方の支援を大いに歓迎する)。2005年10月のMINIX 3サイト発進以降、40万を超える訪問が記録されている。貴方自身で試してみよ。

論文
最近、私の博士課程の学生Jorrit Herder、私の同僚Herbert Bosと私は、"信頼出来、セキュアなオペレーティングシステムを作れるか?"と題する論文を書き、IEEE Computer Societyの主要発行誌であるIEEE Computerマガジンに提出した。2006年5月に受領され刊行された。この論文の中で、大部分のコンピュータユーザのためには、パフォーマンスよりも信頼性がもっと重要であると論じ、オペレーティングシステムの信頼性の改善を試みている現行4つの研究プロジェクトについて議論している。それらのうち3つがマイクロカーネルを使っている。IEEEはその論文をウェブサイトに載せている。そして、誰かがそれへのリンクをスラッシュドットにポストし、昔のマイクロカーネル対モノリシックシステムの議論を再熱させた。私はその論文に喜んで共著したことを認める一方で、絶対に「Linuxは時代遅れ」議論の再現を予期しなかった。

それから、Linusは回答したが、それは私達が別の小さな論争を持とうとしているかのように見える。いいだろう。だが、どうか皆さん、技術的議論を貫こうではありませんか。

Linusの主張
Linusの根本的見解は、マイクロカーネルが分散アルゴリズムを必要とし、それらは扱いにくいということだ。Maarten van Steenと私はそれらを扱うを書いたけれども、分散アルゴリズムが至って進展していないことを認める。私も過去10年、2つの分散システムAmoeba(LAN用)とGlobe(WAN用)を設計し、書き、リリースして来た。分散アルゴリズムの問題は、失う可能性のあるメッセージを参照する共通した時間の欠如と、リモートプロセスが死んでいるのか又はただ遅れているのかについて不確実性があることだ。単一のマシン上のマイクロカーネルベースのオペレーティングシステムに対して、これらの問題は当てはまらない。従って私は、分散アルゴリズムが難しいという点ついてはLinusに賛成である一方で、それは当面の議論には無関係である。

更に、ユーザ空間のコンポーネントの大部分はドライバーであり、それらは直接にサーバとやり取りする。キャラクタデバイス・ドライバーは厳密に同じプロトコル(バイトストリームを読み、書く)に従い、ブロックデバイス・ドライバーは厳密に同じプロトコル(ブロックを読み書きする)に従う。ユーザ空間のサーバの数は相当に小さい。すなわち、ファイルサーバ、プロセスサーバ、ネットワークサーバ、リインカーネーションサーバ、データストア、その他諸々である。各自はきちんと定義された仕事を持ち、他のシステムときちんとやり取りする。例えばデータストアは、有効なサーバの緩い連結のために、公開又は予約購読サービスを与える。サーバの数は将来的にも増えることはない。その複雑性は全く御し易い。これは推論ではない。私達は何と言っても既に実装している。MINIX 3をインストールし、コードを検証してみなさい。

Linusはまた、共有データ構造は素晴らしい考えであると指摘した。ここは、私達は反対だ。貴方がオペレーティングシステムの教科コースを取ったことがあるのであれば、教科コースで如何に時間を取って、テキストブックで如何にスペースを割いて、相互排他と協調プロセス同期に割当てていたか、憶えているはずである。2つまたはそれより以上のプロセスが同じデータ構造にアクセス出来る時、自分の首を絞めないように、貴方は非常に注意しなければならない。セマフォ、モニタ、ミュテックス、その他素晴らしい道具を使っていても、うまくやるのは非常に困難である。

私の見解は出来る限り共有データ構造を避ける方がいい。システムは、他者から内部構造を完全に隠蔽する小さなモジュールで構成されるべきである。他のモジュールが仕事依頼出来るために「薄い」インターフェースがうまく定義されていなければならない。それがオブジェクト指向の肝心なところ、つまり情報を隠蔽し、共有しないことなのである。(Dave Parnas風に言えば)情報隠蔽は素晴らしいと私は考える。インターフェースを変えない限り、システムの正しさに影響することなく、貴方の意のままにデータ構造、アルゴリズム、モジュールの設計を変えられることを意味する。ソフトウェアエンジニアリングのすべての教科コースはこれを教えている。ところが実際は、Linusは、オブジェクト指向プログラミングの過去20年間の業績を心得違いだと言っている。私はそれは買わない。

各モジュールに他のモジュールのデータ構造に立入らないようにさせるならば、次の論理的ステップは、このルールをMMUハードウェアに強制するための異なるアドレス空間内に各モジュールを配置することである。これを一オペレーティングシステムに適用する時、マイクロカーネルと、メッセージと上手く定義されたインターフェースとプロトコルを使用してコミュニケーションするユーザモードプロセスの集まりを得る。ずっと明快に、もっと保守し易い設計に近づいている。当然、Linusはモノリシックカーネルでの経験で理由付けしていて、疑いも無くマイクロカーネルまたは分散システムに詳しくない。私自身の経験は、自分で設計し、実装し、複数のマイクロカーネルベースのオペレーティングシステムをリリースしたことに基づいている。これが、私達に何が困難で何がそうではないのかについて異なる大局的見方を与えている。

信頼出来るオペレーティングシステムの問題点全般の異なる見地として、Jonathan Shapiroによる"Debunking Linus's Latest"と題されたエッセイを見られたい。

マイクロカーネルは現実なのか?
一言で言えば、イエスである。フォーラムにおいて「マイクロカーネルがそれ程よいなら、何故無いのか?」という、終りなきコメントがスラッシュドット・マンディ(8日月曜日)に殺到した。実際にあるのだ。MINIX 3の他に以下がある。

QNX
Integrity
PikeOS
Symbian
L4Linux
Singularity
K42
Mac OS X
HURD
Coyotos

QNXは実際の商業システムに広く使用されている。例えばCiscoのtop-of-the-line routerはそれを使っている。私は、Ciscoがパフォーマンスに非常に気を使っていることを保証する。

信頼性が絶対的基準である、軍隊及び航空宇宙市場での主要なオペレーティングシステムの一つが、別のマイクロカーネルであるGreen Hills' Integrityだ。

PikeOSは、国防、航空宇宙、自動車、及び産業アプリケーションで広く使用されるマイクロカーネルベースのリアルタイムシステムである。

Symbianはまた別の人気あるマイクロカーネルで、主にセルフォーンで使用される。しかしながら、Symbianは純粋なマイクロカーネルではないが、ハイブリッドである。カーネル内にドライバーがあり、ファイルシステム、ネットワーキング、テレフォニーがユーザ空間にある。

私は引き続きどんどん進められるだろうが、明らかに信頼性とセキュリティがミッションクリティカルであるアプリケーションにおいては、設計者は殆どマイクロカーネルベースのOSを選んでいる。Linusは個人的に組込みリアルタイムシステム(ここでは、パーフォーマンス、信頼性、セキュリティが最高である)に関心無いだろうが、これらの市場は膨大で、参加企業はマイクロカーネルが、この目的を達成する方法だと考えている。

PCの世界を見れば、L4Linuxがあり、ドレスデン技術大学のHermann Härtigグループによって書かれた。数パーセントのパフォーマンス損失を伴いながらも、L4マイクロカーネルの上に、ユーザ空間内にLinuxのすべてを走らせている。マイクロカーネルを使用することが、ドレスデン技術大学の人達に、L4の上にDROPS(リアルタイム)、NIZZA(セキュリティ)のような新システムの構築をさせているのであるが、これら新フィーチャーのために変更の必要性無しでフルになおもLinuxにアクセスを持っている。このようにして、彼等は新しい機能を実験し、なおもレガシィプログラムを走らせている。他のグループも、組込みシステムでレガシィアプリケーションをサポートするために設計された擬似仮想LinuxであるWombatのように、オペレーティングシステム研究のためL4マイクロカーネルを使用している。
別のL4ベースのOSがTUD-OSであり、他にもある。

マイクロソフト社もマイクロカーネルに興味を持っている。他人事でなく、モノリシックカーネルの保守が頭痛の種であることを理解している。Windows NT 3.1はマイクロカーネルでの気乗りしない最初の試みだったが、上手く行かず、1990年代初期のハードウェアではパフォーマンスが充分ではなかった。そして、しばらくはそのアイデアを断念した。だが、最近モダーンなハードウェア上で再度試み、その結果がSingularityだった。今私は、多くの人がマイクロソフト社がやるのであれば、きっと馬鹿に違いないと決めてかかったのだが、Singularityプロジェクトを率いた人達、Galen HuntとJim Larusは非常に賢明な人達であり、Wnidowsが滅茶苦茶な状態であり新しいアプローチが必要であることをよく理解していることを知っている。Vistaで働いている人でさえ、問題があることを認識し、私の提唱する通り、ユーザ空間にドライバーを移動している。

約10年前、IBMは非常に大きい顧客のための、新しい高パフォーマンスオペレーティングシステムをスクラッチから開発を始めた。そして、明白な設計目標は、システムの機能をカーネルからサーバ及びアプリケーションプログラムへ移すことであったが、マイクロカーネルに類似である。K42と呼ばれるこのシステムは、米国エネルギー省やその他に配置されている。

Mac OS Xは多少マイクロカーネル的である。内部的には、改良されたMach版マイクロカーネルの上にBerkeley UNIXが載っている。カーネルモードですべてが走るので(若干のパフォーマンスのために)、本当のマイクロカーネルではないが、何年か前にカーネギ・メロン大学はユーザ空間内のMach上で走るBerkeley UNIXを持っていた。だから、L4Linuxと同様に若干のパフォーマンスの損失があれど、おそらく再度出来るであろう。本当のマイクロカーネルシステムのため、Apple BSDコード(Darwin)をL4へポートするWorkが進行中である。

掛け声は高く実行は伴っていないけれども、GNU HURDもマイクロカーネルをベースとしている。実のところ、それには2つがある。一つ目はMachをベースとし、二つ目はL4をベースとした。三つ目のバージョンは、おそらくまた別のマイクロカーネルCoyotosをベースとするであろう。emacs、gccその他広く使用されているソフトウェアの作者であり、GPLの創始者で、権威のあるMacArthur天才賞受賞者でもあるRichard StallmanによってHURDは設計された。

開発中の別のマイクロカーネルはEROSの後継のCoyotosである。ここでは、信頼性よりもセキュリティに焦点があるが、膨れ上がったカーネルが両方の面で問題があるという意味で、その二つの問題は関連がある。

私は、XenTrangoのようなハイパーバイザを議論さえしていない。これらは多くの意味でマイクロカーネルと全く異なっているが、カーネルモードでは小さなコードのみ走るという特徴を共有しており、信頼出来るセキュアな構築の鍵となると私は信じる。

MINIX 3、QNX、Integrity、PikeOS、Symbian、L4Linux、Singularity、K42、HURD、 Coyotosやその他は折衷的な束であるが、マイクロカーネルの中の何かを見ようとするのは私一人ではないことは明らかだ。マイクロカーネルが左程広く使われていない理由を不思議に思っているなら、システムには多くの惰性があるからである。何故LinuxまたはMac OS XがWindowsを置換していないのか? つまり、システムには多くの惰性があるからだ。ブラジルの大部分の車が自家製のエチルアルコールで走り、だからブラジルでは乗り物の燃料を比較的殆ど使わない。何故米国がそうしないで、一触即発の中近東への依存を減らそうとしないのか? システムには多くの惰性があるからだ。たとえ優れた実践であっても、人々に変えさせることは非常に難しい。

私は何を実証しようとしているのか?
実際には、MINIX 3と私の研究は一般的にはマイクロカーネルについてではない。それは高信頼度で自己回復なオペレーティングシステムの構築である。リセットボタンのあるPCを造る製造業者が何処にもいないのであれば、私は仕事を終わらせようと考えている。テレビはリセットボタンを持たない。ステレオはリセットボタンを持たない。車はリセットボタンを持たない。それらはソフトウェアのフル実装であるが、ソフトウェアを必要ではない。ソフトウェアが多くクラッシュするのであるから、コンピュータはリセットボタンを必要とする。コンピュータソフトウェアは車のソフトウェアと違うことを私は知っているが、ユーザはどちらも動いて欲しいのであって、ソフトウェアが車を動かしコンピュータを動かさないはずである理由の講義を欲しく無い。コンピュータのライフタイムより、故障間隔期間がずっと長いオペレーティングシステムを私は構築したい。それによって平均的なユーザはクラッシュの経験を持たない。MINIX 3は多くの特別な信頼性フィーチャーを持つ。私達は決して成し遂げていない(例えば、バーチャルメモリは今年後半の課題にある)が、信頼性の改善が現時点でオペレーティングシステム設計者に差し迫っている最も大きな変更であると思う。平均的ユーザはハードウェアからのフィーチャーまたは搾取には気も止めないが、コンピュータを時間の100%完璧に動かすこととクラッシュが無いことに気を止める。お祖母さんに聞いてみなさい。

それでは、マイクロカーネルがこの目標でしなければならないことは何か? マイクロカーネルは自己回復システムの構築を可能にする。それが私の関心事であり、私の研究対象である。OSの大部分をユーザプロセスの束(一つは各ドライバーと様々なサーバのためにある)に移すことは、コードのバグの数を減らさないが、深刻なダメージを与える各バグの力を大いに低下させ、信頼出来るコンピューティングベースのサイズをも減らす。私達の設計では、大部分のドライバーが失敗する時、リインカーネーションサーバが新鮮なコピーをリスタート出来るし、オプション的にデバッギングのために死んだドライバーのイメージをセーブし、イベントを記録して、電子メールをアドミニストレータまたはデベロッパに送る等が出来る。システムは走り続け、最悪でも作業またはデータの損失無しで優雅にシャットダウンする。リインカーネーションサーバ自身、ファイルサーバ、プロセスサーバのような、いくつかのコンポーネントはクリティカルであり、それらを失うことはシステムをクラッシュさせるが、システムを完全破壊する、欠陥のあるオーディオ、プリンタ、またはスキャナドライバーを許す理由は全く無い。それらはリスタートさせるべきであり、作業は続行すべきである。自身の失敗を感知し修理出来るシステムが私達の目標だ。マイクロカーネルではこれが容易に出来る。ワシントン大学の研究者がNooksで素晴らしい仕事をしているし、カールスルーエ大学の一グループも仮想マシン技術で興味ある仕事をしているけれども、モノリシックカーネルでは非常に困難だ。

LinuxについてLinusが語る
最近の更新。LinusはLinuxがひどく肥大化して来ているという認識に至っている。彼のコメントはここで見られたい。

宿題
マイクロカーネルは何が出来て何が出来ないかを独善的に述べる前に、 MINIX 3を得て試してみて、知識有る独善者になれ。貴方の信用度を落とすことになる。MINIX 3の設計について更に勉強するためには、IEEE Computer5月号の論文、USENIX ;loginにある"MINIX 3でのモジュラーシステムプログラミング"、または"信頼出来ないデバイスドライバーにも関わらず、信頼出来るオペレーティングシステムを構築するための軽量メソッド"を見られたい。

ここまでお付き合いしてくださり、感謝します。

この議論は、taro-nishino (32033)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
  • # と、往々にして自分に跳ね返ってくることのある一言をタイトルに付けてみる。

     マイクロカーネルOSだと、データは全てコピー渡しになるからその分処理が遅くなるけれど、渡すデータの量(必要なバッファサイズ)が都度はっきりしているので原理上バッファオーバーフローが起こりえない。とか。
     コピー渡しするデータの構造(I/F)さえ決まっていれば個々のプログラムが内部的にどの様な形でデータを持っていても良い。従ってkernelの構造が変わってもデバイスドライバを書き換えないでよい。とか。
     kernelさえ死ななければ他のものは動的に繋いだり切り離したり出来るのでダウンタイムが減らせる。とか。

     こういった基本的なことぐらいは判った上でマイクロカーネルはダメだなんて行っているのだろうかと(ry

    --
    ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
    • 先ず、読み易いように改行なり、工夫をしていただけませんか。

      ところで、貴方のコメントは誰に対してのコメントなんでしょうか?
      私の思い着いた対象者として、以下の三者です。
      それぞれの場合に付き、私のコメントを入れました。

      ①私に対して
      私はどちらのサイドの主張にも肩入れしてません。OSの根本設計
      思想に物を申すほど偉くはございませんので。

      ②Linus氏に対して
      こんなところに書かず、氏の目が届くような場所で、正々堂々と英語
      で貴方の主張を書いて下さい。

      ③スラッシュドット本家で、マイクロカーネルを扱き下ろした投稿者に対して
      これも②と同様に、スラッシュドット本家へ行って、該当投稿者と議論して下さい。

      親コメント
      • >先ず、読み易いように改行なり、工夫をしていただけませんか。
         失礼しました。
         広い画面では読みにくかったのですね、以後気をつけるようにします。
         (私は普段いわゆるVGA解像度画面で読んでいます。)

         またコメント先についても今後気をつけるようにします。
         (スラッシュドット本家で該当投稿者を見つけられれば、議論を試みます。)

         以上、失礼しました。

        --
        ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
        親コメント
  • その上で、僅かに気になった箇所があるので、コメントをつけさせて頂きます。
    (以下、改行は引用者)

    (原文)
    Over the years there have been endless postings on forums such as Slashdot
    about how microkernels are slow,
    how microkernels are hard to program,
    how they aren't in use commercially,
    and a lot of other nonsense.

    貴訳
    マイクロカーネルが如何に遅いか、
    マイクロカーネルが如何にプログラミングが難しいか、
    如何に商業的に使用されていないかについて、
    長年スラッシュドットのようなフォーラムに絶えずポストされて来ているが、
    大量のナンセンスである。

    試訳
    マイクロカーネルが如何に遅いか、
    マイクロカーネルが如何にプログラミングが難しいか、
    如何に商業的に使用されていないかだの、
    その他諸々の大量のナンセンスな話が、
    長年スラッシュドットのようなフォーラムに絶えずポストされている。

    "a lot of other nonsense"は、
    「例示した話がポストされている事がナンセンスだ」
    と言いたいなのではなく、
    「例示した話の他にも、その手の事っていっぱいあるよね」
    という意味合いではないでしょうか。

    • "a lot of other nonsense"は、
      「例示した話がポストされている事がナンセンスだ」
      と言いたいなのではなく、
      「例示した話の他にも、その手の事っていっぱいあるよね」
      という意味合いではないでしょうか。

      有難うございます。この種の指摘は歓迎でございます。
      貴方の仰る通りです。otherを見落としていました。謹んで
      訂正させていただきます。

      親コメント
typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...