マイクロカーネル Operaティンシステム: Archi構造、利点
⚡ スマートサマリー
マイクロカーネルは、オペレーティングシステムの最小限の中核部分であり、メモリ管理、プロセススケジューリング、プロセス間通信といった必要不可欠な機能のみをカーネル空間に保持し、デバイスドライバ、ファイルサーバー、その他のサービスはユーザー空間で個別に実行される。

マイクロカーネルを学ぶ前に、まず以下のことを理解しておきましょう。
カーネルとは?
カーネルは、OSの重要な構成要素であり、システムリソースを管理します。また、コンピュータのソフトウェアとハードウェア間の橋渡し役も果たします。ブートローダーの次に起動時にロードされる最初のプログラムの一つです。カーネルは、様々なプログラムがマシンのハードウェアに安全にアクセスできるようにする役割も担っています。さらに、特定のアプリケーションが特定のハードウェアをいつ、どのくらいの時間使用するかを決定する役割も果たします。
マイクロカーネルとは何ですか?
マイクロカーネルとは、オペレーティングシステムを実装するために必要な最小限の機能、データ、および特徴を含むソフトウェアまたはコードのことです。オペレーティングシステムの最も基本的な機能を実行するのに十分な最小限のメカニズムを提供します。多くのポリシーを課さないため、オペレーティングシステムの他の部分の実装を可能にします。
マイクロカーネルとそのユーザー環境は通常、 C++ or Cプログラミング言語 アセンブリ言語を少し使用すれば可能です。ただし、高度なコーディングを使用すれば、他の実装言語でも可能です。
モノリシック カーネルとは何ですか?
モノリシックカーネルは、次のようなすべての基本システムサービスを実行します。 プロセス管理カーネル空間では、メモリ管理、I/O通信、割り込み処理、ファイルシステムなどが行われます。
このタイプのカーネル方式では、オペレーティングシステム全体がカーネルモードで単一のプログラムとして実行されます。オペレーティングシステムは、複数のプロシージャがリンクされて大きな実行可能なバイナリプログラムとして記述されます。
マイクロカーネル Archi構造
マイクロカーネルは、オペレーティングシステムを正しく実装する上で最も重要な部分です。下の図に示すように、マイクロカーネルはメモリ管理、プロセススケジューリング機構、プロセス間通信といった基本的な機能を担っています。
マイクロカーネルベース Operaティングシステム
マイクロカーネルは、特権レベルで実行される唯一のソフトウェアです。OSのその他の重要な機能はカーネルモードから切り離され、ユーザーモードで実行されます。これらの機能には、デバイスドライバ、アプリケーション、ファイルサーバー、プロセス間通信などが含まれます。
マイクロカーネルのコンポーネント
マイクロカーネルは、システムのコア機能のみで構成されます。コンポーネントは、外部に配置するとシステムの機能が損なわれる場合にのみ、マイクロカーネルに含められます。その他の不要なコンポーネントはすべてユーザーモードに配置する必要があります。
マイクロカーネルに必要とされる最小限の機能は以下のとおりです。
- メモリ管理 アドレス空間のようなメカニズムはマイクロカーネルに含めるべきである。また、メモリ保護機能も備えている。
- プロセッサのスケジューリング メカニズムには、プロセス スケジューラとスレッド スケジューラが含まれている必要があります。
- プロセス間通信は、独自のアドレス空間を実行するサーバーを管理します。
マイクロカーネルとモノリシックカーネルの違い
| 技術パラメータ | モノリシック カーネル | マイクロカーネル |
|---|---|---|
| Basic | これは、単一のアドレス空間で実行される大規模なプロセスです。 | これは、サーバーと呼ばれる個別のプロセスに分割できます。 |
| Code | モノリシック カーネルを作成するために必要なコードは少なくなります。 | マイクロカーネルを作成するには、より多くのコードが必要です。 |
| セキュリティ | サービスがクラッシュすると、モノリシック カーネル内のシステム全体が崩壊します。 | サービスがクラッシュしても、マイクロカーネルの動作には影響しません。 |
| コミュニケーション | これは単一の静的バイナリファイルです。 | サーバーはIPCを介して通信します。 |
| 例: | Linux、BSD、 Microsoft Windows (95、98、私) Solaris、OS-9、AIX、DOS、XTS-400など。 | L4Linux、QNX、Symbian、K42、Mac OS X、 Integrity, etc. |
マイクロカーネルの利点
マイクロカーネルを使用するメリットは以下のとおりです。
- マイクロカーネルアーキテクチャは小型で独立しているため、より優れた性能を発揮できる。
- マイクロカーネルは、システムの機能を阻害する可能性のあるコンポーネントのみが含まれているため、安全です。
- システムの拡張が容易になったため、カーネルに影響を与えることなくシステムアプリケーションに追加できる。
- マイクロカーネルはモジュール式であり、カーネル本体に手を加えることなく、異なるモジュールを交換、再ロード、または変更することができる。
- モノリシック システムと比較すると、システム クラッシュが少なくなります。
- マイクロカーネルインターフェースは、よりモジュール化されたシステム構造を実現するのに役立ちます。
- 再コンパイルせずに新機能を追加できます。
- サーバーの不具合も、他のユーザープログラムの不具合と同様に、個別に特定されます。
- マイクロカーネルシステムは柔軟性が高いため、異なるサーバーによって実装された異なる戦略やAPIがシステム内で共存できる。
- カーネルモードで実行されるコード量が減少することで、セキュリティと安定性が向上する。
マイクロカーネルの欠点
マイクロカーネルを使用する際の欠点/デメリットは以下のとおりです。
- マイクロカーネルシステムでサービスを提供するには、通常のモノリシックシステムに比べてコストがかかる。
- ドライバがプロシージャまたはプロセスとして実装されている場合、それぞれコンテキストスイッチまたは関数呼び出しが必要になります。
- マイクロカーネル システムのパフォーマンスは重要ではないため、何らかの問題が発生する可能性があります。

