Documentation Home
> Solaris 64 ビット 開発ガイド
Solaris 64 ビット 開発ガイド
Book Information
索引
数字・記号
A
D
E
G
I
L
O
P
S
U
か
こ
し
せ
そ
た
て
は
ふ
へ
ほ
ら
り
はじめに
第 1 章 64 ビットコンピューティング
4G バイト境界を超える
「大きなアドレス空間」以外の利点
第 2 章 64 ビットの使用方法
主な特徴
大容量仮想アドレス空間
大規模ファイル
64 ビット演算
特定のシステム制約の解消
相互運用性の問題
カーネルメモリーを参照するプログラム
/proc の制約
64 ビットライブラリ
変換作業の見積もり
第 3 章 32 ビットと 64 ビットインタフェースの比較
アプリケーションプログラミングインタフェース
アプリケーションバイナリインタフェース
32 ビットアプリケーションと 64 ビットアプリケーション間の互換性
アプリケーションバイナリ
アプリケーションソースコード
デバイスドライバ
どちらの Solaris オペレーティングシステムが実行されているか
第 4 章 アプリケーションの変換
データ型モデル
単一ソースコードの実装
機能テストマクロ
派生型
<sys/types.h> ファイル
<inttypes.h> ファイル
固定幅整数型
uintptr_t とその他の有用なデータ型
定数マクロ
<inttypes.h> によって定義される制限値
書式文字列マクロ
ツールのサポート
32 ビットと 64 ビット環境の lint
LP64 への変換のためのガイドライン
int とポインタが同じサイズであると仮定しない
int と long が同じサイズであると仮定しない
符号の拡張
アドレス演算の代わりにポインタ演算を使う
構造体の再構成
共用体のチェック
定数の型指定
暗黙的宣言について
sizeof は unsigned long である
意図を示すためにキャストを使う
書式文字列の変換をチェックする
その他の考慮事項
サイズが拡大した派生型
変更による副作用をチェックする
long を使用する意味があるかどうかチェックする
明示的な 32 ビット 対 64 ビット プロトタイプのために #ifdef を使う
アルゴリズムの変更
チェックリスト (64 ビットに変換する前に)
プログラミング例
第 5 章 開発環境
構築環境
ヘッダーファイル
コンパイラの環境
32 ビット ライブラリと 64 ビット ライブラリ
オブジェクトファイルのリンク処理
LD_LIBRARY_PATH 環境変数
$ORIGIN キーワード
32 ビット アプリケーションと 64 ビット アプリケーションのパッケージ処理
ライブラリとプログラムの配置
パッケージ処理のガイドライン
アプリケーション命名規則
シェルスクリプトラッパー
/usr/lib/isaexec バイナリファイル
isaexec(3c) インタフェース
64 ビットアプリケーションのデバッグ処理
第 6 章 上級者向けトピック
SPARC V9 ABI の特徴
スタックバイアス
SPARC V9 ABI のアドレス空間の配置
SPARC V9 ABI のテキストおよびデータの配置
SPARC V9 ABI のコードモデル
AMD64 ABI の特徴
amd64 アプリケーションのアドレス空間の配置
整列の問題
プロセス間通信
ELF とシステム生成ツール
/proc インタフェース
sysinfo(2) の拡張
libkvm と /dev/ksyms
libkstat カーネル統計情報
stdio への変更
パフォーマンスの問題
64 ビットアプリケーションの長所
64 ビットアプリケーションの短所
システムコールの問題
EOVERFLOW の意味
ioctl() に関する注意
付録 A 派生型の変更
付録 B よく尋ねられる質問 (FAQ)
© 2010, Oracle Corporation and/or its affiliates