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