最終更新:2013-01-05 (土) 07:20:48 (4128d)  

参考図書/組み込みLinuxシステム構築 第2版
Top / 参考図書 / 組み込みLinuxシステム構築 第2版

 


http://www.oreilly.co.jp/books/9784873114224/

内容

  • 本書はLinuxシステムを組み込み機器上に構築するための解説書です。多種多様なアーキテクチャやハードウェア構成に対応するための実践的かつ詳細な情報を提供します。本書の内容は「GNUツールチェーンの構築」「Linuxカーネルの選択、設定、クロスコンパイル、インストール」「開発ツール」「ルートファイルシステムの構築」「記憶装置のセットアップと操作」「ブートローダのインストールと設定」「ネットワークサービス?のセットアップ」「デバッグのためのツールとテクニック」など。第2版では、カーネル2.6に対応した全面的な改訂とリアルタイムLinux関連情報(Xenomai?、RTパッチなど)を大幅に追加し、開発ツールの解説においてEclipseを大きく取り上げました。

目次

まえがき

1章 - はじめに

  • 1.1 - 各種の定義
  • 1.2 - 現実の組み込みLinuxシステム
  • 1.3 - サンプルとして使用するマルチコンポーネントシステム
    • 1.3.1 - 全体のアーキテクチャ
  • 1.4 - 設計と実装の手法
    • 1.4.1 - ターゲットLinuxシステムの作成
    • 1.4.2 - 開発ツールのセットアップと利用
    • 1.4.3 - 組み込みシステムの開発
    • 1.4.4 - ネットワーク機能

2章 - 基本概念

  • 2.1 - ホストの種類
    • 2.1.1 - Linuxワークステーション
    • 2.1.2 - Unixワークステーション
    • 2.1.3 - Windows(Vista、XP、2000、NT、98などの)ワークステーション
  • 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章 - ハードウェアサポート

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.5.1 - microperl?
    • 4.5.2 - miniperl?
  • 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章 - ルートファイルシステムの内容

7章 - 記憶装置の操作

  • 7.1 - MTDがサポートするデバイス
    • 7.1.1 - 基本的なMTDの使い方
    • 7.1.2 - ネイティブCFIフラッシュ
    • 7.1.3 - DiskOnChip?
  • 7.2 - ディスクデバイス
  • 7.3 - スワップすべきか、スワップせざるべきか

8章 - ルートファイルシステムのセットアップ

  • 8.1 - 組み込み装置のファイルシステムの種類
  • 8.2 - NFSマウントされたルートファイルシステムを使ってファイルシステムイメージをフラッシュへ書き込む
  • 8.3 - ディスクファイルシステムをRAMディスクに格納する
  • 8.4 - rootfsinitramfs
  • 8.5 - ファイルシステムの種類とレイアウトの選択
    • 8.5.1 - アプリケーション、ライブラリ、そして静的データ
    • 8.5.2 - 動的設定ファイルとデータ
    • 8.5.3 - 一時ファイル
    • 8.5.4 - レイアウトの例
  • 8.6 - ソフトウェアの更新
    • 8.6.1 - 制御された環境でのソフトウェアアップグレード(フェイルセーフではない)
    • 8.6.2 - フェイルセーフなソフトウェアのアップグレード

9章 - ブートローダのセットアップ

  • 9.1 - 組み込み用ブートローダ
  • 9.2 - ネットワークブート用のサーバ設定
    • 9.2.1 - DHCPデーモンのセットアップ
    • 9.2.2 - TFTPデーモンのセットアップ
    • 9.2.3 - NFSサーバ上のルートファイルシステムをマウントする
  • 9.3 - U-Bootブートローダを使う
    • 9.3.1 - コンパイルとインストール
    • 9.3.2 - U-Bootによるブート
    • 9.3.3 - U-Bootの環境変数を使用する
    • 9.3.4 - ブートスクリプトの作成
    • 9.3.5 - バイナリイメージの準備
    • 9.3.6 - BOOTP/DHCPTFTP、そしてNFSを使ってブートする
    • 9.3.7 - バイナリイメージをフラッシュにダウンロードする
    • 9.3.8 - U-Bootを更新する

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.8.1 - Boa?
    • 10.8.2 - thttpd?
    • 10.8.3 - Apacheについて
    • 10.8.4 - 動的に生成されるWebコンテンツ
  • 10.9 - リソースの配備

11章 - デバッグツール

  • 11.1 - Eclipse
  • 11.2 - gdbによるアプリケーションのデバッグ
    • 11.2.1 - gdbコンポーネントのビルドとインストール
    • 11.2.2 - gdbコンポーネントを使ったターゲットアプリケーションのデバッグ
    • 11.2.3 - グラフィカルなフロントエンドとインタフェースする
  • 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.5.1 - Electric Fence?およびDUMA?
    • 11.5.2 - MEMWATCH
  • 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.1.1 - ハードIRQのスレッド化
    • 14.1.2 - 割り込みとCPUアフィニティ
    • 14.1.3 - softirqのスレッド化
    • 14.1.4 - softirqタイマスレッド
  • 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 - まとめ

訳者あとがき

索引

関連

関連