ISBN 9784789844727

動くメカニズムを図解&実験!Linux超入門 : コンピュータの性能を100%引き出すために

動くメカニズムを図解&実験!Linux超入門 : コンピュータの性能を100%引き出すために
出版社
CQ出版
刊行
2016-05

概要

Linuxカーネルの内部動作を図解で理解し、性能チューニングを実践する

想定読者

組み込みLinuxや小型ボードでシステムを構築・運用するエンジニア、およびカーネルの動作原理を基礎から把握したいソフトウェア開発者

こんな人には向いていない

  • Linuxのコマンド操作や日常的なサーバ管理だけを学びたい読者には内部構造の比重が大きい
  • Linuxカーネルの実装コードを読み込み独自にドライバ開発を行う上級者には説明の粒度が粗い
  • 最新カーネル(5.x以降)の変更点や新機能を中心に追いたい読者には2016年刊行のため情報が古い箇所がある

読了後にできるようになること

  • Linuxカーネルの設計思想と起動シーケンスを図解ベースで説明できる
  • 仮想メモリ・スケジューラ・割り込み処理の仕組みを実務トラブル対応に結びつけて理解できる
  • 割り込みハンドラの高速化・マルチタスク性能改善など、組み込み環境での性能チューニング手法を選べる
  • DMAを使った大容量データ転送の原理と使い分けを判断できる
  • ファイルシステムの種類ごとの特性(互換性・圧縮率・速度)を比較して選択できる
  • U-Bootを使ったブートローダの設定と、消費電力削減のためのカーネル機能の活用ができる

本書のキー概念(章解説)

  • 第 1 章 Linuxカーネルの設計思想 — モノリシックカーネルの基本設計を把握する出発点
  • 第 2 章 Linux起動のしくみ — ブートローダからユーザ空間まで一連の流れを追える
  • 第 3 章 仮想メモリ・アクセスのしくみ — メモリトラブル調査の基礎として実務直結度が高い
  • 第 4 章 プログラム実行順序決定のしくみ — スケジューラの概要を把握し優先度制御の基礎になる
  • 第 5 章 ハードウェア制御の基本的なしくみ
  • 第 6 章 割り込みのしくみ — 第16・17章の性能チューニングの前提として必読
  • 第 7 章 ハードウェア資源管理のしくみ
  • 第 8 章 メモリに高速アクセスするしくみ — キャッシュ同期の基礎として第23章と合わせて読む
  • 第 9 章 グラフィック描画&表示のしくみ
  • 第 10 章 大容量データ受け渡しのしくみ — 第25章DMAチューニングの理論的裏付けになる章
  • 第 11 章 電力制御のしくみ — 第26章の消費電力削減チューニングと対で読む
  • 第 12 章 いろんなチップ&ボードで動かせるしくみ
  • 第 13 章 固有ハードに対応するためのしくみ実例
  • 第 14 章 ファイル・システムのしくみ — 第24章のファイルシステム選択判断の基礎
  • 第 15 章 セキュリティ管理のしくみ
  • 第 16 章 割り込み処理ルーチンを高速起動するコツ — 割り込みハンドラへの負荷集中を避けるポイントを実践的に解説
  • 第 17 章 割り込み処理を短時間で済ませるコツ
  • 第 18 章 マルチタスクを高性能に処理するコツ — I/O待ちと計算処理の並列化で応答性を上げる判断軸
  • 第 19 章 プロセスを高速応答させるコツ
  • 第 20 章 カーネル圧縮方式を選ぶコツ — 起動時間とイメージサイズのトレードオフを選択できる
  • 第 21 章 メモリ操作を高速にするコツ — malloc/freeをループ内に置くアンチパターンの解説
  • 第 22 章 大容量のmallocをムダなく高速に行うコツ
  • 第 23 章 物理メモリに高速/確実に読み書きするコツ — キャッシュ同期のコントロール方法が中心
  • 第 24 章 ファイル・システムを選ぶコツ — 互換性・圧縮率・速度の三軸で比較できる実用章
  • 第 25 章 Linuxが苦手なデータ高速転送のコツ — DMAを活用した高スループット設計の実践
  • 第 26 章 消費電力を減らすコツ
  • 第 27 章 正確な時刻を知るコツ — ハードウェア時計を使ったタイムスタンプ精度の確保

ハイライト

  • Linuxコンピュータを作ったり使ったりする人はカーネルの動きを理解しておく必要があります.処理能力の低いCPUでも性能をUPしたり,ちょっとしたトラブルに対応できるようになります.(図解と実験を軸に据えた本書の動機が端的に示されており、読者に刺さる実用性の訴求が凝縮されている)
  • 第2部 しくみがわかれば差は歴然! Linuxを高性能に使うテクニック10+(第1部の原理理解を第2部のチューニング実践に直結させる本書独自の構成を示すキャッチフレーズ)

編集メモ

WebFetch検索ではQiita上に本書を直接引用する記事が確認できなかった。楽天ランキング情報も入力になし。組み込みLinux設計の実務書として体系的な内容だが、外部シグナルが取得できなかったため supplementary と判定

読む前に押さえておきたいこと

  • LinuxのCLI基本操作(ファイル操作・プロセス確認・シェルスクリプト)の習熟
  • C言語の基礎的な読解力(ポインタ・構造体・関数ポインタ程度)
  • コンピュータアーキテクチャの入門知識(CPU・メモリ・バスの基本的な役割)

学習のコツ

  • 第1部(第1〜15章)は原理理解、第2部(第16〜27章)はチューニング実践という二層構成になっている。第1部を通読してから第2部に進むと、チューニングの理由が腑に落ちやすい
  • 第6章(割り込みのしくみ)は第16・17章のパフォーマンスチューニングの前提になるため、第2部を先に読む場合も第6章だけは先に押さえておくとよい
  • 第8章と第23章はキャッシュを扱う章として対をなす。ハードウェアキャッシュの原理(8章)を把握してからソフト的な同期コントロール(23章)を読むと理解が深まる
  • 組み込みLinux開発者は第11・26章(電力制御・消費電力削減)と第12・13章(マルチプラットフォーム対応)を重点的に読む優先度が高い
  • Appendix(U-Boot)は第20章カーネル圧縮と合わせて読むと、ブートローダからカーネル起動までの全体像が繋がる
出版社による内容紹介

Linuxコンピュータを作ったり使ったりする人はカーネルの動きを理解しておく必要があります.処理能力の低いCPUでも性能をUPしたり,ちょっとしたトラブルに対応できるようになります.そもそも知らないとちゃんと動かせません.  本書ではLinuxが動くメカニズムをできるだけわかりやすく図解し,性能UPのヒントまで紹介します. ★目 次 ☆第1部 そうなっていたのか! Linuxカーネルが動くメカニズム ●第1章 Linuxカーネルの設計思想 ●第2章 Linux起動のしくみ ●第3章 仮想メモリ・アクセスのしくみ ●第4章 プログラム実行順序決定のしくみ ●第5章 ハードウェア制御の基本的なしくみ ●第6章 割り込みのしくみ ●第7章 ハードウェア資源管理のしくみ ●第8章 メモリに高速アクセスするしくみ ●第9章 グラフィック描画&表示のしくみ ●第10章 大容量データ受け渡しのしくみ ●第11章 電力制御のしくみ ●第12章 いろんなチップ&ボードで動かせるしくみ ●第13章 固有ハードに対応するためのしくみ実例 ●第14章 ファイル・システムのしくみ ●第15章 セキュリティ管理のしくみ ☆第2部 しくみがわかれば差は歴然! Linuxを高性能に使うテクニック10+ ●第16章 割り込み処理ルーチンを高速起動するコツ…負荷は重くしちゃダメ ●第17章 割り込み処理を短時間で済ませるコツ…必要な処理をまず済ませる ●第18章 マルチタスクを高性能に処理するコツ…なるべくI/O処理と同時に動かさない ●第19章 プロセスを高速応答させるコツ…先に立ち上げてスリープさせておく ●第20章 カーネル圧縮方式を選ぶコツ…サイズや起動時間で使い分ける  Appendix 便利で高速起動! 定番ブートローダU-Bootを使う ●第21章 メモリ操作を高速にするコツ…malloc/freeはループ内に書いちゃいけない ●第22章 大容量のmallocをムダなく高速に行うコツ…必要なぶんだけ初期化して使う ●第23章 物理メモリに高速/確実に読み書きするコツ…キャッシュの同期をコントロールする ●第24章 ファイル・システムを選ぶコツ…互換性/圧縮率/速度で使い分ける ●第25章 Linuxが苦手なデータ高速転送のコツ…DMAを使う ●第26章 消費電力を減らすコツ…Linuxが備える機能を駆使する ●第27章 正確な時刻を知るコツ…ハードウェア時計を使う

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。