「Linuxのしくみ」を読んだのでその紹介

こんにちは。
ジェネラボスタッフのSetoguchiです。
最近「Linuxのしくみ」を読んだので、その書評を書きたいと思います。

概要

書籍のタイトルの通り、Linuxサーバが動作する上でどのような仕組みで動いているかを記した本です。
普段Linuxを使っているけど、より深い部分の実装をイメージしづらい人にオススメしたい本でした。

内容について

各章では、以下の通りLinuxの構成要素について網羅されています。

  • システムコールなどよりハードウェアに近い部分の実装
  • 子プロセスを生成する時の挙動
  • CPUリソース(コア)の使い方、ハイパースレッディングの使いどころ
  • メモリ・キャッシュ管理
  • ハードディスクなど記憶媒体との連携
  • ファイルシステムの仕組み

また、Linuxの仕組みを理解するためのプログラムのソースが書籍内に記載されている&githubで公開されているため、プログラムを実行してどのような挙動をするか確認することでよりLinuxのしくみについて理解を深められる内容になっています。
序盤は手打ちでプログラムを書けますが、ボリュームが増えてくるとgitでコード取ってきた方が楽ですし、著者も言っていますが目的はLinuxの仕組みを理解することなので、コードはそこまで理解せずにプログラムを走らせるだけでよいと思います。

著者がプログラムを実行した環境は実機であり、実機上でプログラムを動作させることが推奨されてはいますが、気軽に試せる実機が無かったので、私はVagrantでUbuntuを起動して挙動を確認しました
Raspberry-pi Zeroで試している方もいたので、Raspberry-pi Zeroもありだと思います。

総評

大学でハードウェアや組み込み系プログラミングを学んでいた私としては、CPUについては理解している内容も多かったですが、メモリ周りの挙動やシステムコール周りの挙動など、書籍を読むことにより理解を深めることができました。
プログラム内ではシステムコールを実行したりしているので、システムコールのレベルで挙動を確認することでより深い理解を得られると思います。

注意点

発売されてすぐに購入したので初版を読んで、内容自体は割と大事なことが多いのですが、とても誤植が多かったです。
著者がLinuxのしくみご意見表(Googleスプレッドシート)を公開しているほどです。
現在は2刷まで出ていて、初版よりはだいぶ読みやすくなっているのではないかと思います。
※3刷でも修正される内容があるようなので、諸々気にせず読みたい方は3刷ぐらいから読むと良いと思います。

最後に

ジェネラボの年間プランをご契約いただいた方先着30名様に、ひとりあたり“1万円分” のIT関連書籍をリクエストできるキャンペーンを実施しています。詳細は 書籍リクエスト制度 をご参照ください。

ご不明な点があれば、問い合わせフォームからもお気軽にどうぞ。