OSをまだあまり身近に感じられていないプログラマを対象に、Linuxがなんのためにどんなことをやっているのかを、実際にプログラムを動かしながら理解しようという趣旨の本。あまり難しい話には持っていかずにわかりやすくかつ実践的に迫っている点が特徴になっている。
大学のOSを対象にした講義などではどうしても「OSを作る人の論理」で解説がなされてしまうことが多いが、本書は、OSを使う側の視点に立とうとしているところがよいと思う。世の中、OSなんて小難しくてとっつきにくくブラックボックスとしてしか扱えないプログラマが多いので、そういう人のためのOS入門書としてはよく書かれている。
ただ敢えて厳しく書くと、著者はHPCが専門ということもあり、4章(プロセススケジューラ)や5章(メモリ管理)は非常にわかりやすく書かれているものの、7章(ファイルシステム)や8章(ストレージデバイス)は中途半端に感じられる。特にファイルシステムは、あまり実験的な例が出ていなくて、性能面よりも機能面を強調していて、また他の章に比べて具体的なファイルシステム名が前面に出すぎている。前半が非常に良いだけに、もう7章や8章は取っ払っても良かったんじゃないかとすら思える。
最近はLinux Kernelについての本は壊滅的だったりするので、そんな中で、本書は特に前半が非常によく書かれていて、OSの初心者にはオススメ。反面、それなりにOS開発に触れている人にとっては手応えがないのであえて買う必要はないのかなと思う。
下記はただの個人的な本書に関するメモです。
- $ swapon --show
- /sys/kernel/mm/transparent_hugepage/enabled
- /sys/devices/system/cpu/cpu0/cache/index0
- /proc/sys/vm/dirty_writeback_centisecs
- /sys/devices/system/cpu/cpu0/topology/thread_siblings_list