最終更新:2013-01-05 (土) 07:20:48 (4496d)
参考図書/組み込みLinuxシステム構築 第2版
http://www.oreilly.co.jp/books/9784873114224/
内容
- 本書はLinuxシステムを組み込み機器上に構築するための解説書です。多種多様なアーキテクチャやハードウェア構成に対応するための実践的かつ詳細な情報を提供します。本書の内容は「GNUツールチェーンの構築」「Linuxカーネルの選択、設定、クロスコンパイル、インストール」「開発ツール」「ルートファイルシステムの構築」「記憶装置のセットアップと操作」「ブートローダのインストールと設定」「ネットワークサービス?のセットアップ」「デバッグのためのツールとテクニック」など。第2版では、カーネル2.6に対応した全面的な改訂とリアルタイムLinux関連情報(Xenomai?、RTパッチなど)を大幅に追加し、開発ツールの解説においてEclipseを大きく取り上げました。
目次
まえがき
1章 - はじめに
- 1.1 - 各種の定義
- 1.1.1 - Linuxとは何か
- 1.1.2 - 組み込みLinuxとは何か
- 1.1.3 - リアルタイムLinuxとは何か
- 1.2 - 現実の組み込みLinuxシステム
- 1.2.1 - 組み込みLinuxシステムの種類
- 1.2.2 - Linuxを選ぶ理由
- 1.2.3 - 組み込みLinuxへの参加者たち
- 1.2.4 - 著作権と特許の問題
- 1.2.5 - ディストリビューションについて
- 1.3 - サンプルとして使用するマルチコンポーネントシステム
- 1.3.1 - 全体のアーキテクチャ
- 1.4 - 設計と実装の手法
- 1.4.1 - ターゲットLinuxシステムの作成
- 1.4.2 - 開発ツールのセットアップと利用
- 1.4.3 - 組み込みシステムの開発
- 1.4.4 - ネットワーク機能
2章 - 基本概念
- 2.1 - ホストの種類
- 2.2 - ホストとターゲットの開発構成
- 2.2.1 - リンク構成
- 2.2.2 - リムーバブル記憶装置構成
- 2.2.3 - スタンドアロン構成
- 2.3 - ホストとターゲットのデバッグ構成
- 2.4 - 組み込みLinuxシステムの一般的なアーキテクチャ
- 2.5 - システムの起動
- 2.6 - ブート構成
- 2.6.1 - 半導体記憶媒体
- 2.6.2 - ディスク
- 2.6.3 - ネットワーク
- 2.7 - システムのメモリレイアウト
3章 - ハードウェアサポート
- 3.1 - プロセッサアーキテクチャ
- 3.2 - バスとインタフェース
- 3.3 - 入出力
- 3.4 - 記憶装置
- 3.5 - 汎用ネットワーク
- 3.5.1 - Ethernet
- 3.5.2 - IrDA
- 3.5.3 - IEEE 802.11a/b/g/n(無線LAN)
- 3.5.4 - Bluetooth
- 3.6 - 工業用ネットワーク
- 3.7 - システムの監視
4章 - 開発ツール
- 4.1 - 実践的なプロジェクト作業領域
- 4.2 - GNUクロスプラットフォーム開発ツールチェーン
- 4.2.1 - GNUツールチェーンのビルド入門
- 4.2.2 - ツールチェーンのビルド
- 4.2.3 - ツールチェーンの使用
- 4.3 - 代替Cライブラリ
- 4.4 - Java
- 4.4.1 - Sun Java Micro Edition
- 4.4.2 - Sunと関連のないオープンソースのバーチャルマシン
- 4.4.3 - GNU Javaコンパイラ
- 4.5 - Perl
- 4.6 - Python
- 4.7 - その他のプログラミング言語
- 4.8 - Eclipse統合開発環境
- 4.8.1 - Eclipseのインストール
- 4.8.2 - Eclipseの実行
- 4.8.3 - Eclipseを拡張する
- 4.8.4 - Eclipseの使い方
- 4.9 - 端末エミュレータ
5章 - カーネルについて
- 5.1 - カーネルの選択
- 5.1.1 - 組み込みLinuxのカーネル
- 5.1.2 - 2.4シリーズのカーネル
- 5.1.3 - 2.6シリーズのカーネル
- 5.2 - カーネルの設定
- 5.2.1 - 設定オプション
- 5.2.2 - 設定方法
- 5.2.3 - 複数の設定を管理する
- 5.2.4 - EXTRAVERSION変数を使う
- 5.3 - カーネルのコンパイル
- 5.3.1 - カーネルのビルド
- 5.3.2 - モジュールのビルド
- 5.4 - カーネルのインストール
- 5.4.1 - 複数のカーネルイメージを管理する
- 5.4.2 - カーネルモジュールのインストール
- 5.5 - 出荷後の対応
- 5.5.1 - カーネルの障害対応
6章 - ルートファイルシステムの内容
- 6.1 - 基本的なルートファイルシステムの構造
- 6.2 - ライブラリ
- 6.3 - カーネルモジュール
- 6.4 - カーネルイメージ
- 6.5 - デバイスファイル
- 6.5.1 - 静的デバイスファイル
- 6.5.2 - udev
- 6.6 - 主要なシステムアプリケーション
- 6.7 - カスタムアプリケーション
- 6.8 - システムの初期化
- 6.8.1 - 標準的なSystem V init
- 6.8.2 - BusyBoxのinit
- 6.8.3 - Minit?
7章 - 記憶装置の操作
- 7.1 - MTDがサポートするデバイス
- 7.2 - ディスクデバイス
- 7.3 - スワップすべきか、スワップせざるべきか
8章 - ルートファイルシステムのセットアップ
- 8.1 - 組み込み装置のファイルシステムの種類
- 8.2 - NFSマウントされたルートファイルシステムを使ってファイルシステムイメージをフラッシュへ書き込む
- 8.3 - ディスクファイルシステムをRAMディスクに格納する
- 8.4 - rootfsとinitramfs
- 8.5 - ファイルシステムの種類とレイアウトの選択
- 8.5.1 - アプリケーション、ライブラリ、そして静的データ
- 8.5.2 - 動的設定ファイルとデータ
- 8.5.3 - 一時ファイル
- 8.5.4 - レイアウトの例
- 8.6 - ソフトウェアの更新
- 8.6.1 - 制御された環境でのソフトウェアアップグレード(フェイルセーフではない)
- 8.6.2 - フェイルセーフなソフトウェアのアップグレード
9章 - ブートローダのセットアップ
10章 - ネットワークサービスのセットアップ
- 10.1 - ネットワークの設定
- 10.2 - BusyBox
- 10.3 - DHCPによる動的設定
- 10.4 - インターネットスーパーサーバ
- 10.5 - SNMPによるリモート管理
- 10.6 - telnet経由のネットワークログイン
- 10.7 - SSHによるセキュアな通信
- 10.8 - HTTP経由でWebコンテンツをサービスする
- 10.9 - リソースの配備
11章 - デバッグツール
- 11.1 - Eclipse
- 11.2 - gdbによるアプリケーションのデバッグ
- 11.3 - トレース
- 11.3.1 - 単一プロセスのトレース
- 11.3.2 - システムのトレース
- 11.4 - 性能解析
- 11.4.1 - プロセスのプロファイリング
- 11.4.2 - コードカバレッジ
- 11.4.3 - システムのプロファイリング
- 11.4.4 - カーネルのプロファイリング
- 11.4.5 - 割り込みレイテンシの測定
- 11.5 - メモリのデバッグ
- 11.6 - ハードウェアツールについて
12章 - リアルタイムLinux入門
- 12.1 - リアルタイム処理とは何か
- 12.2 - Linuxにリアルタイム性が必要な場合
- 12.2.1 - カーネルがリアルタイム性を意識すべき理由
- 12.2.2 - レイテンシとは
- 12.3 - リアルタイムカーネルの一般的要件
- 12.3.1 - 細かい粒度でプリエンプト可能なカーネル
- 12.3.2 - タスクの優先度を厳密に適用する
- 12.3.3 - 一定時間内に外部イベントを処理する
- 12.4 - リアルタイムコンピューティング技術の典型的な適用例
- 12.5 - リアルタイムLinuxへの道
- 12.5.1 - コカーネルによる手法
- 12.5.2 - 完全にプリエンプト可能なカーネルによる手法
13章 - Xenomai?リアルタイムシステム
- 13.1 - 従来のRTOSアプリケーションをLinuxへ移植する
- 13.2 - Xenomaiアーキテクチャ
- 13.2.1 - 割り込みパイプライン
- 13.2.2 - ハードウェアとシステムの抽象化層
- 13.2.3 - Xenomaiコアと核
- 13.2.4 - Xenomaiスキン
- 13.3 - Xenomaiの動作
- 13.3.1 - リアルタイムシャドウ
- 13.3.2 - 新しいシステムコール群
- 13.3.3 - カーネル機能の共有とドメインマイグレーション
- 13.4 - リアルタイムドライバモデル
- 13.4.1 - RTDMによる仲介
- 13.5 - Xenomaiの変幻自在な設計
14章 - RTパッチ
- 14.1 - 割り込みのスレッド化
- 14.2 - 優先度継承
- 14.3 - RTパッチを適用したカーネルの設定
- 14.3.1 - No Forced Preemption(プリエンプションを強制しない)
- 14.3.2 - Voluntary Kernel Preemption(自発的なカーネルプリエンプション)
- 14.3.3 - Preemptible Kernel(プリエンプト可能なカーネル)
- 14.3.4 - Complete Preemption(完全なプリエンプション)
- 14.4 - 高分解能タイマ
- 14.5 - レイテンシトレーサ
- 14.5.1 - イベントトレース
- 14.5.2 - 関数呼び出しのトレース
- 14.5.3 - ウェイクアップレイテンシのタイミング
- 14.6 - まとめ
訳者あとがき
索引
関連
- マイコン
- クロスコンパイル
- GNU toolchain
- glibc
- uClinux
- Linuxカーネル
- BusyBox
- udev
- init
- ルートファイルシステム
- cramfs
- Squashfs
- JFFS2
- YAFFS2
- tmpfs
- ramfs?
- initramfs
- ブートローダ
- GDB
- strace
- gprof
- gcov
- Electric Fence?
- DUMA?
- MEMWATCH
- RTOS