カーネル詳細 | ASAHIネット
HOME
キーワードトップ
その他
か
か
カーネル
カーネル詳細
カーネル
カーネル
(英:Kernel)とは、階層型に設計された
オペレーティングシステム
(
OS
) の中核となる部分である。
システム
の
リソース
を管理し、
ハードウェア
と
ソフトウェア
コンポーネント
のやりとりを管理する。
オペレーティングシステム
の基本
コンポーネント
として、
カーネル
は
メモリ
、
CPU
、
入出力
を中心とした
ハードウェア
を抽象化し、
ハードウェア
と
ソフトウェア
がやり取りできるようにする。また、ユーザープログラムのための機能として、
プロセス
の抽象化、
プロセス間通信
、
システム
コールなどを提供する。
これらの
タスク
は
カーネル
によって方式が異なり、設計も
実装
も異なる。
モノリシックカーネル
は全てを一つの仮想アドレス空間に格納されたコードで実
行
して性能を向上させようとする。
マイクロカーネル
はサービスの大部分をユーザー空間で実
行
し、コードの保守性と
モジュール
性を向上させようとする
An overview of Monolithic and Micro Kernels, by K.J.
。多くの
カーネル
はこの二つのカテゴリのいずれか、あるいは中間である。
概要
全てではないが、多くの
オペレーティングシステム
(
OS
) は
カーネル
を内包する。
ハードウェア
と
ソフトウェア
の間の通信を管理する
ソフトウェア
としての
カーネル
は、性能、
メモリ
効率、
セキュリティ
、プロセッサの
アーキテクチャ
などが複雑に絡んだ問題への妥協的解答である。
多くの場合、
ブート
ローダーが
カーネル
を特権モードの
プロセス
として
起動
する
最上位の特権レベルは、スーパーバイザーモード、
カーネル
モード、CPL0、リング0など様々な呼称がある。
。しかし、初期化が完了すると、
カーネル
はいわゆる
プロセス
としては存在せず、
ディスク
アクセス
などの高い特権レベルを必要とする処理を必要としたときにユーザプログラムから呼び出される機能の集合体として存在することになる。
カーネル
の処理の流れはユーザー
プロセス
の処理の流れの延長上にあり、
システム
コールによって
カーネル
に処理が渡り、終了するとユーザーに戻っていく。初期化時の
カーネル
の処理の流れは「アイドル
プロセス
」とか「collects」と呼ばれ、プロセッサが何もしていないときに実
行
される。
カーネル
開発はプログラミングの中でも複雑で難しい
タスク
のひとつと考えられる。
オペレーティングシステム
の中核部であるということは、高い性能を要求される最重要な
ソフトウェア
であり、正しく設計し
実装
することは難しい。
カーネル
はユーザプログラムの互換性や
移植
性を考慮する必要などから、設計が制限されることもあり、そのことがさらに開発を難しくしている。
「
カーネル
」『フリー百科事典
ウィキペディア
日本語版』(
http://ja.wikipedia.org/
)。2009年7月28日15時(日本時間)現在での最新版を取得。
「カーネル」トップに戻る