(2019年08月27日(火)現在)
- Linuxのプロセススケジューラ──カーネル0.01から5.0まで
- Ryzen SEGV Battle
- 図解でわかるMeltdown
- はじめてのBtrfs
- カーネルモジュール作成で学ぶLinuxカーネル開発の基礎知識【改訂第2版】
- Linuxカーネルで学ぶC言語マクロテクニック
Linuxのプロセススケジューラ──カーネル0.01から5.0まで
著者:武内 覚(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
著者:武内 覚(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
- 根本原因
- 発生条件
- 修正状況
- 回避方法
図解でわかるMeltdown
著者:武内 覚(sat (@satoru_takeuchi) | Twitter)
仕様:B5判、44ページ
初出:技術書典4(2018年4月22日)
【目次】
- はじめに
- 概要
- 前提知識
- サイドチャネルアタック
- キャッシュメモリ
- Flush+Reload
- アウトオブオーダー実行
- 仮想記憶によるメモリアクセス権限
- Meltdown
- 脆弱性
- 攻撃方法
- 影響範囲
- 対策
- 参考文献
はじめてのBtrfs
著者:武内 覚(sat (@satoru_takeuchi) | Twitter)
仕様:B5判、カラー64ページ
初出:技術書典3(2018年4月22日)
(初出時「Btrfsの薄い本」を改題)
【目次】
- はじめに
- 機能概要
- 使用方法
- トラブルシューティング
- 歴史
- 参考文献
【サンプル】
stbook03「はじめてのBtrfs」サンプル(「Btrfsの薄い本」から改題).pdf - Google ドライブ
カーネルモジュール作成で学ぶLinuxカーネル開発の基礎知識【改訂第2版】
著者:武内 覚(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言語マクロテクニック
著者:武内 覚(sat (@satoru_takeuchi) | Twitter)
仕様:B5判、カラー45ページ
初出:技術書典2(2017年4月9日)
【目次】
- マクロを使用する場所に依存するエラーを防ぐ
- ジェネリックプログラミング
- ビルド設定に応じて何もしない関数/マクロ
- 引数の文字列化
- トークンの連結
- 構造体から親構造体へのポインタを得る
- リスト操作
- ビルド時、条件によってエラー終了させる
- おわりに
【サンプル】
stbook01「Linuxカーネルで学ぶ C言語マクロテクニック」サンプル.pdf - Google ドライブ