質問: カーネルとはなんですか? 「カーネル」の定義と位置付けが今ひとつ曖昧なのですが、 どなたかご指導お願いします。
回答: 「カーネル」はオペレーティングシステムの中核部分を示す言葉ですが、ここ15年ほどの間に2つの意味ができています。 1.古典的なosにおける定義 オペレーシングシステムのからコマンドインタフェースを取り除いた部分。 主に,ファイルシステム、プロセス管理、ユーザ管理、通信、デバイス(cpuとメモリを含む)/リソース(システム設定を含む)管理、同期/タイマを指します。 2.新しいosにおける定義 古典的なカーネルの定義から上位へのシステムインタフェース(システムコール/api)と下位へのシステムインタフェース(デバイス管理部分)を取り除いて独立性を持たせたもの。 マイクロカーネル、カーネライズドカーネルと呼ばれる。 上位インタフェース、下位インタフェースは交換可能であり、一つのマイクロカーネルで多くのオペレーティングシステムのエミュレーションを可能とする。 例えばlinuxは古典的なカーネルを持つosでそのカーネル部分の多くが(親に当たる)minixカーネルからの流用です。 また、microsoft windowsも古典的なカーネルを持ちます。 対してmacosはmachのマイクロカーネルの流れを汲む(直接的にはmachマイクロカーネルで動作していたnextstepの流れを汲む)カーネライズドカーネルを持ちます。