概要
[試して理解]Linux のしくみ【増補改訂版】を読みました。 感想を書きます。
前提
目的
本書を読んだ背景は以下です。
- 2023年7月〜9月の目標の注力分野の 1 つに SRE・DevOps を掲げていた
- SRE 本で、SRE の必要な技術的なスキルに「UNIX システムの内部とネットワーキング(レイヤー 1 から 3)に関する専門知識」が挙げられていたので OS のしくみを知りたかった
- 「入門 モダン Linux」を読んだ際に翻訳者が読んだ後のステップアップとして、[試して理解]Linux のしくみを挙げていたので読むことにした
- 個人的にまとめていた、Linux を学ぶための参考書籍まとめの 1 冊だった
事前知識
書籍では、以下の本を読んでいました。
学生のころに所属していた研究室で Linux を利用していたため、ごく基本的なことはわかります。 しかし、CS 系の学科ではなかったため、CPU やメモリの動きは知見があまりなく、基本情報技術者試験で学んだ程度です。 加えて、学部生だったころに、本書の改訂前を読んで理解が進まず一度読むのをやめた経験から、苦手意識を持っています。
著者の方が Forkwell の勉強会「『Linux のしくみ 増補改訂版』発売記念イベント~ Linux のしくみのしくみ」で本書の構成を解説した動画を事前に視聴しました。 本の構成を著者観点から解説されるので本書を読む前に視聴することを強くお勧めします。
また、著者のブログの紹介記事も一読することをお勧めします。
satoru-takeuchi.hatenablog.com
読了時間
精読が必要だと考えたため、個人で本書の記述内容をそれっぽく MIRO で書き出しながら進めていました。 最後の 2 章を除けば、1 章に約 2 時間かけて勉強していました。 そのため 11(12 章があるが最後の 2 章は合計で 2 時間)× 2 時間で 22 時間ほどで読み切りました。 しかし、M1Mac の Docker で作成した Ubuntu で実験していたため、少し読み飛ばしている部分があります。 物理マシンで実験ができれば、もっと時間がかかっていたと考えています。
感想
ハンズオン形式で学べてフルカラー印刷で図も多く、Linux の低レイヤ周りを学ぶのに非常に良い書籍だと思いました。 そのため、当初の目的だった「OS のしくみを知る」を達成できました。 良かった点と読み進めるのが難しかった点をそれぞれ挙げていきます。
良かった点は 2 つあります。
1 つめは、ハンズオン形式であることです。
OS レベルの低レイヤの知識は、図と文字だけであることが多いです。
基本情報技術者試験の勉強をしていたときも、雰囲気と暗記で乗り切りました。
その点、本書はハンズオンの手順が記載されており、コマンドの結果と見方が記載されているので、非常に学びやすく良い経験になりました。
2 つめは、図がフルカラーのため、CPU やメモリの動作が非常にわかりやすいことです。
加えて、ハンズオンと合わせて、どのような動きになっているのか非常にわかりやすく読み進めやすかったです。
特に、裏表紙にも記載されている「本書で学べる Linux の機能」は Linux の機能だけでなく、本書のロードマップにもなっているため、俯瞰して読み進めることができました。
読み進めるのが難しかった点は 2 あります。
1 つめは実験環境を物理的に用意することです。
自分は、Mac 以外に PC を持っておらず、読み進めるために PC を用意するのはハードルが高かったです。
そのため、Docker を用いて実験環境を用意しました。
このことについては、zenn の記事「[試して理解]Linux のしくみ【増補改訂版】」の実験環境を Docker で作成する方法と詰まったこと(M1Mac)にまとめました。
しかし、さまざまな点において動作確認する際に制限があったため、実験可能な部分では Docker を用いて動作確認し、ちゃんと理解するには物理環境の用意をお勧めします。
2 つめは、個人的な話になりますが、本書を読むときに必要な習熟度です。
自身が、ほとんど Linux について知見がないときに本書を読んだときに挫折した経験から、低レイヤに興味があるからといって、いきなり読み進めるのは難しいと思いました。
そこで、入門 モダン Linuxを一読することをお勧めします。
理由は入門 モダン Linuxの翻訳者は本書と同じ方で、入門 モダン Linuxを入門書と上級者向けの本の間として紹介しています。
上級者向けの本として、[試して理解]Linux のしくみを挙げています。
そのため、入門 モダン Linuxを読んで上級者向けの本が読めそうだと判断したら、[試して理解]Linux のしくみを読む段階だと思いました。
難しければ、入門書を読み直すと良いと考えています。
入門 モダン Linuxについては、以下のスライドを参照ください。
次に関連で勉強すること
引き続き、Linux 周りの勉強をします。 以下の本を想定しています。
- Go ならわかるシステムプログラミング 第 2 版
- 他著者が紹介していた書籍
まとめ
Linux のしくみについてフルカラーで丁寧に説明された書籍で、Linux におけるユーザ空間、カーネル空間、ハードウェアといった低レイヤを学ぶのに最適な書籍でした。 読み進めるのが難しい点は、実験環境を物理的に用意することです。 しかし、用意できないことを理由に本書を読まないのはもったいないので、Docker を利用してできることころを読み進めるのをお勧めします。 そのための方法については、「[試して理解]Linux のしくみ【増補改訂版】」の実験環境を Docker で作成する方法と詰まったこと(M1Mac)を参照してください。 書籍を読み進められそうか判断するには、入門 モダン Linuxを一読するのをお勧めします。 今後も引き続き OS 周りの知見を深めていきます。