カーネルはOSにおける「梅干しの種の中身」
オペレーティングシステム(OS)の中核部分を、一般に「カーネル」(核)と呼ぶ。「核」とはどんなものかとえば、梅干しの種の中に入っている生ピーナッツみたいな部分のことだ。
カーネルという用語は、「シェル」(殻)という用語と対にして使われることもある(図1)。これは、OSを大きくみたときに、中心的な機能を実現する「カーネル」とユーザーとのやりとりを行なう付随的な「シェル」に切り分けた概念図だ。
WindowsというOSには、「電卓」のようなプログラムも含まれている。電卓はOSとして役割をなにも持っていないが、WindowsというOSの一部であるのは確かだ。Windowsはこれ以外にも、さまざまなファイルから構成されている。こうしたさまざまなファイルや機能などと、OSの中心的な機能を切り分ける言葉が「カーネル」である。
つまり、梅干しの種の周りにある果肉や殻は、「子孫を残す」という本来の目的を実現するものではない。では不要なのかというとそうではなく、殻は種を保護して、果肉により鳥類などについばんでもらって遠方へ運ばれるといったそれぞれの目的がある。中心的な機能ではないだけだ。
そういうわけで、OSのうち本来の機能を実現するための部分は、カーネルとして他と区別する。他の部分がなければ「製品」としてのOSはなりたたないが、機能という面でみれば、最低限必要なものをカーネルが実現する。
なお、Windows 7のカーネルはVistaのものの改良であり、おそらく大きく変わってはいないと思われるが、その詳細は公開されていない。またVistaのカーネルはWindows Server 2003のカーネルをベースにしたもので、基本的にはXPと同じである。と言うのも、Vistaのプロジェクトが仕切り直しになったときに、完成していたWindows Server 2003のカーネルをほぼそのまま使ったと言われているからだ。開発初期段階でマイクロソフトが、「WinFX」の一部として公開したカーネルとは異なっている。
この点からすると、Windows 7でもカーネルを含む「Ntoskrnl.exe」の内部は、そうそう大きく変更されていないと推測される。また、Vistaをカバーすると言われている解説書「Windows Internal 5th Edition」でも、カーネルに関する部分では、XPやWindows Server 2003の図とほとんど同じものが使われている。そのため、カーネルの機能という点では、XPからWindows 7までは、大きく変わっていないといえるだろう。
この連載の記事
-
第13回
PC
ARM版Windows 8実現の布石となったWindows 7の「MinWin」 -
第12回
PC
アプリがWindowsの機能を使うには? APIとDLLの仕組み -
第11回
PC
マルチコアCPUの消費電力はスケジューリングで変わる? -
第10回
PC
AMD FX向けにパッチで修正 スケジューラーが抱える難題 -
第9回
PC
マルチコアCPUを賢く使いこなす スケジューリングの秘密 -
第8回
PC
意味の違いがわかる? タスクとプロセスとスレッド -
第7回
PC
Windowsのメモリー管理をx86の仕組みから読み解く -
第6回
PC
メモリー不足を根本的に解決する64bit OSの仕組み -
第5回
PC
Windows 8でMetro Styleアプリを動かす「WinRT」 -
第4回
PC
Windowsを動かすデバイスドライバーの仕組み 前編 -
第3回
PC
OSの仕事はハードウェアをアプリから「隠す」こと? - この連載の一覧へ