あさのひとりごとスマートフォン用の表示で見るあさのひとりごと3日坊主にならないように、全力を尽くします。記事は個人のひとりごとです。所属する組織の意見を代表するほど、仕事熱心じゃないです。HOMEBooksProfileこの広告は、90日以上更新していないブログに表示しています。Hatebu今はエンジニアではありませんが、いつかクラウドエンジニア/アーキテクトになりたい!わたしのひそかな目標でもあります。プラットフォーム技術を生業にするためには、ハードウエア/OS/ネットワークの深い知識は欠かせません。読ませていただきました。gihyo.jpわたしは、商用Unixしか基盤構築の実務経験が無く、Linuxは完全に独学でしかないため「プロ」ではなく完全に本書の対象読者です。そんな私ですが、大変勉強になりプラットフォーム技術に携わる多くの方におすすめしたいので書評をまとめました。前提読者この本の前提読者は「Linuxの使い方」ではなくタイトルの通り「Linuxのしくみ」つまり内部構造を理解したいエンジニアを対象にしています。第2版」の内容が頭に入っているとスムーズです。あと、Linuxのインストール/セットアップが自力でできる、基本的なコマンドは問題なく操作できるレベルのLinuxユーザであることが必要です。コンピュータシステムの概要OSとハードウエアの関係、OSの概要について説明があります。カーネルがハードウエアのリソース管理をどのように行っているのか、プロセスとはなにか、デバイスドライバとなにか、など基本的なことが沢山の図とともに説明されています。ユーザモードで実現する機能ここではシステムコールが「実験」をベースに説明されています。straceを介してPythonでHelloWorldしたときの挙動をみながら、write()システムコールが発行されてますよね!とか、親プロセスのプロセスIDを取得するコードを無限ループさせるとどうなるでしょう?などです。あと、ラッパー関数、標準Cライブラリなどなどの説明もあります。プロセス管理ここでは、fork()関数とexecve()関数についての解説があります。図を用いてプロセス生成の流れを説明し、親プロセス/子プロセスがメモリ空間にどう展開され、どう終了されるかが分かります。ここはややアセンブラの知識が必要になりますが、まったく知らない人も図をみてイメージできるので親切です。CASLIIぐらいの知識でぜんぜん大丈夫です。プロセススケジューラ40ページほどかけてプロセススケジューラの挙動を丁寧に解説されています。私もふくめて多くのLinuxユーザはカーネルがプロセススケジューラの機能を持っていて複数のプロセスを同時に動作させているのだなと理解していると思いますが、実際のところどのように「同時に動作させているようにみせかけている」かをたくさんの実験とともに解説されています。個人的には、、、nice()の挙動とかとてもわかりやすっ。Killerは何をやってくれる人なのかなどが解説されています。ここでも実験がたくさんあり、ページフォルトの実験やmalloc()、スワップの挙動などは難しく、私の頭脳ではちょっと別途改めて勉強が必要でしたが、、後半のCoWは「あ、、あああぁあぁあ、、、これは3年前のあのとき!あの本書いたときに読んでおきたかった、、、本!」という感じでとても分かりやすかったです。余談ですが、だいたい書籍では著者が書いたドラフト図を、初校でDTPのデザイナーの方が「いい感じ」に書いてくれるものなんですが、satさん本はすべての図が「殺風景」で、むしろこれはsatさん自らが「殺風景に書いてくれ!」とオーダーしないとできないレベルだと思われるので、いったい内部で何が起こっているのかが気になります。記憶階層ここでは、レジスタ/キャッシュ/メモリ/ストレージと記憶装置でどのようにデータが扱われているかが、ここでも「実験」をとおして見通せるようになっています。実際にファイルに書き出してどうなるかを追っていけるようになっています。ファイルシステムここでは、そもそもファイルシステムとはなんぞやから始まり、ジャーナリングのしくみ、コピーオンンライトでのファイル更新の様子などが、図をつかって説明されています。講義で黒板をみているような感じで、この上なく殺風景な図であるがゆえ、むしろシンプルに伝わる。ストレージデバイスHDDとSSDについてのしくみとデータの読み書きに関する実験が解説されています。エンジニアだった若いころ、某超エンタープライズ金融機関の基盤構築PJで一緒だった、Sunや富士通のエンジニアに教えてもらった(が、たいして頭に入っていない)のを思い出しました。スイングアームやプラッタの動きを居酒屋のお皿とお箸で早口のオタクが熱心に、、、そんな感じを煮詰めて本にした感じです。まとめとても良い本でした。タイトルや表紙が、明らかに自然派ママをターゲットとして意識している風なため、一見「本物のLinuxカーネルエンジニアたるものこうあるべき!」みたいなハードモードなものが綴られているのかなと思いましたが、中を開くとまったく異なるので正直驚きました。これはsatさんの頭の良さでもあると思いますが、さまざまな「実験」を通してカーネルの挙動と全体像を確認していくという、今までにない新感覚の目線でまとめられているので、論旨展開や情報の整理の仕方など読み物としても非常におもしろく、とてもインスパイアされました。ASA.はてなブログをはじめよう!dr_asaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。