彼は何のカーネルを学んだのだろうか。*1最近の実用OSのソースコードってLinuxにせよWindowsにせよ、SMP対応のチューニングとか電源管理のために核の部分まで非常に複雑になってしまい、読んだりコードを追って動きを理解するのは難儀ではないか。Minixなら教育を意識して平易に実装されているしドキュメントも充実しているから読みやすいし、"Lions’ Commentary on UNIX (Ascii books)"に至っては昔はこんなにシンプルだったかと衝撃を受けるのだが。PDP-11のアセンブラなんて勉強したことないよとか、げ、これGOTO文とか細かいことを気にしてはいけない。Alan Kayが2万行でネットワークからGUIまで含んだ見通しのよい教育用OSを手掛けているらしいので楽しみにしている。とはいえ実務で触るのは複雑なOSなのだから早いうちから複雑なコードに見慣れておくこと自体が教育なのだという考え方もある。コンピュータ・アーキテクチャの全体像を押さえておきたいだけならばMinixでいいけれども、デバイスドライバ等のカーネルプログラミングを手掛けたければLinuxやWindows Research Kernel等で腰を据えて学んだ方がいいだろう。

カーネルって意外と汎用性のある知識ではある。特に最近の手に入りやすいOSってLinuxもBSDもMacintoshもWindowsも平準化してきて、ひとつ覚えれば何割かの概念は使い回せるようになった。技術史家としては平準化の背後にある構造に関心を抱きつつ、歴史的にはもっと多様な可能性が試みられたことに言及した上で、次の10年が組込系まで含めてMachライクになっているのか、意外とまたカンブリア大爆発っぽい展開も考えられるのか興味がある。

僕はカーネル技術を学ぶ価値に関して強調せずにはいられない。(略)そう感じるのは、僕がカーネルを学んだからである。

一般的に人は、既に学んだ事の価値は高く、まだ学んでいない事の価値は低く認識する物だ。だから、世の中は常に”既に学んだ者”によって必要性が強調される。しかし、それらが真に価値ある事かどうかは別の問題である。