マイクロカーネル
読み:マイクロカーネル
外語:micro kernel
オペレーティングシステム(OS)の機能のうち、必要最小限のみをカーネル空間内に置き、それ以外をユーザー空間に置く、カーネルの設計思想。
概要
旧来の、全ての機能が一枚岩になったモノリシックカーネルと比較すると、カーネル自体の規模を抑えて簡素化できる。
カーネルが受け持つのは、メモリー管理、プロセス管理、プロセス間通信などに限り、それら以外でOSとして必要なサービスは、システムサーバーと呼ばれるプロセスをユーザー空間で動作させることで提供する。
明確にモジュール化が行なわれるため全体として見通しが良い設計となるが、あらゆる場面でプロセス間通信が必要となることから、プロセス間通信によるオーバーヘッドが問題となる。
主な実装
- Mach
- ごく初期に開発されたもの。マイクロカーネル化されたのはMach 3.0からであり、元々マイクロカーネルとして設計されたわけではなかった。
このため、中途半端に巨大なマイクロカーネルであるとされている。次のようなOSで採用された(ABC順)。
ただし、Mac OS Xの実装はマイクロカーネルではない。
- L4
- Machにある様々な問題を解決することを目指した、第二世代マイクロカーネル。
徹底的なマイクロ化を進める一方、高速なメッセージ通信を実装することでパフォーマンスをも追求した。
QUALCOMMのリアルタイムOS「REX OS」のベースとして広く普及している。
- GNU Hurd
- UNIX互換のマイクロカーネルとして立案、開発が始まったが、完成しなかった。
現在公開されているHurdはカーネルではなく、Mach上で動作するサーバーである。
- BeOS
- 独自のマイクロカーネルを実装したGUI OSで、元々はPowerPC搭載機で動作し、その後PC/AT互換機に移植された。
再検索