マイクロカーネルとモノリシックカーネルの主な違いは、マイクロカーネルベースのシステムはOSサービスとカーネルが別々のアドレス空間にあるのに対し、モノリシックカーネルベースのシステムはOSサービスとカーネルが同じアドレス空間にあることである。
マイクロカーネルとモノリシックカーネルは、2種類のカーネルです。
カーネルはOSの核となる部分です。
そのため、カーネルの重要なコードを格納するための特別なメモリ領域が用意されています。
カーネルは、システム全体の正常な機能を維持するため、重要なコンポーネントです。
ハードウェアとプロセスの管理、ファイル処理、その他多くのタスクを実行します。
マイクロカーネルとは
マイクロカーネルは、OSのカスタマイズを可能にするカーネルの一種です。
特権モードで動作し、低レベルのアドレス空間管理とプロセス間通信(IPC)を提供する。
また、ファイルシステム、仮想メモリマネージャ、CPUスケジューラなどのOSサービスは、マイクロカーネルの上に乗っている。
各サービスは独自のアドレス空間を持ち、安全性を確保している。
さらに、アプリケーションも独自のアドレス空間を持っています。
したがって、アプリケーション、OSサービス、カーネルの間で保護されている。
図1: マイクロカーネル・アーキテクチャ
アプリケーションがOSサービスにサービスを要求すると、OSサービスは互いに通信して、アプリケーションに必要なサービスを提供する。
このとき、IPC(Inter Process Communication)がこの通信の確立を支援する。
全体として、マイクロカーネル・ベースのOSは拡張性に優れています。
また、アプリケーションの要求に応じて、OSのサービスをカスタマイズすることも可能である。
モノリシックカーネルとは
モノリシックカーネルを採用したシステムでは、各アプリケーションが独自のアドレス空間を持っています。
そのため、各アプリケーションは安全です。
また、カーネルにはすべてのOSサービスが含まれています。
したがって、アプリケーションはカーネルにサービスを要求することができます。
OSのサービスには、ファイルシステム、CPUスケジューラ、ネットワークアクセス、メモリマネージャなどがあります。
しかし、OSは別のアドレス空間にあります。
そのため、正常なアプリケーションや誤動作するアプリケーションから保護されています。
図2:モノリシック・カーネル・ベース・アーキテクチャ
アプリケーションがサービスを必要とする場合、アプリケーションのハードウェアアドレス空間はOSのハードウェアアドレス空間に切り替わって実行される。
マイクロカーネルとモノリシックカーネルの違い
定義
マイクロカーネルとは、OSを実装するために低レベルのアドレス空間管理、スレッド管理、プロセス間通信などの機構を提供するカーネルタイプです。
これに対し、モノリシックカーネルとは、オペレーティングシステムにおいて、オペレーティングシステム全体がカーネル空間で動作するカーネルの一種である。
これらの定義により、マイクロカーネルとモノリシックカーネルの主な違いを説明する。
OSサービス
マイクロカーネルとモノリシックカーネルの顕著な違いは、マイクロカーネルを使用したシステムでは、OSサービスとカーネルが分離していることである。
しかし、モノリシックカーネルでは、カーネルがOSサービスを含んでいる。
速度
スピードもマイクロカーネルとモノリシックカーネルの大きな違いです。
マイクロカーネルは遅く、モノリシックカーネルは速い。
失敗例
マイクロカーネルベースのシステムでは、1つのコンポーネントで障害が発生しても、他のコンポーネントに影響を与えることはない。
しかし、モノリシックカーネル・ベースのシステムでは、1つのコンポーネントで障害が発生すると、システム全体に影響を及ぼす。
したがって、この点もマイクロカーネルとモノリシックカーネルの重要な違いです。
カスタマイズ
マイクロカーネルとモノリシックカーネルのもう一つの違いは、マイクロカーネルは新しい機能を追加することが容易であり、カスタマイズ性が高いことである。
一方、モノリシックカーネルは、新しい機能を追加することが困難であり、カスタマイズができない。
マグニチュード
さらに、マイクロカーネルはサイズが小さく、モノリシックカーネルはサイズが大きい。
結論
カーネルには、マイクロカーネルとモノリシックカーネルがあります。
マイクロカーネルとモノリシックカーネルの違いは、マイクロカーネルベースのシステムはOSサービスとカーネルが別々のアドレス空間にあるのに対し、モノリシックカーネルベースのシステムはOSサービスとカーネルが同じアドレス空間にあることである。