『試して理解 Linuxのしくみ 実験と図解で学ぶOSとハードウェアの基礎知識』後編

こちらの本、ようやく読み終わりました。

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

ちなみに前編はこちら alek3.hatenablog.com

前編を踏襲して各章軽くまとめます。詳細にいきたいですが私の理解があまり足りていない感じです。

第5章 メモリ管理

単純な物理メモリの管理ではいくつかの問題が発生するので、仮想記憶を使いますという話になります。前半の方でプロセスをランダムに落とすOOM Killerという恐ろしい子の話が印象的でした。なんでこんなのあるんだ……。

第6章 記憶階層

レジスタキャッシュメモリ、メモリ、ストレージデバイスという記憶装置の階層構造において、いかにレジスタとメモリ間でのアクセスを減らし、キャッシュメモリに収めるかという話です。 ちなみに1Gバイトのファイルをキャッシュする作業があるのですが、私のvagrant上での仮想マシンはメモリが1Gバイトしかないので全部がキャッシュされず、読み出しもほとんど速くならないという結果になりました。

第7章 ファイルシステム

ファイルシステムの不整合を防ぐために何をしているかについて詳しく書いてありました。原子性を保つためにジャーナリングやコピーオンライトという仕組みが用いられています。

第8章 ストレージデバイス

主にHDDの話になります。シーケンシャルアクセスとランダムアクセス、支援機能のありなし、読み出しか書き込みで対比させながら速度を比較していました。SSDになると速度が3~5倍になります。

全般

図がものすごくたくさんあるので分かった気になるのが良いです。特にメモリ管理の章はあるとないとでは理解に雲泥の差が生まれるような気がします。
Cのプログラムは全く読まずコピペで済ませました。それでも動くので楽しいです。
一方で、エントリ内の雰囲気から感じられたように1回の通読でそんなに理解できたかというとそうでもない気がします。*1

また、誤字がかなりあるので正誤表を手元において読み進めるのをオススメします。

参考

『[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識』読了 - Smoky God Express

*1:この本を出題範囲にした大学の期末試験があったらめっちゃ身につきそう