第4回「Linuxのしくみ」読書会に参加しました

5/24 に開催されたNSEGの「Linuxのしくみ」読書会の第4回に参加しました。参加者4名。さらに減った!

nseg.connpass.com

今回は、第5章の途中(p.98)から第6章の途中(p.135)まで読みました。

個人的な収穫

今回の範囲では特に知らなかったことは無かったです。

誤植等

  • p.104 「before invalid access」のフォントが異なる。
  • p.130 誤植じゃないけど、sarの結果の1行が折り返されてて見にくい。興味があるのは kbmemused だけなのだから、右側は折り返さなくて見せなくてもいいような。

その他

ページテーブルのアドレスが「100-200」「200-300」となってて、「200」がどっちのページかわかりにくいという意見がありました。まあちょっと考えれば「100-199」「200-299」という意味だとわかるし、たぶん /proc/*/maps の出力に合わせたんだと思うんですが、説明があった方がわかりやすかったかも。

p.101の説明が「ページフォールトが発生するとSIGSEGVが起きる」みたいに読めてしまって違和感。説明も「物理メモリ未割り当て」ページのように書かれてるけど、p.122の用語での「プロセスには未割り当て」の状態のはず。「物理メモリ未割り当て」だとp.122の「プロセスに割り当て済みだが物理メモリは未割り当て」だと思ってしまいそう。

そういや昔のSolarisのmalloc()mmap()じゃなくてbrk()を使ってたなーと思いだした。そのためfree()してもプロセスサイズは減らなかった。mmap()を使うmalloc()を作ってLD_PRELOADで差し替えて遊んだりしてた。懐かしい。


次回は6/6です。

nseg.connpass.com