マイクロカーネルとモノリシックカーネルの違いとは?

スポンサーリンク
スポンサーリンク


マイクロカーネルとモノリシックカーネルの主な違いは、マイクロカーネルベースのシステムは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サービスとカーネルが同じアドレス空間にあることである

タイトルとURLをコピーしました