マイクロカーネルアーキテクチャの利点の1つは、システム全体を再起動することなく、ネットワーキングやファイルシステムなどの基本的なサービスを停止/開始できることです。しかし、現在Linuxカーネル(常にそうでしたか?)が同じ効果を得るためにモジュールを使用するオプションを提供している場合、マイクロカーネルの(残りの)利点は何ですか?
ベストアンサー1
マイクロカーネル最も内部的で最も信頼性の高いモードで実行するには、以下のコードが必要です。フルカーネル。これには次のようないくつかの側面があります。
- マイクロカーネルを使用すると、不要な機能(接続されていない、または使用されていないハードウェア用のドライバなど)を自由にロードおよびアンロードできます。これは主にLinuxのモジュールを介して達成できます。
- マイクロカーネルはより強力です。カーネル以外のコンポーネントがクラッシュしても、システム全体には影響しません。欠陥のあるファイルシステムまたはデバイスドライバがLinuxシステムをクラッシュさせる可能性があります。コーディングの練習とテストに加えて、これらの問題を軽減するためにLinuxができることはありません。
- マイクロカーネルは小さいです。信頼できるコンピューティング財団。したがって、悪意のあるデバイスドライバやファイルシステムであってもシステム全体を制御することはできません。たとえば、最新のUSBガジェットのソースが疑わしいドライバは、ハードドライブを読み取ることができません。
- 前のポイントの結果は、一般ユーザーがモノリシックカーネル内のカーネルコンポーネントになる独自のコンポーネントをロードできることです。
Unix GUIは、ユーザー空間コードであるXウィンドウを介して提供されます(一部のビデオデバイスドライバを除く)。多くの最新のユニスは、通常のユーザーが以下を介してファイルシステムドライバをロードできるようにします。ヒューズ。一部のLinuxネットワークパケットフィルタリングは、ユーザーモードで実行できます。ただし、デバイスドライバ、スケジューラ、メモリマネージャ、およびほとんどのネットワークプロトコルはまだカーネルに制限されています。
Linuxとマイクロカーネルの古典的な(古い場合)読み取りは次のとおりです。タネンバウム - トバルズ議論。 20年が過ぎた今、Linuxはマイクロカーネル構造に向かって非常にゆっくり動いていると言えます(ロード可能なモジュールは非常に早く現れ、FUSEは後で現れました)。しかし、まだ行く道があります。
また変わった点は相関関係の増加である。仮想化デスクトップおよび高度な組み込みコンピュータ:特定の目的に応じて、関連する区別はカーネルとユーザーモードの違いではなく、カーネルモードとユーザーモードの違いです。管理プログラムとゲストオペレーティングシステム。