「闘うプログラマー[新装版] ビル・ゲイツの野望を担った男達」を読んだ

ここ最近、週末は本屋で本を衝動買いして読書しています。
技術書ばかり買っているので、たまには読み物を読んでみようと思って「闘うプログラマー[新装版] ビル・ゲイツの野望を担った男達」を読んでみました。

闘うプログラマー[新装版]

闘うプログラマー[新装版]

ざっと流し読みしましたがとても面白かったです。

Windows NT の開発プロジェクトを描いた話で、その中心となった wikipedia:デビッド・カトラー (DECでVMSを開発した人)を中心に描いたドキュメンタリーです。

面白いエピソードがたくさんありました。
例えば、カトラーは NT のカーネルをページングさせない設計にしていたが、カーネギー・メロン大学wikipedia:Mach を開発していて Microsoft に転職していた wikipedia:リチャード・ラシッド の提案があって、最終的にカーネルをページングするようにしたと書かれています。

仕事で使っている Windows XP Professional のレジストリを変更してカーネルがページングされないようチューニングしていますが、これにはこんな歴史があったとのか思いました。具体的には以下の設定をしています。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\
名前: DisablePagingExecutive
種類: REG_DWORD
データ: 1

このチューニング方法を知った時は「カーネルをページングするのか」と思いましたが、NT を開発していた90年代初頭のパソコンのメモリは4MB程度だったらしいので当時はカーネルをページングさせるのは妥当な判断だったのだと思います。

その他にも、wikipedia:NT File Systemジャーナリング機能を実装したためにパフォーマンス問題で苦労した話しや、カトラーが「自分で作ったドッグフードを食え」と言って、NT の開発者に NT を使わせてイヤでもバグを直さざるをえないようにしたなど面白いエピソードがたくさん書かれています。