SolarisTM オペレーティング環境の機能は、顧客の需要を満たすために拡大し続けています。Solaris オペレーティング環境は、32 ビットおよび 64 ビットのアーキテクチャを完全にサポートするように設計されており、大規模ファイルおよび大容量仮想アドレス空間を利用できる 64 ビットアプリケーションを構築し、実行するための環境を提供します。同時に 32 ビットアプリケーションについて、最大限のソースおよびバイナリの互換性と相互運用性を提供します。実際、Solaris の 64 ビット実装上で実行、および構築されているシステムコマンドの大部分は、32 ビットプログラムです。
32 ビットと 64 ビットのアプリケーションの開発環境間の主な相違点は、32 ビットアプリケーションは、int、long、およびポインタが 32 ビットである ILP32 データ型モデルに基づいているのに対し、64 ビットアプリケーションは、LP64 データ型モデルに基づいているということです。LP64 データ型モデルでは 、long とポインタは 64 ビットで、他の基本データ型は ILP32 と同じです。
大部分のアプリケーションは、32 ビットプログラムのままで使用することができます。次の要件のうち 1 つ以上に該当するアプリケーションのみ、64 ビットプログラムに変換する必要があります。
4G バイトを超える仮想アドレス空間を必要とする
libkvm、/dev/mem、または /dev/kmem を使用して、カーネルメモリーを読み込み、解釈する
64 ビット版のみで構成されるライブラリを利用する
64 ビット演算を効率的に行うために完全な 64 ビットレジスタが必要
相互運用性の問題により、コードの変更が必要になる場合があります。たとえば、アプリケーションが 2G バイトより大きいファイルを使用する場合、64 ビットに変換することがあります。
64 ビット演算を効率良く実行するために 64 ビットレジスタを必要とする場合や、64 ビット命令セットにより提供されるその他の改善された機能を利用する場合など、性能上の理由から、アプリケーションを 64 ビットに変換した方が望ましいことがあります。
このマニュアルは、C および C++ の開発者を対象読者としています。あるアプリケーションが 32 ビットまたは 64 ビットであるかを判定する方法について説明しています。また、32 ビットと 64 ビットアプリケーション環境の類似性と相違点、両環境間で移植可能なコードの書き方、および 64 ビットアプリケーションを開発するための、オペレーティングシステムに含まれているツールについて説明しています。
このマニュアルは次の章で構成されています。
第 1 章「64 ビットコンピューティング」では、64 ビットコンピューティングがなぜ必要なのか、また 64 ビットアプリケーションの特長について概要を説明します。
第 2 章「64 ビットの使用方法」では、構築および実行環境について、32 ビット Solaris と 64 ビット Solaris との違いを説明します。この章は、どのような場合にコードを 64 ビット安全に変換するのが適当であるかを、アプリケーション開発者が判断するための参考となるように書かれています。
第 3 章「32 ビットと 64 ビットインタフェースの比較」では、32 ビットと 64 ビットのアプリケーションおよびインタフェース間の類似性について説明しています。
第 4 章「アプリケーションの変換」では、既存の 32 ビットコードを 64 ビット安全なコードへ変換する方法と、その変換を簡単に行うためのツールについて説明します。この章では主に、移植性のあるコードの書き方について説明しています。この章の内容は、既存の 32 ビットアプリケーションを 64 ビットに変換、または 32 ビットと 64 ビットの両環境で実行可能なアプリケーションを作成する際に適用できます。
第 5 章「開発環境」では、ヘッダー、コンパイラ、ライブラリについて、およびパッケージ方法とデバッグツールなどの構築環境について説明します。
第 6 章「上級者向けトピック」では、64 ビットシステムプログラミングと ABI の概要、および、パフォーマンスの問題について説明します。
付録 A 「派生型の変更」 では、64 ビットアプリケーション開発環境で変更された派生型について説明します。
付録 B 「よく尋ねられる質問 (FAQ)」 では、64 ビット実装とアプリケーション開発環境に関して、よく尋ねられる質問とその回答をまとめてあります。
参考として、次のマニュアルをお薦めします。
『American National Standard for Information Systems Programming Language-C, ANSI X3.159-1989』
『SPARC Architecture Manual, Version 9』SPARC International
『SPARC Compliance Definition, Version 2.4』SPARC International
『Large Files in Solaris: A White Paper』(Part No: 96115-001)
該当するコマンドのマニュアルページ
『Writing Device Drivers』(Part No: 805-7378)
『C ユーザーズガイド』(Part No: 805-7885)
専門書を扱うインターネットの書店 Fatbrain.com から、米国 Sun MicrosystemsTM, Inc. (以降、SunTM とします) のマニュアルをご注文いただけます。
マニュアルのリストと注文方法については、http://www1.fatbrain.com/documentation/sun の Sun Documentation Center をご覧ください。
http://docs.sun.com では、Sun が提供しているオンラインマニュアルを参照することができます。マニュアルのタイトルや特定の主題などをキーワードとして、検索を行うこともできます。
このマニュアルでは、次のような字体や記号を特別な意味を持つものとして使用します。
表 P-1 表記上の規則
字体または記号 |
意味 |
例 |
---|---|---|
AaBbCc123 |
コマンド名、ファイル名、ディレクトリ名、画面上のコンピュータ出力、コード例を示します。 |
.login ファイルを編集します。 ls -a を使用してすべてのファイルを表示します。 system% |
AaBbCc123 |
ユーザーが入力する文字を、画面上のコンピュータ出力と区別して示します。 |
system% su password: |
AaBbCc123 |
変数を示します。実際に使用する特定の名前または値で置き換えます。 |
ファイルを削除するには、rm filename と入力します。 |
『 』 |
参照する書名を示します。 |
『コードマネージャ・ユーザーズガイド』を参照してください。 |
「 」 |
参照する章、節、ボタンやメニュー名、強調する単語を示します。 |
第 5 章「衝突の回避」を参照してください。 この操作ができるのは、「スーパーユーザー」だけです。 |
¥ |
枠で囲まれたコード例で、テキストがページ行幅を超える場合に、継続を示します。 |
sun% grep `^#define ¥ XV_VERSION_STRING' |
ただし AnswerBook2TM では、ユーザーが入力する文字と画面上のコンピュータ出力は区別して表示されません。
コード例は次のように表示されます。
[ ] は省略可能な項目を示します。上記の例は、filename は省略してもよいことを示しています。
| は区切り文字 (セパレータ) です。この文字で分割されている引数のうち 1 つだけを指定します。
キーボードのキー名は英文で、頭文字を大文字で示します (例: Shift キーを押します)。ただし、キーボードによっては Enter キーが Return キーの動作をします。
ダッシュ (-) は 2 つのキーを同時に押すことを示します。たとえば、Ctrl-D は Control キーを押したまま D キーを押すことを意味します。
このマニュアルでは、「IA」という用語は、Intel 32 ビットのプロセッサアーキテクチャを意味します。これには、Pentium、Pentium Pro、Pentium II、Pentium II Xeon、Celeron、Pentium III、Pentium III Xeon の各プロセッサ、および AMD、Cyrix が提供する互換マイクロプロセッサチップが含まれます。