windhole publishing

風穴 江(Ko Kazaana/@windhole)のブログ

windhole publishingの書籍

(2019年08月27日(火)現在)

Linuxのプロセススケジューラ──カーネル0.01から5.0まで

booth.pm

著者:武内 覚(sat (@satoru_takeuchi) | Twitter
仕様:B5判、34ページ
初出:技術書典6(2019年04月14日)

Linuxカーネルのプロセススケジューラについて、歴史をひもときながら、やさしく解説する、武内覚氏の書き下ろし新刊! Linuxカーネル最初期の単純な仕組みから、その後に採用されたO(1)スケジューラ、CFS(Completely Fair Scheduler)まで、67点のカラー図版で理解することができます。

【目次】

  • はじめに
  • 用語集
  • 概要
  • スケジューラとは
  • v0.01〜v2.4.x:初期のスケジューラ
    • v0.01
    • v1.0
    • v2.0
    • ~v2.4
  • v2.6.0~v2.6.22:O(1)スケジューラ
    • v2.6.0
    • コラム:階層の複雑化
    • コラム:CentOS 3のひみつ
    • v2.6.12
  • v2.6.23~:Completely Fair Scheduler
    • O(1)スケジューラの諸問題
    • 新スケジューラ実装の争い
    • コラム: さらばCon Kolivas
    • v2.6.23
    • v2.6.24
    • v2.6.25
    • v2.6.37
    • v2.6.38
    • v3.2.2
    • v3.14
    • v5.0
  • おわりに

【サンプル】
LinuxScheduler_v1_sample.pdf - Google ドライブ


Ryzen SEGV Battle

windhole.booth.pm

著者:武内 覚(sat (@satoru_takeuchi) | Twitter
仕様:B5判、42ページ
初出:技術書典5(2018年10月08日)

「Ryzen SEGV Battle」と呼ばれた、CPUバグとの闘いを、当事者自らが記録したノンフィクション!

【目次】

  • はじめに
  • 新マシン購入……が、しかし
  • 調査環境
  • 犯人はgcc?
  • 問題詳細の確認
  • 類似事例の調査
  • Twitterでのお祭りと炎上
  • Phoronixで話題になる
  • 「容疑者」の絞り込み
    • WSLでの再現確認
    • 何がSEGVを引き起こしたのか?
    • なぜSEGVが起きたのか?
    • いろいろな回避策
  • まとめ
  • 筆者以外の人の調査
    • Hideki Eirakuさんによる解析
    • homuh0muさんによる解析
  • CEOに直訴
  • 個別対応の開始
  • 篤志家の登場
  • 交換品の試験
  • 再度の交換と三度目の正直
  • AMDが問題発生を認める
  • 後日談
  • おわりに
  • 付録:まとめ
    • 事象
    • 影響を受けるCPU
    • 根本原因
    • 発生条件
    • 修正状況
    • 回避方法

【サンプル】
stbook05「Ryzen SEGV Battle」サンプル.pdf - Google ドライブ

図解でわかるMeltdown

windhole.booth.pm

著者:武内 覚(sat (@satoru_takeuchi) | Twitter
仕様:B5判、44ページ
初出:技術書典4(2018年4月22日)

【目次】

  • はじめに
  • 概要
  • 前提知識
    • サイドチャネルアタック
    • キャッシュメモリ
    • Flush+Reload
    • アウトオブオーダー実行
    • 仮想記憶によるメモリアクセス権限
  • Meltdown
    • 脆弱性
    • 攻撃方法
    • 影響範囲
    • 対策
  • 参考文献

【サンプル】
stbook04「図解でわかるMeltdown」サンプル.pdf - Google ドライブ

はじめてのBtrfs

windhole.booth.pm

著者:武内 覚(sat (@satoru_takeuchi) | Twitter
仕様:B5判、カラー64ページ
初出:技術書典3(2018年4月22日)
(初出時「Btrfsの薄い本」を改題)


【目次】

  • はじめに
  • 機能概要
  • 使用方法
  • トラブルシューティング
  • 歴史
  • 参考文献

【サンプル】
stbook03「はじめてのBtrfs」サンプル(「Btrfsの薄い本」から改題).pdf - Google ドライブ

カーネルモジュール作成で学ぶLinuxカーネル開発の基礎知識【改訂第2版】

windhole.booth.pm

著者:武内 覚(sat (@satoru_takeuchi) | Twitter
仕様:B5判、カラー78ページ
初出:技術書典2(2017年4月9日)

【目次】

  • カーネルモジュールとは
  • なぜカーネルモジュールの作成なのか
  • 準備
  • 第1章 hello world
    • hello world カーネルモジュールの作成
    • 演習問題[1]
  • 第2章 タイマー
    • はじめに
    • 一番簡単な例
    • タイマーの登録を解除しなければどうなるか
    • 定期的に処理を実行する
    • 複数のタイマーを動作させる
    • 演習問題[2]
  • 第3章 デバッグ用I/F
    • はじめに
    • タイマーの残り時間を変更する
    • モジュール固有のディレクトリを作成する
    • タイマーの残り時間を変更する
    • 演習問題[3]
    • 参考資料
  • 第4章 リスト
    • はじめに
    • リストの構造
    • 最も単純なリストの使用方法
    • リストを使ったスタックの実装
    • 重大バグ
    • 演習問題[4]
    • 参考資料
  • 第5章 排他制御
    • 演習問題[5]
    • おわりに

【サンプル】
stbook02「カーネルモジュール作成で学ぶLinuxカーネル開発の基礎知識(第2版)」サンプル.pdf - Google ドライブ

Linuxカーネルで学ぶC言語マクロテクニック

windhole.booth.pm

著者:武内 覚(sat (@satoru_takeuchi) | Twitter
仕様:B5判、カラー45ページ
初出:技術書典2(2017年4月9日)

【目次】

  • マクロを使用する場所に依存するエラーを防ぐ
  • ジェネリックプログラミング
  • ビルド設定に応じて何もしない関数/マクロ
  • 引数の文字列化
  • トークンの連結
  • 構造体から親構造体へのポインタを得る
  • リスト操作
  • ビルド時、条件によってエラー終了させる
  • おわりに

【サンプル】
stbook01「Linuxカーネルで学ぶ C言語マクロテクニック」サンプル.pdf - Google ドライブ

コメントはFacebookページのほうにお願いします。

デザインテーマとして、shiromatakumiさんの「Brooklyn」を使わせて頂いてます。
「Brooklyn」はCC BY-ND 2.1でライセンスされています。