マイクロカーネル
【英】microkernel
マイクロカーネルとは、OSの中核部分であるソフトウェア群(カーネル)に必要最小限の機能だけを搭載することで、小型化と処理の高速化を図る手法のことである。あるいは、そのように設計されたカーネルのこともマイクロカーネルと呼ぶ。
通常のカーネルには備わっている機能は、独立した外部モジュールとして切り離されている。マイクロカーネル自体は、メモリー管理や割り込み要求、プロセス間交信など、汎用性の高い機能だけを備える。この構造がカーネル内部の処理の並列化を実現し、処理能率を向上している。同時に小型化も実現される。
マイクロカーネルの概念を取り入れた製品としては、カーネギーメロン大学が開発したMach(マーク)オペレーティングシステムなどが代表的である。Windows NTやWindows 2000の内部にもマイクロ カーネルの技術が取り入れられており、HAL(Hardware Abstraction Layer)と呼ばれるハードウェア依存部分が独立した形をとっている。
マイクロカーネルでは、外部機能はモジュール(プログラム部品)として外部に用意される。カーネルに出された処理要求の多くは、カーネル内部から外部モジュールを呼び出して行われることになる。モジュール化されることで、機能は整理しやすくなり、追加や移植が容易になるメリットがある。ただし、純粋なマイクロカーネルの構造にしてしまうと、サブシステム間での通信や、サブシステムとコアOSとの間でのスイッチにかかるオーバーヘッドが大きくなり、実用的でなくなる。そのためWindows 2000では、HALと各サブシステムとの間にExecutive(エグゼクティブ)と呼ばれる中間層を設け、ここにネットワークやグラフィックスの機能を組み込むことで、オーバーヘッドを低減させるようにしている。
マイクロカーナルに対して、従来のカーネルにおける(カーネルに様々な機能を実装していく)手法がは、モノリシックカーネルと呼ばれる。モノリシックカーネルを採用している代表的なOSとしてはLinuxがある。
|