microkernel
microkernelは、オペレーティングシステムの中心部であるカーネルの機能を最小限に抑える設計思想に基づいています。従来のmonolithic kernel(モノリシックカーネル)がファイルシステムやデバイスドライバなどの多くの機能をカーネル内に含んでいたのに対し、microkernelはそれらをユーザー空間に追い出し、カーネルにはプロセス間通信や基本的なメモリ管理などの不可欠な機能のみを残します。
設計上の利点とトレードオフ
このアプローチの最大の利点は、システムの安定性と信頼性の向上です。ユーザー空間で動作するサービスがクラッシュしても、カーネル自体は影響を受けないため、システム全体の停止を防ぐことができます。また、新しい機能を追加したり変更したりする際に、カーネル全体を再構築する必要がないため、拡張性にも優れています。
一方で、機能が分離されているため、サービス間の通信にメッセージパッシングという仕組みが必要となり、これがオーバーヘッドとなってパフォーマンスが低下するという課題があります。
実用的な文脈での使い分け
現代のシステムでは、純粋なmicrokernelだけでなく、利便性と性能のバランスを取ったhybrid kernel(ハイブリッドカーネル)が広く採用されています。例えば、WindowsやmacOSなどの一般的なオペレーティングシステムは、このハイブリッドなアプローチを組み合わせて実装されています。開発者がmicrokernelという言葉を使う際は、単にサイズが小さいことではなく、機能の分離によるモジュール性と堅牢性を重視したアーキテクチャであることを指しています。
意味
低レベルのアドレス空間管理、スレッド管理、プロセス間通信などの最も基本的なオペレーティングシステムサービスのみを提供し、その他のサービスをユーザー空間に移動させた最小限のコンピューターカーネルのこと
The system architecture utilizes a microkernel to improve stability and modularity.
そのシステムアーキテクチャは、安定性とモジュール性を向上させるためにマイクロカーネルを利用している。