「[試して理解]Linuxのしくみ ~実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】」が発売されます

拙著、「[試して理解]Linuxのしくみ ~実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】」が10/17日に発売されることになりました。本記事はその宣伝のためのブログエントリです。

まずは本書がどのようなものかについて説明し、その後に、すでに第一版を読まれている方向けに第一版と本書の差分について説明します。

どんな本なのか

筆者は過去にLinuxカーネル開発をしていたのですが、そのころから次のような思いをずっと持っていました。

  • OS、とくにOSカーネルについての広く浅い知識はOSカーネル開発者だけではなく多くの技術者にとって役立つはず
  • 当時OSカーネルについての知識を得ようとすると、OSを作ったりサポートしたりする人用の難しくて分厚い本の読解が避けられないという状況をなんとかしたい

これらの思いを踏まえ、Linuxを題材としてLinuxカーネルのソースは一切読まずに、実験と図解によってLinuxカーネルを広く浅く理解するというコンセプトの本が2018年に「[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識」として生まれました。

本書はこの第一版にさまざまな改善を加えたパワーアップ版という位置付けです。

本書は以下のような12個の章からできています。

  • 第1章 Linuxの概要
  • 第2章 プロセス管理(基礎編)
  • 第3章 プロセススケジューラ
  • 第4章 メモリ管理システム
  • 第5章 プロセス管理(応用編)
  • (NEW!) 第6章 デバイスアクセス
  • 第7章 ファイルシステム
  • 第8章 記憶階層
  • 第9章 ブロック層
  • (NEW!) 第10章 仮想化機能
  • (NEW!) 第11章 コンテナ
  • (NEW!) 第12章 cgroup

各章の詳細な説明はここでは省略しますが、冒頭にリンクを張った書籍ページに実際の紙面のサンプルや目次などが掲載されているので、興味のあるかたはごらんください。

第一版との違い

第一版は幸いにも多くの読者にご購入いただき、かつ、筆者のねらい通りの効果を得られたというフィードバックもたくさん得られました。その一方で、次のような厳しいご指摘もいただきました。

  • DockerやKubernetes全盛のいま、仮想化、コンテナについて触れられていない
  • 実験プログラムがC言語で書かれている時点で読む気が失せる
  • 誤字脱字などの不備が多すぎる*1
  • 全体的に図が素っ気なくて殺伐としている

増補改訂版はこれらすべてが大幅に改善されています。

まず、新コンテンツとして前述した通り、仮想マシンのしくみについて述べた「仮想化機能」の章と、仮想マシンより軽量にアプリケーション実行環境を作る「コンテナ」の章を追加しました。これら二つの章とかかわりの深い、システムのリソース制御について扱う「cgroup」の章も追加しました。さらにカーネルがデバイスを具体的にどのように制御するかについて述べた「デバイスアクセス」の章も追記しました。第一版から存在していた文書も、前のまま残しているわけではなく、出版後にいただいたフィードバックをもとに大幅に加筆修正をしています。おそらく第一版から半分くらいは書き換わっているのではないかと思います。

実験プログラムについては、馴染みのある方が(すくなくともC言語よりは)多いであろうGo言語とPythonでほとんど書き直しました。グラフ化する方法が知りたいという要望も少なからずあったので、実験プログラムの結果をグラフ化するスクリプトも本書に掲載しています。あらためて筆者自身で第一版と第二版を比較してみると、ソースの可読性が大幅に上がったと感じました。サンプルコードのリポジトリはすでに公開しているので、興味のあるかたはごらんください。

誤字脱字などの不備については、不備を可能な限り少なくするために、技術のプロ、および、文書表現のプロにかたがたにあらたに本作りに参加していただきました。技術面では、様々なバックグラウンドを持つ20人以上の技術者のかたがたからのレビューを受けました。文書表現の面では、技術レビューが終わった後に、外部校正のかたに文書を磨き上げていただきました。

図の殺伐感については、第一版はモノクロだったものを今回はフルカラーに生まれ変わったこと、および、デザイナーさんに頑張っていただいて、私が書いた殺伐とした図をかなり図をポップにしていただいたので、見やすさが大幅に上がりました。

終わりに

長々と説明してきましたが、本書のコンセプトや各章のコンテンツに興味のあるかたは、是非本書をお買い求めいただけたらと思います。ご自身はすでに本書を必要としないレベルにOSカーネルのことをご存じのかたも、「この人にカーネルの知識が少しあれば伸びそう」といかたに本書を勧めていただけると助かります。また、第一版から大幅に改善していますので、第一版を読まれたかたにも、ぜひ読んでいただけたらと思います。

販促用動画も作ったので、よろしければこちらもごらんください。おわり。

youtu.be

*1:現在市場に出回っている3刷においては指摘された不備はほぼすべて修正されています