5/24 に開催されたNSEGの「Linuxのしくみ」読書会の第4回に参加しました。参加者4名。さらに減った!
今回は、第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です。