ソフトウェアの専門家はハードウェアの経済性を無視した
...または「ムーアは正しかったが、どちらも間違っていた」
この議論で見落とされた最大のことは、ムーアの法則で表現されているように、トランジスタサイズの縮小に起因するCPU製造技術と経済性の影響でした(CPUハードウェアについて多くのことを知っていたとしても驚くことではありません。 CPUの製造または経済性)。CPUで償却される固定製造コスト(ISA設計、CPU設計、CPU生産設備など)は急速に成長し、それによって規模の経済の価値が高まりました。単位あたりのCPUコスト(「バングの強さ」と「ワットの強さ」の観点から)が急落すると、CPUのコストは、価値を提供するためにこのような幅広い機能を選択するために償却する必要はありません。固定機能で爆発しました。CPUトランジスタの予算は指数関数的に増加し、
1. CPUスケールがCPUの多様性に勝つ
規模の経済の重要性により、ISA / CPUの利点は、より大きな(したがって、より広い)市場を対象としており、ISA / CPUの市場を狭める設計選択からの潜在的な利点よりも重要です。OSは、サポートされているISA / CPUごとに市場のより大きな部分に対応できるため、OSエコシステムを繁栄させるための移植演習の必要性はほとんどありません(またはまったく必要ありません)。問題の領域ISAとCPUのターゲットは非常に広範囲であるため、ほとんど重複しています。そのため、コンパイラ以外のソフトウェアでは、移植演習のサイズも小さくなりました。おそらく、トーバルズとタネンバウムの両方ISAまたはCPU固有である必要があるカーネル設計と実装の部分を過大評価しました。Tanenbaumが説明したように、最新のOSカーネルはCPUとISAの区別を抽象化します。ただし、最新のOSのCPU / ISA固有のコードは、マイクロカーネルよりもはるかに小さいです。割り込み処理/スケジューリング、メモリ管理、通信、I / Oを実装するのではなく、これらの非ポータブルビットはこれらのサービスの実装のごく一部に対応するだけであり、これらのコアOS機能のアーキテクチャの大部分も移植可能です。
2.オープンソースは戦いに勝ったが、戦争に負けた
投資額が大きいということは、固定機能製品によってコンピューティングの大部分が実行されることを意味します。製品を変更する機能は、顧客にとっての価値提案の一部ではありません。皮肉なことに、これらの固定機能デバイスではオープンソースが栄えていますが、多くの場合、これらの自由の利点は、エンドユーザーではなく製品を作る人によって実現されています(実際には当時のソフトウェア市場に当てはまりました:Microsoftオープンソースソフトウェアの大規模な消費者でしたが、顧客はそうではありませんでした)。同様に、オープンソースは他のどこよりも汎用デスクトップスペースで苦労していると主張することもできますが、Webおよびクラウドコンピューティングが成長するにつれて、デスクトップコンピューティングはより狭い目的(主にブラウザを実行する)にますます使用されています。残りの機能はクラウドで実行されます(皮肉なことに、主にオープンソースプラットフォーム上)。要するに、オープンソースは実際に汎用コンピューティング空間を所有していますが、市場はより洗練されています。コンピューティング製品のパッケージングは、汎用機能で停止することはあまりありませんが、オープンソースコンピューティングの利点の多くが製品の目標と矛盾する固定機能向けの製品に沿って継続します。
3. 2 n成長は固定k節約が重要ではないことを意味する
トランジスタバジェットの指数関数的な増加により、CISCアーキテクチャのトランジスタバジェットコストはほぼ完全に固定されていることがわかりました。RISCの戦略的利点は、複雑さをCPUの命令セットからコンパイラーに移したことです(おそらく、コンパイラー作成者は、アセンブリーでコーディングする人間の開発者よりも複雑なISAの恩恵がはるかに少ないという事実に一部動機付けられていますが、コンパイラーは、数学的に、したがって、より単純なISAを活用します。結果として生じるトランジスタの節約は、CPUパフォーマンスの改善に適用できます。警告は、より単純なISAによるトランジスタ予算の節約がほぼ修正されたことです(コンパイラー設計のオーバーヘッドもほぼ修正されました)。この固定された影響は、当時の予算の大きな部分でしたが、想像できるように、影響が取るに足らないものになるのに数回の指数関数的な成長しか必要ありません。前述のCPUモノカルチャーの重要性が急速に高まっていることと相まって、この急速に低下する影響は、新しいISAが確立する機会が非常に少ないことを意味しました。新しいISAが成功したとしても、現代の「RISC」ISAはRISC戦略で説明されている直交ISAではありません。トランジスタバジェットの継続的な成長と、特にSIMD処理の広範な適用性により、特定の機能に合わせて調整された新しい命令の採用が促進されているためです。前述のCPUモノカルチャーの重要性が急速に高まっていることと相まって、この急速に低下する影響は、新しいISAが確立する機会が非常に少ないことを意味しました。新しいISAが成功したとしても、現代の「RISC」ISAはRISC戦略で説明されている直交ISAではありません。トランジスタバジェットの継続的な成長と、特にSIMD処理の広範な適用性により、特定の機能に合わせて調整された新しい命令の採用が促進されているためです。前述のCPUモノカルチャーの重要性が急速に高まっていることと相まって、この急速に低下する影響は、新しいISAが確立する機会が非常に少ないことを意味しました。新しいISAが成功したとしても、現代の「RISC」ISAはRISC戦略で説明されている直交ISAではありません。トランジスタバジェットの継続的な成長と、特にSIMD処理の広範な適用性により、特定の機能に合わせて調整された新しい命令の採用が促進されているためです。
4.シンプル:懸念の分離。複雑:アドレス空間の分離。
最新のLinuxカーネルは(他のほとんどのカーネルと一緒に)マクロカーネルのかなり緩い定義に適合し、マイクロカーネルの狭い定義ではなく適合します。とはいえ、そのドライバーアーキテクチャ、動的にロードされるモジュール、およびカーネル空間通信をマイクロカーネルのメッセージパッシングにますます似たものにするマルチプロセッシング最適化により、その構造は、マクロカーネル設計(Linuxの設計で具体化される)よりも、マイクロカーネル設計(Minixで具体化される)により酷似します議論の時点で)。マイクロカーネル設計のように、Linuxカーネルは、他のすべてのOSコンポーネントに対して一般化された通信、スケジューリング、割り込み処理、およびメモリ管理を提供します。そのコンポーネントは、明確なコードとデータ構造を持つ傾向があります。モジュールは動的にロードされますが、固定インターフェースを介して通信する疎結合のポータブルコードは、マイクロカーネルの残りのプロパティを1つも使用しないでください。ユーザースペースプロセスではありません。結局、ムーアの法則は、移植性(Tannenbaumの懸念)やパフォーマンス(Torvaldsの懸念)などのハードウェアの懸念によって動機付けられた問題が減少することを保証しましたが、ソフトウェア開発の問題が最も重要になりました。アドレス空間の分離がもたらす残りの未実現の利点は、設計上の制限とコンポーネントインターフェイスの複雑さの増加によりOSソフトウェアに課せられる追加の手荷物よりも重要です。s法律により、移植性(Tanenbaumの懸念)やパフォーマンス(Torvaldsの懸念)などのハードウェアの懸念によって動機付けられた問題が減少することが保証されましたが、ソフトウェア開発の問題が最も重要になりました。アドレス空間の分離がもたらす残りの未実現の利点は、設計上の制限とコンポーネントインターフェイスの複雑さの増加によりOSソフトウェアに課せられる追加の手荷物よりも重要です。s法律により、移植性(Tanenbaumの懸念)やパフォーマンス(Torvaldsの懸念)などのハードウェアの懸念によって動機付けられた問題が減少することが保証されましたが、ソフトウェア開発の問題が最も重要になりました。アドレス空間の分離がもたらす残りの未実現の利点は、設計上の制限とコンポーネントインターフェイスの複雑さの増加によりOSソフトウェアに課せられる追加の手荷物よりも重要です。
興味深いことに、強力なトレンドとなっているのは、マイクロカーネルのようにハードウェアを抽象化するハイパーバイザーの出現です。ハイパーバイザーはマイクロカーネルであると主張する人もいます。ハイパーバイザーのアーキテクチャは異なります。マイクロカーネルが所有する責任は、その上にあるハイパーバイザーで多重化された「ゲスト」カーネルによって処理され、ハイパーバイザーの抽象化は一般的なメッセージングとメモリアドレス空間ではなく、主に実際のハードウェアエミュレーションです。
結論として:将来は、最も厳密でないセマンティクスを採用する人々を支持します
* ..または「nitpickersは未来を予測するのにうんざりする」
実際には、討論における多くの正誤はセマンティクスの問題です(そして、それはトーバルズが主張していたことの一部であり、私見タネンバウムは完全に感謝していませんでした)。議論の外には非常に多くの要素が関与しているため、将来について正確に定義することは困難です。セマンティクスが緩いということは、ダーツボード上の予測が他の人の予測よりも大きいことを意味します。セマンティクスを無視すると、TorvaldsとTanenbaumの両方が進めた議論は、多くの点で正しかったのですが、ごくわずかな点で間違っていました。
tl; dr
ほとんどのISAはRISCのセマンティック定義に適合しませんが、当時のRISC CPUの特徴であった設計上の利点のほとんどを利用します。CPU固有のOSの量は、予想されるTanenbaumよりも少なく、もちろんTorvaldsです。オープンソースは汎用コンピューティングを支配していますが、その市場の消費者は主に、オープンソースソフトウェアのメリットの多くが実現されていない、より固定機能の製品にコンピューティングをパッケージ化する人々です。アドレス空間間でOS機能を分離することは有益ではありませんでしたが、「仮想」ハードウェア間でOS機能を分離することには利点があります。予測が正しかったと主張したい場合は、トーバルズ氏と同じように、可能な限り意味論的な操作の余地を残してください。
PS最後に皮肉なことに、Linus Torvaldsは、できるだけ多くの新しい機能をユーザー空間やLinuxカーネルの外に維持することの最も強力な支持者の1人です。