本書は、Linuxが「どのように構成されているのか」「その構成要素はどのようにして作られているのか」についてを平易に解説、UNIX系OSを裏側から支える数々の仕組みを理解できます。Linuxを日常的に利用しているシステム管理者はもちろん、オープンソース・ソフトウェアを開発しようとする開発者や、オープンソース・ソフトウェアの開発に何らかの貢献をしたいと考えているユーザは必読、今までブラックボックスにしていたLinuxソフトウェアの裏側も、この1冊でわかります。
01 プログラムのコンパイルとリンク
01-01 プログラムとは何か
01-01-01 「プログラム」という語が指す概念
01-01-02 実行可能形式
01-01-03 ライブラリ
01-01-04 プログラミング言語C
01-02 C言語によるプログラミングとコンパイル
01-02-01 Cプログラムの基本構造
01-02-02 プログラムのコンパイルと実行
01-02-03 ライブラリの利用
01-02-04 ヘッダファイルの存在意義
01-03 GCCによるコンパイルの裏側
01-03-01 コンパイルにおいて行われる処理
01-03-02 プリプロセス
01-03-03 コンパイルと最適化
01-03-04 アセンブリ
01-03-05 リンク
01-04 オブジェクトファイルの構造
01-04-01 プログラムはどのように実行されるか
01-04-02 ELFの構造
01-04-03 プログラムのロードとメモリへの割り当て
01-04-04 デバッグ情報の付与
01-04-05 シンボルテーブルの除去
01-05 ライブラリ
01-05-01 静的ライブラリ
01-05-02 共有ライブラリ
02 ビルドの自動化とautotools
02-01 makeによるコンパイル手順の自動化
02-01-01 makeの概要
02-01-02 ルールの記述方法
02-01-03 makeの実行
02-01-04 Makefile内での変数の利用
02-01-05 暗黙のルールと事前定義の変数
02-01-06 ビルド以外の処理を行う
02-01-07 手順の記述に関する詳細
02-01-08 複数のディレクトリにまたがるmake
02-01-09 コマンドラインオプション
02-02 configureスクリプト
02-02-01 configureの目的
02-02-02 configureが実行するテストの種類
02-02-03 configureのオプション
02-02-04 configureと他のファイルの関係
02-02-05 システムの標準名
02-02-06 configureとMakefile中の変数
02-02-07 キャッシュファイルの利用
02-03 Autoconfを利用したConfigureスクリプトの作成
02-03-01 Autoconfの概要
02-03-02 Autoconfの実例
02-03-03 Autoconfのテストの基本
02-03-04 テスト結果の利用方法
02-03-05 結果のコントロール
02-03-06 テストに失敗した場合の対応
02-03-07 問題の報告
02-03-08 事前定義の出力変数
02-03-09 configure.ac記述上の注意
02-03-10 独自のm4マクロの利用
02-04 Autoconfが提供するm4マクロ
02-04-01 プログラムの存在調査
02-04-02 ライブラリファイルの存在調査
02-04-03 ライブラリ関数の存在調査
02-04-04 ヘッダファイルの存在調査
02-04-05 構造体の調査
02-04-06 型の調査
02-04-07 宣言の調査
02-04-08 ファイルの存在調査
02-04-09 コンパイラ
02-04-10 システムサービスの調査
02-04-11 特定のシステムの判定
02-04-12 パッケージのカスタマイズ
02-05 Automakeの利用
02-05-01 Automakeの概要
02-05-02 Automakeの実例
02-05-03 Automakeが提供するmakeターゲット
02-05-04 configureによるテスト結果の取り込み
02-05-05 ターゲットの指定と統一命名規約
02-05-06 ディレクトリの分割
02-05-07 Automakeのその他の機能
02-06 Libtoolによる共有ライブラリの構築
02-06-01 Libtoolの概要
02-06-02 libtoolを単体で利用する
02-06-03 ライブラリのバージョニング
02-06-04 LibtoolをAutoconfに組み込む
02-06-05 Makefile.amに対する拡張
02-07 pkg-configによる依存情報解決
02-07-01 pkg-configの概要
02-07-02 pkg-configコマンドの利用方法
02-07-03 メタデータファイル
02-07-04 Autoconfに組み込んで利用する
02-07-05 メタデータファイルの生成
03 ソフトウェアの国際化
03-01 ソフトウェアの国際化とは
03-01-01 国際化と地域化
03-01-02 ローカルの概要
03-01-03 ローカルとプログラミング
03-02 gettextによるメッセージの国際化
03-02-01 gettextの概要
03-02-02 gettextの利用例
03-02-03 メッセージカタログの作成と配置
03-03 メッセージカタログの作成
03-03-01 メッセージカタログの記述方法
03-03-02 メッセージカタログの更新
03-04 gettextのautotoolsの連携
03-04-01 パッケージのautotools化
03-04-02 gettextizeの実行
03-04-03 gettext対応のためのファイル編集
03-04-04 メッセージカタログのメンテナンス
03-04-05 パッケージのインストールと配布パッケージの生成
03-04-06 gettext APIが存在しない環境
04 パッチの作成と適用
04-01 diffによるパッチの作成
04-01-01 パッチとは何か
04-01-02 基本的なdiffの利用方法
04-01-03 diffの出力形式
04-01-04 大規模なパッチの生成
04-02 patchによるパッチの適用
04-02-01 パッチの適用方法
04-02-02 パッチにまつわるさまざまな処理
05 ドキュメントの記述
05-01 マニュアルページ
05-01-01 マニュアルページとは
05-01-02 groff
05-01-03 マニュアルページの記述
05-02 Texinfoドキュメント
05-02-01 Texinfoの基本
05-02-02 ドキュメントの生成
05-02-03 Texinfoファイルの記述方法
05-03 DocBookドキュメント
05-03-01 DocBookとは何か
05-03-02 DocBookドキュメントの記述
05-03-03 DocBookドキュメントの変換
05-03-04 DocBook文書の分割
06 RPMによるソフトウェア管理
06-01 rpmコマンド
06-01-01 RPMとその背景
06-01-02 rpmの基本的な利用方法
06-01-03 カスタムクエリ
06-02 RPMパッケージの作成方法
06-02-01 独自のRPMを作成するメリット
06-02-02 パッケージ作成の流れ
06-02-03 パッケージ構築の前準備
06-02-04 specファイルの記述方法
06-02-05 パッケージのビルド
06-03 高度なRPMのパッケージング
06-03-01 アーカイブの展開
06-03-02 サブパッケージの利用
06-03-03 スクリプトの実行
06-03-04 CPUアーキテクチャとOSの選定
06-03-05 マクロの利用
06-03-06 SRPMの利用
06-03-07 その他の話題
天地人 さん
2017-03-26
linuxの主にビルドの仕組みについて学習できる。分かってしまえば簡単な仕組みだが、いろいろなディストリビューションがある中で、自動的にインストールできる仕組みを整えるのはやっかいそう。
toiwata さん
2015-10-26
ユーザから見える画面の後ろ側で何が行われているのか。道具箱にはどういうツールが用意されているのか。その一端がわかるようになる本。
tomoya hibi さん
2015-07-09
とりあえず、読むと良い。 とても良い。 説明はしづらい