マイクロカーネル
マイクロカーネルはオペレーティングシステム (OS) の機能を分割し、
カーネル空間で動作する部分を必要最小限にする
オペレーティングシステムの実装方法およびそのカーネル。
ユーザー空間で動作するプロセスによって機能を実装することで、以下のようなメリットがある。
- OS開発効率の向上(機能拡張、デバッグなどを容易に行える)
- システム全体を止めずにOSのアップデートを行うことができる。
- 必要な機能のみを提供するアプリケーションに特化したOSを構築することが容易になる。
代表的な実装
- Mach MacOSXやNextSTEPで使用。
- L4
- WindowsNT Microsoft独自実装のマイクロカーネルが利用。しかし現行NT系はすでにマイクロカーネルの範疇を逸脱している。(カーネル参照)
L4プロジェクトでは、高速なメッセージ通信の実装によって、
マイクロカーネルの欠点と言われた「メッセージ通信の多さによる非効率性」に対処することを
目的にあげており、各種の実装上の工夫によってモノリシックカーネルに
遜色ないパフォーマンスを出している。
モノリシックカーネルだとシステムが巨大で、人のメンテナンスの限界を超えるにちがいない、というのが動機の一つであり、マイクロカーネルが提唱されたころの議論では、いずれ全てのOSがこの手法に移行するだろうという見方も強かった。
現在ではこのような極論を言う人はいない。反証実例としてLinuxがあげられる。Linuxはモノリシックカーネルだが、それゆえに開発が行き詰まったことはないし、現在も世界で大量数が実稼動している。