カーネル
読み:カーネル
外語:kernel
階層構造化されたオペレーティングシステム(OS)のうち、基幹部分。英語で、中心部、核心の意。
概要
コンピューターシステムの様々な資源(リソース)の管理を行ない、抽象化することでハードウェアとソフトウェア間のやり取りを仲介する。
また、一つのシステム上で複数のプログラムの実行を助けるために、プロセスの抽象化、プロセス間通信、システムコールの提供などの機能を提供する。
趣旨は同じでも様々な実現方法があり、これが延いては無数のオペレーティングシステムを生み出す主因となっている。
構造
カーネル空間
メモリー保護がなされている近代的なOSでは、ブートローダーがカーネルプログラムを特権モード(カーネルモード)で実行する。
カーネルプログラムはメモリーに常駐し、システムとしての機能が必要なときにユーザープログラムから呼び出されることになる。
メモリー空間の管理はカーネルによって様々ではあるが、大きく、カーネル空間とユーザー空間に分けられることになる。カーネル空間で動作するプログラムは特権があり、ハードウェアを操作することができるが、ユーザー空間で動作するプログラムは特権がないため、必要になり次第、カーネルの所定のシステムコールを呼ぶことになる。
機能
カーネルの機能に定義があるわけではないが、概ね、次のような機能が提供される。
設計
その機能を提供する方法は様々存在する。現在、次のような設計がよく用いられている。
一般的な枠組みに入らない「その他」もある。
シングルタスクのMS-DOSですらカーネル(MSDOS.SYS)は存在するが、中にはカーネルが無いとするuuu(Unununium)なるOS?も存在する。
再検索