GNUソフトウェアプログラミング

―オープンソース開発の原点

[cover photo]
TOPICS
発行年月日
PRINT LENGTH
304
ISBN
4-90090-020-6
原書
Programming with GNU Software
FORMAT
Print
3,520円
この商品は品切れ再入荷未定です

FSF(Free Software Foundation) が開発、管理するGNUプロダクツはオープンソースソフトウェアの開発をはじめ、UNIXにおけるプログラミングのデファクトスタンダードといえます。このようなGNUツール群の中からエディタ、コンパイラ、デバッカ、ライブラリ、リンカ、アセンブラ、プロジェクト管理ツール、バージョン管理ツール、プロファイラなどの使い方、具体的な応用例をまとめました。 ツール単体を扱うのではなく、他ツールとの関連や連携を考え、実際のプログラム開発に対応させて総合的に解説しています。なお、付属CD-ROMにはGNUProツールキット98r2版、binutils2.9.1(gprofを含む)、Emacs20.3、gzip1.2.4、RCS5.7が収録されています。

目次

訳者まえがき
日本語版に寄せて
はじめに

1章 フリーソフトウェアの開発環境に向けて
        1.1 プログラマの遊園地としてのUNIX
                1.1.1 能力の根源はどこにあるのか
                1.1.2 本書が提供しているもの
        1.2 フリーソフトウェアとは何か?
                1.2.1 様々な種類のフリーソフトウェア
                1.2.2 GNUプロジェクトとFSF、そしてCygnus Solutions
        1.3 本書で扱っているソフトウェアについて
        1.4 ツールの更新方法
        1.5 フリーソフトウェアの文化

2章 UNIXオペレーティングシステムの概要
        2.1 UNIXへのログイン方法
        2.2 UNIXコマンド
        2.3 UNIXファイルシステム
                2.3.1 ファイルとファイル名
                2.3.2 ファイルシステムの構成
                2.3.3 ファイルの操作のための簡単なコマンド
                2.3.4 ディレクトリを扱う簡単なコマンド
                2.3.5 ワイルドカード
                2.3.6 ファイルのアクセス許可
        2.4 オンラインドキュメント
        2.5 標準入力と標準出力
                2.5.1 パイプ
        2.6 実行の制御方法
                2.6.1 プログラムの停止方法
                2.6.2 フォアグラウンドとバックグラウンド
                2.6.3 あとでジョブを実行する場合
        2.7 シェルプログラム
                2.7.1 コマンド行の引数
                2.7.2 シェル変数
                2.7.3 ループ
                2.7.4 条件文
        2.8 シェルのカスタマイズ
                2.8.1 環境変数
                2.8.2 シェル変数
                2.8.3 エイリアス(別名)
        2.9 その他の基本的なツール

3章 Emacsを使ったソースコードの編集方法
        3.1 Emacsの起動
                3.1.1 Emacsの終了
                3.1.2 はじめに――カスタマイズの回避
        3.2 C言語モードでの基本的な編集
                3.2.1 移動
                3.2.2 テキストの削除
                3.2.3 削除されたテキストの取り出し
                3.2.4 検索と置換
                3.2.5 ファイルの保存と閲覧
                3.2.6 複数のウィンドウ
                3.2.7 字下げや注釈づけの支援機能
        3.3 Emacsを終了しないでコンパイルする方法
        3.4 シェルウィンドウ
        3.5 タグ
                3.5.1 その他のTAGSファイルの使い方
                3.5.2 タグを使った検索と置換
        3.6 その他のモードとコマンド

4章 gccを使ったコンパイルとリンクの方法
        4.1 C言語のコンパイル
                4.1.1 gccの基本的な使い方
                4.1.2 定数の定義
                4.1.3 ライブラリとのリンク
                4.1.4 gccのファイルの扱い方
                4.1.5 コンパイル時の各段階の出力ファイル
                4.1.6 makeとコンパイラ
                4.1.7 コンパイラのオプション
        4.2 C言語プログラムのアセンブル
                4.2.1 アセンブラの起動
                4.2.2 プログラムセグメント
        4.3 プログラムのリンク
                4.3.1 ldの起動
                4.3.2 リンカのオプション
                4.3.3 リンカスクリプト
                4.3.4 リンク順序の最適化
        4.4 ライブラリの作成
        4.5 クロスコンパイル
                4.5.1 クロスコンパイラの構築
5章 ライブラリ
        5.1 エラーの処理方法
        5.2 シグナル
        5.3 時刻
        5.4 システムインタフェースについて
                5.4.1 入出力ルーチンのためのスタブ
                5.4.2 sbrkのスタブ
                5.4.3 ランタイム環境
        5.5 C++クラス
        5.6 ライブラリとライセンスについて

6章 C言語やC++で記述したプログラムのデバッグ方法
        6.1     gdbを利用するためのコンパイル
        6.2     gdbの起動
        6.3     gdbの基本コマンド
                6.3.1 ファイルの表示
                6.3.2 プログラムの実行
                6.3.3 データの表示
                6.3.4 ブレークポイント
                6.3.5 変数の参照と値の代入
                6.3.6 シングルステップ実行
                6.3.7 関数の呼び出し
                6.3.8 コマンドの自動実行
        6.4     変数の有効範囲と文脈
                6.4.1 変数の有効と無効
                6.4.2 変数名と有効範囲
        6.5     呼び出しスタックの上下移動
                6.5.1 機械語機能
                6.5.2 シグナル
                6.5.3 便利な変数
                6.5.4 ソースファイルの取り扱い
                6.5.5 gdbのカスタマイズ
                6.5.6 UNIXとのインタフェース
        6.6     C++プログラム
        6.7     Emacsとのインタフェース
        6.8     コマンドの補完と略記
                6.8.1 コマンドの編集
                6.8.2 コマンド履歴
        6.9     既存のプロセスの取り込み
        6.10    ま と め

7章 makeを使った自動コンパイル
        7.1 makefileの作成方法
                7.1.1 依存関係
                7.1.2 略記法とマクロ
                7.1.3 検索ディレクトリ
                7.1.4 既定のコンパイル規則
        7.2 makeの起動方法
                7.2.1 便利なオプション
                7.2.2 並列性
        7.3 makeとRCS
        7.4 エラーメッセージ
        7.5 ま と め

8章 RCSを使ったソースコード管理
        8.1 リビジョンの木構造
        8.2 基本的な操作
                8.2.1 RCSのディレクトリとファイル
                8.2.2 リビジョンのログ
                8.2.3 識別文字列
                8.2.4 厳密なアクセス
        8.3 チェックインの詳細
        8.4 新旧の世代
        8.5     その他の機能
                8.5.1 状態
                8.5.2 名前
                8.5.3 ファイルの説明の変更について
                8.5.4 アクセスリスト
        8.6     もう1つの可能性

9章 プログラムの計時とプロファイルの方法
        9.1 単純な計時
        9.2 プロファイルの紹介
        9.3     gprofを使ったプロファイルの生成
                9.3.1 gprofプロファイルの構造
                9.3.2 一次元的なプロファイル
                9.3.3 呼び出しグラフプロファイル
                9.3.4 呼び出しグラフを解釈する上でのコツ

付録A Cygnus Solutionsとは何か?
付録B GNUソフトウェアをソースコードから構築する方法
        B.1     構築手続きの小さな歴史について
                B.1.1 ソースファイル内のシステムの相違
                B.1.2 makefile内のシステムの相違
                B.1.3 スクリプトのコンフィギュレーション
                B.1.4 GNUツール向けのコンフィギュレーションのオプション
        B.2     構築上の問題点
付録C データ表現
        C.1     メモリレイアウト
        C.2     整数表現
        C.3     浮動小数点数
                C.3.1 単精度
                C.3.2 倍精度
                C.3.3 エラー条件
付録D GNU General Public License(GNU一般公有使用許諾書)
        GNU GENERAL PUBLIC LICENSE Version 2, June 1991
        GNU一般公有使用許諾書
付録E 付属CD-ROMについて
索引