カーネル
Linuxは正確にはカーネルのことを指すということを前回の記事で解説しました。
では、カーネルとはいったい何なのでしょう。
カーネル(kernel)とは英語で「核」を意味します。
これは文字通り、カーネルがOSの核であることから、その名が付けられています。
カーネルが行っている動作は主に下記2つです。
・アプリケーションからの要求(システムコール)に応える
・ハードウェアからの応答をアプリケーションに伝える
実にシンプルですが、言い方を変えると、
「コンピュータを構成する全てのハードウェアとソフトウェアを管理している」
となり、最も重要な役割を担っていると言えるのです。
ではまず、コンピュータを構成するハードウェアとは何か考えてみましょう。
・CPU
・メモリ
・ハードディスク
・グラフィックボード
・ネットワークボード
・サウンドカード
他にもありますが、一例として上記のようなものが挙げられます。
では、ソフトウェアとは何でしょう。
・ワード
・エクセル
・アウトルック(メーラー)
・ウインドウズメディアプレイヤー
など、他にもたくさんあります。
(「アプリケーション」と「ソフトウェア」という用語が乱立してしまっていますが、両者の意味は異なります。詳しくはこちら → 「アプリケーションとソフトウェアの違い」)
ハードウェアはソフトウェアがないと何もできませんし、ソフトウェアはハードウェアがないとやはり何も出来ません。
持ちつ持たれつの関係が両者間であり、その両者を管理し結びつけているのがカーネルというわけです。
カーネルもプログラムであることには変わりありませんが、上記のとおりやってることが他と異なった特殊なプログラムであるということがわかると思います。