モノリシックカーネル 【monolithic kernel】
概要
モノリシックカーネル(monolithic kernel)とは、オペレーティングシステム(OS)の中核部分であるカーネル(kernel)の設計様式の一つで、主要な機能のすべてを同じメモリ空間に置き、一体的に運用するもの。カーネルの機能を最小限に絞り込み、機能の多くをモジュール(部品)として外部化する「マイクロカーネル」(microkernel)の対義語。モノリシックカーネルではカーネル内にデバイスドライバやファイルシステム、ネットワーク通信などの機能を一通り揃え、メモリ上のカーネル空間にすべてを展開する。OS上で実行されるソフトウェアはカーネルに対して直接、OSの提供する機能の呼び出しを依頼する。
すべてが一体化した設計のため、プログラム間の通信のためのオーバーヘッドなどが少なく性能的には有利だが、カーネル内の機能の一部に異常や不具合が生じるとシステム全体を巻き込んで停止してしまうことがある。
基本設計としてマイクロカーネル型を採用したOSでも、性能上の問題などから一部の機能をカーネル内に取り込んで高速に実行できるようにするといったモノリシック的な構造が組み込まれる場合があり、「ハイブリッドカーネル」(hybrid kernel)と呼ばれる。
マイクロカーネルが考案される以前のOSはすべてモノリシックカーネルであり、現代でもLinuxを始めとする主要なUNIX系OSのほとんどがモノリシックカーネルとして設計されている。WindowsやmacOS(Mac OS X)は旧世紀の製品(Windows 9x/Mac OS)は完全なモノリシックカーネルだったが、マイクロカーネルを基盤とする新世代の設計に移行した。実用上の要請から実際にはカーネルに様々な機能を取り込んでおり、ハイブリッドカーネルの例としてよく挙げられる。
(2018.11.10更新)