カーネル 【kernel】

概要

カーネル(kernel)とは、オペレーティングシステム(OS)の中核となるソフトウェア。動作中のプログラムの実行状態を管理したり、ハードウェア資源を管理してプログラムハードウェアの機能を利用する手段を提供したりする。

カーネルはコンピュータの起動時にブートローダなどによって一番最初に起動され、特権モードなど強い権限を持つ特別な動作モード実行される。起動後は電源断や再起動まで常駐し続け、プログラムの起動や終了後の後始末(専有していたメモリ領域の回収など)をう。

CPUメインメモリストレージ、入出力機器、ネットワークなど、コンピュータを構成するハードウェア資源(デバイス)を管理する。装置の仕様の違いによらず同じ手順でアプリケーションソフトから利用できるよう抽象化された操作手段を提供する。

また、メモリ空間から各プログラムに必要な容量を割り当てたり(メモリ管理)、複数のプログラムを並行して実行できるようCPU実行するプログラムを短時間ごとに細かく切り替えたり(プロセス管理)、実行中のプログラム間でデータをやりとりする手段(プロセス間通信)を提供したりする。

カーネルがアプリケーションに提供する機能や、それを利用するために呼び出す命令や関数などのことを「システムコール」(system call)あるいは「スーパーバイザコール」(SVCsupervisor call)などという。

モノリシックカーネルとマイクロカーネル

OSの機能をほとんどカーネル内部に取り込み、巨大な単一のカーネルとして機能させる設計方針を「モノリシックカーネル」(monolithic kernel)、カーネルには最低限の機能しか実装せず、大半の機能をモジュール化して外部化する設計方針を「マイクロカーネル」(microkernel)という。

モノリシックカーネルは全体を緊密に連携でき性能上有利だが、一部の問題がシステム全体を巻き込みやすく安定性を確保するのが難しくなる。マイクロカーネルは外部化されたモジュール通信するための性能上のロス(オーバーヘッド)が生じるが、問題を局所化しやすく部分的な修正や入れ替えなどもいやすい。

両者の特徴を併せ持ち、全体としてはモノリシックカーネルとして設計されているが、限られた一部の機能をモジュール化してユーザー空間で実行するようにした設計を「ハイブリッドカーネル」(hybrid kernel)という。近年のWindowsmacOSなどがこれに分類される。

(2022.10.27更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。