Solaris 64 ビット 開発ガイド

付録  B よく尋ねられる質問 (FAQ)

32 ビットバージョンと 64 ビットバージョンのどちらのオペレーティングシステムが動作しているかは、どのようにしたらわかりますか?

isainfo -v コマンドを使用すると、オペレーティングシステムが実行できるアプリケーションを調べることができます。 詳細は、isainfo(1) のマニュアルページを参照してください。

32 ビットのハードウェア上で 64 ビットのオペレーティングシステムを実行できますか?

できません。64 ビットオペレーティングシステムを 32 ビットハードウェア上で実行することはできません。64 ビットオペレーティングシステムには、64 ビットの MMU と CPU ハードウェアが必要です。

32 ビットアプリケーションを 32 ビットオペレーティング環境のシステム上で実行する場合、アプリケーションを変更する必要がありますか?

いいえ。32 ビットオペレーティング環境のシステム上でのみアプリケーションを実行する予定ならば、変更も再コンパイルも不要です。

32 ビットアプリケーションを 64 ビットオペレーティング環境のシステム上で実行する場合、アプリケーションを変更する必要がありますか?

ほとんどのアプリケーションは、コード変更も再コンパイルもせずに 32 ビットのまま、64 ビットオペレーティング環境のシステム上で従来どおり実行することができます。64 ビット機能を必要としない 32 ビットアプリケーションは 32 ビットのままにしておくと、移植性を保つことができます。

libkvm(3LIB) を使用しているアプリケーションを 64 ビットオペレーティング環境のシステムで実行するには、アプリケーションを 64 ビットとして再コンパイルする必要があります。 また、アプリケーションが /proc を使用している場合も、64 ビットとして再コンパイルする必要があります。そうしなければ、64 ビットプロセスを認識できません。これは、プロセスを記述している既存のインタフェースとデータ構造体が 64 ビット量を格納できる程大きくないからです。

64 ビット機能を利用するにはどんなプログラムを起動する必要がありますか?

特に 64 ビット機能を起動するためのプログラムはありません。64 ビットオペレーティング環境上のシステムの 64 ビット機能を利用するためには、アプリケーションを再構築する必要があります。

64 ビットオペレーティング環境のシステム上で 32 ビットアプリケーションを構築できますか?

できます。ネイティブコンパイルモードおよびクロスコンパイルモードがサポートされています。実行しているオペレーティングシステムが 32 ビットと 64 ビットのどちらであるかとは無関係に、デフォルトのコンパイルモードは 32 ビットです。

32 ビットオペレーティング環境のシステム上で 64 ビットアプリケーションを構築できますか?

システムヘッダーと 64 ビットライブラリをインストールしてあれば可能です。ただし、32 ビットオペレーティング環境のシステム上では、64 ビットアプリケーションを実行することはできません。

アプリケーションを構築しリンクするときに 32 ビットライブラリと 64 ビットライブラリを組み合わせて使うことはできますか?

できません。32 ビットアプリケーションは 32 ビットライブラリとリンクし、64 ビットアプリケーションは 64 ビットライブラリとリンクしなければなりません。異なるバージョンのライブラリと一緒に構築あるいはリンクしようとすると、エラーになります。

64 ビット実装上の浮動小数点データ型のサイズは?

32 ビットと 64 ビットとでサイズが変更されたデータ型は longポインタのみです。表 4–1 を参照してください。

time_t のサイズはどうですか ?

time_t 型は long のままです。64 ビット環境では、これは 64 ビット量に拡張されます。したがって、64 ビットアプリケーションは 2038 年問題に関して安全です。

64 ビット Solaris オペレーティングシステムを実行中のマシンでは uname(1) の出力値はどのようになりますか?

uname -p コマンドの出力は変更されていません。

64 ビットの XView アプリケーションまたは OLIT アプリケーションを作成することはできますか?

できません。32 ビット環境において旧式のライブラリである XView または OLIT のライブラリは 64 ビット環境に対応していません。

/usr/bin/sparcv9/ls ls の 64 ビット版があるのはなぜですか?

通常の処理では 64 ビット版の ls は必要ありません。ただし、32 ビット版の ls が認識するには大きすぎるファイルシステムオブジェクトを /tmp/proc に作成できるため、64 ビット版の ls を使用することによってそれらのオブジェクトを確認できます。