【かーねる】

カーネル とは?

最終更新:
💡 OSの中核で、計算機の資源を管理するプログラム

OSの中核としてCPU時間・メモリ・機器へのアクセスなどを管理するプログラム。OS全体との違い、システムコール、Linuxの内部ドライバーとアプリ向け互換性を解説します。

📌 このページのポイント
カーネル:OSの中核で資源を管理ユーザー空間のアプリ例:ファイルを開きたいシステムコールカーネルCPU時間メモリ機器アクセスドライバー等と協力ハードウェア保存装置などへの要求OSにはほかの道具やライブラリも含まれる
LinuxでアプリがOSの機能を使う要求の流れを簡略化しています。すべての計算が毎回カーネルを通るわけではありません。返答や他の経路は省略しています。
ひよこ ひよこ
カーネルは、OSそのもの?
ペンギン先生 ペンギン先生
OSの中核となるプログラムだよ。CPUをどの処理に使わせるか、メモリをどう管理するか、機器への要求をどう扱うかなどを担う。OS全体には、それ以外のライブラリや操作のための道具も含まれる。
ひよこ ひよこ
アプリは、どうやって機器を使うの?
ペンギン先生 ペンギン先生
Linuxでは、ファイルを開くなどのOSの機能をシステムコールで利用する。アプリからライブラリを通して呼ぶこともある。カーネルが要求を受け、必要に応じてデバイスドライバーなどと協力する。
ひよこ ひよこ
カーネルがあれば、絶対に安全?
ペンギン先生 ペンギン先生
保証ではない。処理やメモリへのアクセスを管理する仕組みは大切だが、カーネル自体にも不具合はあり得る。管理機能があることと、どんな操作でも事故が起きないことは別だ。
ひよこ ひよこ
Linuxは、どこがカーネルなの?
ペンギン先生 ペンギン先生
Linuxカーネルは公開されたソースコードで開発されている中核部分だ。Linuxディストリビューションは、それにシステムの道具やライブラリなどを組み合わせて提供する。カーネルの版とディストリビューションの版は同じものではない。
ひよこ ひよこ
更新すると、アプリは全部動かなくなる?
ペンギン先生 ペンギン先生
そうとは限らない。Linuxはアプリが使うユーザー空間とのインターフェースの安定性を重視している。一方、カーネル内部のドライバー向けインターフェースは同じ安定性を約束しない。更新時は対象OSの案内と、使うドライバーの対応も確認しよう。
もっと詳しく知りたい人へ

シェルとカーネルは同じ?

別の役割です。シェルはコマンドなどを受け付けるユーザー空間のプログラムで、カーネルはOSの中核です。画面やコマンドから操作するときも、必要に応じてOSの機能を利用します。

カーネル内部のインターフェースが変わると、誰に影響する?

Linuxの資料では、カーネル外で開発されるドライバーなどについて、内部インターフェースやビルド条件の違いへの対応が必要と説明しています。アプリが使うシステムコールの互換性と一括りにしないことが大切です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「カーネル」って出てきたら「OSの中核で、計算機の資源を管理するプログラム」と思えばだいたいOK!
📖 おまけ:英語の意味
「Kernel」 = 核・中核
💬 OSの中心を表す呼び名です。画面に見えるデスクトップやアプリそのものを指す言葉ではありません。

参考資料

← 用語集にもどる