モノリシックカーネル

読み:モノリシックカーネル
外語:monolithic kernel 英語
品詞:名詞

オペレーティングシステム(OS)の機能の全てがカーネル空間内にあり、カーネルプロセスないしカーネルスレッドとして実行されるもの。

目次

モノリシックとは、モノリスのような一枚岩という意味であり、OSとしての機能の全てをカーネルで実現する設計手法である。

記憶装置の有効利用ができないなどの問題点があるが、逆に取り扱いが簡単で、一つで全ての処理が行なわれるため高速、といった利点もある。

現在のトレンドはこのモノリシックカーネルと正反対の特徴を持つマイクロカーネルではあるが、しかしPC UNIXとして有名なLinuxFreeBSDは、今もモノリシックカーネルである。

構造

初期には、本当にカーネルそのものが一つのプログラムだった頃もあった。

現在のようにOSが多機能化すると、全機能を一つのプログラムにするのは不可能である。そこでユーザー空間とは別にカーネル空間が用意され、また機能はカーネルモジュール(Linuxの場合)などと呼ばれるモジュール単位に分割された。こういったモジュールは、必要に応じてロードされ、カーネル空間でカーネルスレッドとして実行される。

ライブラリ

PC UNIXのカーネルは、その多くはCで作られている。

通常、Cでプログラムを書いた時に使われる標準Cライブラリは、ユーザー空間で動作するものである。カーネル空間では、カーネル空間で動作する別のライブラリを使う。このため、Cの標準関数であっても、カーネルでは仕様が違っていることも多い。

例えばCでよく使うmalloc関数なども、標準Cライブラリのmalloc(3)と違い、カーネル用のmalloc(9)は引数が二つ多いなど大きく仕様が変わっている。

利点

全てのOSサービスがカーネル空間内にあるため、ハードウェアへのアクセスが効率的である。

従って、デバイスドライバーなども、高効率になる。

欠点

全てのOSサービスがカーネル空間内にありカーネルスレッドとして実行されるが、原則としてカーネルスレッドを強制終了する事はできない。

強制終了ができるのは原則としてユーザープロセス(スレッド)だけで、もしカーネルプロセス(スレッド)に異常が発生すると通常はカーネルパニックとなり、結果としてシステム全体がクラッシュする。

用語の所属
カーネル
関連する用語
モノリシック
マイクロカーネル

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club