2023年になって、最初に読んだ本がこちらになります。
以前から、話題になっていたそうで書籍自体は過去に出版されたものの増改訂版だそうです。
過去に出版された書籍
大きな違いとしては、旧版ではサンプルコードが全てC言語で記述されているのに対して、新版ではPythonとGoが採用されています。ただ、部分的にC言語が使われている箇所がありました。またサンプルの多くにはシェルスクリプトが使われていました。
「[試して理解]Linuxのしくみ」を読み終えたので書評もといレビューを書いてみようと思います。
どんな本か
タイトル通りLinuxの仕組みについて広く、深掘らずに解説がされています。ここで「広く浅く」と書かずに「広く、深掘らず」と書いたのは著者が冒頭で「本書は難しい理論には踏み込まず...」と記載しており、読み終えて「確かにそうだったな」と感じたからです。
OSに関する書籍は非常にマニアックというか、分厚く詳細まで解説されているイメージがあります。すでにOSについての知識がある方が知識を深めるには良書なのでしょうが、自分のようなレベルの人間には内容が重すぎるのです(それだけ巨大なテーマだと言えばそうなのですが...)。
とはいえ、ライトな書籍だと上から下をなぞっただけ...のような「うん、知ってた」と感じる書籍が多く、ちょうどいい感じの本がありませんでした。
ただ、この「[試して理解]Linuxのしくみ」は軽すぎず重すぎずと非常にちょうど良い本でした。図解も多く、難しくなりがちな部分は上手く簡略化されていました。自分は部分的にしかコードを動かしていませんが、筆者の実行結果が記載されているので、解説されている通りにカーネルが処理をしているんだなと非常に納得感を得られました。
実行されているプロセスが実際に切り替わっていく様子を描画したグラフが最高でした。
(載せられないのがつらい...!)
おすすめ出来る人
OSについてあまり知らない人、ただ解説を見ているだけだと飽きてしまう人にはぴったりだと思います。逆にすでにOSについてある程度、知識がある方が読む本ではないと思います。深堀りをする本ではなく、浅い部分を掘り下げていき次へステップアップする本という印象です。
また以下のような方にもおすすめできません。
- Linuxを全く触ったことがない人(というかターミナル≒黒い画面)
- パソコンの基本的な構成(CPUやメモリ、レジスタ)について何も知らない人
- プロセスやスレッドについて何も知らない人
サポート
正誤表や意見を書き込めるスプレッドシートです。今時はこういったものがスプレッドシートで管理されているのすごい。 docs.google.com
サンプルコードがプッシュされているgithubのレポジトリです。 github.com
最後に
自分が書籍を読んでまとめたメモを公開しているので、興味がある方はぜひご覧ください。
ただ、先ほども書いたように実際にコードを動かしてみるか、筆者がコードを動作させた結果と描画されたグラフが非常に納得感を得るために重要だと思うので、実際に手にとって読んでみることをおすすめします。