普段からLinuxを使ってはいるものの、仕組みを理解しているとは到底言えない状態であったため購入しました。


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


システムコール、プロセス、メモリ、ファイルシステムなど、まんべんなく幅広く抑えられています。

各々のセクションで、文字と図を用いた説明が一通りあった後に、主にC言語で記述された実験用のプログラムを実際に自分で動かしてみてどのような結果を得られるかというのを試すというのが基本の流れです。

実験プログラムに関しては自分はWSLで試したのですが、ネイティブでないということもあって[1]、一部想定した結果が得られなかったりしました。そういうところや8章のブロックデバイスの読み書きの実験に関しては本の実験結果を読んでやったことにしました。4章、5章あたりの実験プログラムは100行近いものがいくつかあります。ほとんど知らないC言語でそれくらいの行数をとりあえず書き写すというのは結構しんどい(C言語の学習のためにやっているわけではないのでなおさら)ものでなかなか内容も頭に入ってこなかったりしたのですが、途中からC言語の関数の意味を調べながら書き写すことで実験の内容もよく頭に入ってくるようになりました。とりあえずmallocがなにやってるのかわかったのでよかったです。また、実験プログラムは5章あたりまでがピークでそれ以降はあまり出てきません。

理解し辛いというところがないくらいわかりやすく書かれており、特に図解がわかりやすく、これが読み手の理解促進に大きく貢献しているのではないかと思います。自分の脳みそ的には良い難易度でしたが、ある程度CSの知識のある人であれば簡単かもしれません。例に漏れず既に初めの方の内容は既に頭の中に残っていないのですが、できれば簡単にもう一周しておきたいと思いました。


  1. いちおう、Ubuntuが入ったラップトップは持ってるんですが、GNOME慣れてないのでそこでストレス溜めたくなかった ↩︎