マイクロカーネル Operaティンシステム: Archi構造、利点

MicroKernel について学ぶ前に、次のことを理解しましょう。

カーネルとは?

カーネルは、システム リソースを管理する OS の重要な部分です。 また、コンピュータのソフトウェアとハ​​ードウェアの間の橋渡しとしても機能します。 これは、起動時にブートローダーの後にロードされる最初のプログラムの XNUMX つです。 カーネルは、さまざまなプログラムに対してマシンのハードウェアへの安全なアクセスを提供する責任もあります。 また、特定のアプリケーションが特定のハードウェアをいつ、どのくらいの時間使用するかも決定します。

マイクロカーネルとは何ですか?

マイクロカーネル オペレーティング システムを実装するために必要な最小限の機能、データ、および特徴を含むソフトウェアまたはコードです。最小限のメカニズムを提供し、オペレーティング システムの最も基本的な機能を実行するのに十分です。多くのポリシーを課さないため、オペレーティング システムの他の部分を実装できます。

マイクロカーネルとそのユーザー環境は通常、 C++ or Cプログラミング言語 アセンブリ言語を少し使用すれば可能です。ただし、高度なコーディングを使用すれば、他の実装言語でも可能です。

モノリシック カーネルとは何ですか?

モノリシック カーネルは、次のようなすべての基本的なシステム サービスを実行します。 プロセス管理, カーネル空間におけるメモリ管理、I/O通信、割り込み処理、ファイルシステムなど。

このタイプのカーネル アプローチでは、オペレーティング システム全体がカーネル モードで単一のプログラムとして実行されます。オペレーティング システムは、一連のプロシージャとして記述され、それらがリンクされて大きな実行可能なバイナリ プログラムになります。

マイクロカーネル Archi構造

マイクロカーネルは、オペレーティング システムを正しく実装するための最も重要な部分です。以下の図から、マイクロカーネルがメモリ、プロセス スケジューリング メカニズム、プロセス間通信などの基本的な操作を実行していることがわかります。

マイクロカーネル Archi構造
マイクロカーネルベース Operaティングシステム

マイクロカーネルは、特権レベルで実行される唯一のソフトウェアです。 OS の他の重要な機能はカーネル モードから削除され、ユーザー モードで実行されます。 これらの機能には、デバイス ドライバー、アプリケーション、ファイル サーバー、プロセス間通信などが含まれます。

マイクロカーネルのコンポーネント

マイクロカーネルは、システムのコア機能のみで構成されます。 コンポーネントがマイクロカーネルに組み込まれるのは、コンポーネントを外部に置くとシステムの機能が中断される場合のみです。 他のすべての必須ではないコンポーネントはユーザー モードにする必要があります。

マイクロカーネルに必要な最小限の機能は次のとおりです。

  • メモリ管理 アドレス空間などのメカニズムはマイクロカーネルに含める必要があります。 メモリ保護機能も含まれています。
  • プロセッサのスケジューリング メカニズムには、プロセス スケジューラとスレッド スケジューラが含まれている必要があります。
  • プロセス間通信は、独自のアドレス空間を実行するサーバーを管理します。

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

Parameters モノリシックカーネル マイクロカーネル
Basic 単一のアドレス空間で実行される大規模なプロセスです これは、サーバーと呼ばれる個別のプロセスに分割できます。
Code モノリシック カーネルを作成するために必要なコードは少なくなります。 マイクロカーネルを作成するには、さらに多くのコードが必要です
セキュリティ サービスがクラッシュすると、モノリシック カーネル内のシステム全体が崩壊します。 サービスがクラッシュしても、マイクロカーネルの動作には影響しません。
コミュニケーション 単一の静的バイナリファイルです サーバーはIPCを介して通信します。
Linux、BSD、 Microsoft Windows (95,98、私)、 Solaris、OS-9、AIX、DOS、XTS-400など。 L4Linux、QNX、SymbianK42、Mac OS X、 Integrity, etc.

マイクロカーネルの利点

Microkernel を使用する利点と利点は次のとおりです。

  • マイクロカーネル アーキテクチャは小さく、分離されているため、より適切に機能します。
  • マイクロカーネルは、システムの機能を妨げるコンポーネントのみが含まれているため安全です。
  • システムの拡張はより容易になり、カーネルを妨げることなくシステム アプリケーションに追加できます。
  • マイクロカーネルはモジュール式であり、カーネルに触れることなく、さまざまなモジュールを交換、再ロード、変更できます。
  • モノリシック システムと比較すると、システム クラッシュが少なくなります。
  • マイクロカーネル インターフェイスは、よりモジュール化されたシステム構造を強制するのに役立ちます。
  • 再コンパイルせずに新機能を追加
  • サーバーの誤動作も、他のユーザー プログラムの誤動作と同様に分離されます。
  • マイクロカーネル システムは柔軟であるため、さまざまなサーバーによって実装されたさまざまな戦略と API がシステム内で共存できます。
  • セキュリティと安定性が向上すると、カーネル モードで実行されるコードの量が減少します。

マイクロカーネルのデメリット

Microkernel を使用する場合の欠点/短所は次のとおりです。

  • マイクロカーネルシステムでサービスを提供することは、通常のモノリシックシステムと比較して費用がかかります。
  • ドライバーがそれぞれプロシージャまたはプロセスとして実装される場合に必要なコンテキストスイッチまたは関数呼び出し。
  • マイクロカーネル システムのパフォーマンスは重要ではないため、何らかの問題が発生する可能性があります。

まとめ

  • カーネルは、システム リソースを管理する OS の重要な部分です。
  • マイクロカーネルは、オペレーティング システムを実装するために必要な最小限の機能、データ、および特徴を含むソフトウェアまたはコードです。
  • モノリシックカーネルアプローチでは、オペレーティングシステム全体がカーネルモードで単一のプログラムとして実行されます。
  • マイクロカーネルは、オペレーティング システムを正しく実装するための最も重要な部分です。
  • マイクロカーネルは、システムのコア機能のみで構成されます。
  • モノリシック カーネルは単一のアドレス空間で実行される大規模なプロセスですが、マイクロカーネルはサーバーと呼ばれる個別のプロセスに分割できます。
  • マイクロカーネルアーキテクチャは小さく、分離されているため、より効率的に機能します。
  • マイクロカーネル システムでのサービスの提供は、通常のモノリシック システムに比べて高価です