アプリケーションエンジニアとインフラエンジニアの溝を埋めてくれる良書 「プロのための Linuxシステム・10年効く技術」

2012–08–08

これまでアプリケーションエンジニアとして、Linuxをインフラとするシステム開発に何度も携わりました。 ただ、ある程度のシステム規模になるとアプリケーションエンジニアとインフラエンジニアは分業になることが多かったです。 ミドルウェアの構築にしても最低限の構築はやって来ましたが、レイヤの低いところはインフラエンジニアの方に頼る部分が多かったです。 また、JVMのパフォーマンスチューニングでもOSレベルのチューニングになるとインフラエンジニアの方に頼ることが多かったです。

本書はそんなアプリケーションエンジニアとインフラエンジニアの溝を埋めてくれる良書でした。 章ごとに独立している構成ですが、最初から読み進めることをお勧めします。

Linuxの内部構造を押さえる

第1章はLinuxの内部構造についてです。 内部構造とは具体的に言うと、Linuxのディスク・プロセス・メモリについての説明になります。 恥ずかしながらこれまではforkとexecの違いをきちんと説明できませんでした。 この点も誰もが通るログインの流れの中でわかりやすく説明してくれます。

またプロセスの調査方法については、コマンドラインの便利な使い方が載っており、思わず膝を打ちます。 まさに先輩エンジニアの作業を見て盗んだり、先輩エンジニアからあっと驚く豆知識を披露してもらったりという感覚をこの本からもらうことができました。

スクリプトあれこれ

これまでの仕事で大規模なスクリプトを書くことは無いですが、小さなバッチプログラムや自動化のためのスクリプトを書くことは数多くありました。 第3章ではスクリプトの書き方のコツを伝授してもらえます。 変数の展開などあやふやな知識だったところを強化することが出来ました。 サンプルも実践的でためになります。

kernelソースの読み方

この本を買った理由の半分は、この章が読みたかったからでした。 第4章ではカーネルソースの読み方を実際にソースを追いながら見ていきます。 うるう秒に対応しているかをソースから読み解いていくところは、実際のコードリーディングでプロは何を考えるかまで書いてあり、圧巻です。 最低限のC言語の知識と、若干のLinuxの癖を理解すれば、ここまでkernelソースが読めるもんなのかと感心しました。 この癖を見極めるのが超えられない大きな壁の一つなのかもしれないですけど、この本があれば高速道路を利用してkernelに近づくことができます。

最後に

そもそも家で使っているメインOSはGentoo Linuxなわけで。 自分の道具をこんなに理解できていないのは今まで悔しい限りでした。 少し霧が晴れた気がします。