Linux豆知識 028
カーネル(kernel)
公開日:2010年02月15日
前回は、Linus Torvalds氏についてのお話しでした。今回は、そのLinus Torvalds氏が開発した「カーネル(kernel)」についてです。
Linux kernelという言葉はよく耳にすると思います。しかし、「じゃあkernelって何?」と聞かれると、意外と答えられないと思います。では、kernelとは何か?「kernel」とは「中核」という訳語が当てはまりますが、簡単に言えばその通り「Linuxの中核となるプログラムがLinux kernelです」となります。そして、これはよく言われることですが、厳密には「Linux」と言った場合、このLinux kernelのことを指します(最近では、後述する「Linuxディストリビューション」をLinuxと呼ぶケースも増えてきています)。
さて、そのLinux kernel、「OSの中核となるプログラムです」と説明してもいまひとつピンと来ないかもしれません。具体的に何をやっているのか?というと、「ハードウェアを稼動させる指示を出す、もっと具体的には、メモリー管理、ファイルの管理、デバイスドライバとしての役割、プロセスの管理」などを担っています。例えて言えば、「ユーザからの指示に従ってハードウェアを稼動させる"頭脳"の役割を担っている」、という言い方ができるでしょうか。
さて、OSの中核を担う大切な大切なカーネルですが、カーネルだけではOSは動作しません。人の体が、脳だけでは動かないのと同じです。必要なものの一つが「インターフェイス」です。インターフェイスとは「仲介役」のことで、人の体で例えると神経に当たるでしょうか。「ユーザーインタフェイス」といえば「ユーザーとカーネルの仲介を行うプログラム」のことを指します。ユーザインタフェイスによって、ユーザの指示がカーネルに反映され、またさまざまな処理の結果がユーザに返ってくることになります。
Linuxディストリビューションとは、Linuxカーネルと、ユーザインターフェイスなどさまざまなプログラムをひとまとめにし、OSとしてユーザがすぐに使えるようにまとめたもののことを指します。初学者は、ほとんどの場合、このLinuxディストリビューションを入手して、Linuxを利用することになります。カーネルだけをOSとして動作させることはできません。もちろん、自分で他のアプリケーションを入手するなり自作するなりして・・・ということを行えばできますが、「カーネルだけを使って」というのは不可能だと思ってよいでしょう。