この付録は、Solaris 7 で利用できる 32 ビットと 64 ビットの Solaris オペレーティング環境上のシステムを管理するシステム管理者を対象としています。
Solaris 7 では、次に示す 2 種類の環境を SPARC または x86 のプラットフォームで利用できます。
次の作業を可能にする、32 ビット Solaris アプリケーションとオペレーティング環境
64 ビットアプリケーションの開発 (SPARC プラットフォームのみ)
既存の多くの 32 ビットアプリケーションの実行
次の作業を可能にする、64 ビット Solaris アプリケーションとオペレーティング環境 (SPARC プラットフォームのみ)
64 ビットアプリケーションの開発
新しい 64 ビットアプリケーションでの大規模アドレス空間の操作
既存の多くの 32 ビットアプリケーションの実行
現時点では、64 ビット Solaris 7 オペレーティング環境をサポートできるプラットフォームは、UltraSPARCTM プロセッサを持つシステムだけです。その他のプラットフォームや旧リリースの Solaris では、64 ビットアプリケーションは開発できません。
この付録では、UltraSPARC プロセッサを搭載したシステムのことを 「UltraSPARC システム」と呼びます。
32 ビットまたは 64 ビットの Solaris 7 システム上で 64 ビットアプリケーションを開発するか、UltraSPARC システム上で 64 ビットアプリケーションを実行する必要がない限り、64 ビット Solaris アプリケーション環境を使用する必要はありません。
一部のアプリケーション、特にデータベースなどの大規模アドレス空間を操作するアプリケーションを 64 ビット環境で実行すると、32 ビット環境では得られない利点があります。ただし当面は、32 ビット Solaris アプリケーション環境がデフォルトのアプリケーション環境になります。
64 ビット Solaris オペレーティング環境は、32 ビットアプリケーションのソースレベルとバイナリレベルの互換性を提供します。通常のエンドユーザーと開発者は、Solaris 64 ビット環境を意識する必要はありません。
64 ビットアプリケーションは、sun4c、sun4m、sun4d、および sun4u システム上の Solaris 7 環境で開発できます。もちろん、Solaris 7 環境の UltraSPARC システムでは、64 ビットアプリケーションを実行できます。
すべてのシステムタイプにおいて、Solaris 7 をインストールするときに、ソフトウェアを選択する際に 64 ビットサポートオプションを選択することができます。
UltraSPARC システムでは、デフォルトで 64 ビットサポートが選択されます。このデフォルトを変更するには、64 ビットサポートの選択を解除します。
他のすべてのシステムでは、デフォルトで 32 ビットサポートが選択されます。このデフォルトを変更するには、64 ビットサポートを選択します。このオプションは、32 ビットシステム上で 64 ビットアプリケーションを開発する開発者に 64 ビット Solaris ライブラリを提供する「Developer (開発者)」および「Entire Distribution (全体ディストリビューション)」のソフトウェアクラスタで使用できます。
Solaris 7 をインストールするときに、いろいろな画面で 64 ビットサポートオプションを選択できます。
Solaris 対話式インストールプログラムを使用して、初めて Solaris 7 をインストールするときには、64 ビットサポートオプションは、インストールするシステムソフトウェアのタイプ (「End User (エンドユーザー)」、「Developer (開発者)」、または「Entire Distribution (全体ディストリビューション)」) を選択する「Software Selection (ソフトウェアの選択)」画面で表示されます。
Solaris 対話式インストールプログラムを使用してアップグレードを行うときには、64 ビットサポートオプションは、ソフトウェアのアップグレードを開始する前に現れる「Custumize Software (ソフトウェアをカスタマイズしますか?)」画面で表示されます。
Solaris Web Start を使用して、初めて Solaris 7 をインストールするときには、64 ビットサポートオプションは、「Custum Install (カスタムインストール)」ボタンを押した後に現れる画面でさらに「Configure Solaris (Solaris を設定する)」ボタンを押した後に現れる画面で表示されます。
カスタム JumpStartTM を使用して、初めて Solaris 7 をインストールするときまたはアップグレードするときには、プロファイルを使用して、32 ビットサポートまたは 64 ビットサポートを選択できます。次のキーワードと値の組み合わせの 1 つをプロファイルに追加します。
isa_bits 32
isa_bits 64
現時点では、64 ビット Solaris オペレーティング環境をサポートできるプラットフォームは、UltraSPARC システムだけです。使用しているシステムが UltraSPARC システムであるかどうかを確認するには、次のコマンドを使用します。
$ uname -m sun4u |
uname -m コマンドの出力が sun4u であれば、そのマシンは UltraSPARC システムです。
Solaris 7 を実行している場合は、psrinfo コマンドでも確認することができます。
# psrinfo -v Status of processor 0 as of: 02/10/98 14:25:55 Processor has been on-line since 01/30/98 15:10:29. The sparcv9 processor operates at 168 MHz, and has a sparcv9 floating point processor. Status of processor 1 as of: 02/10/98 14:25:55 Processor has been on-line since 01/30/98 15:10:33. The sparcv9 processor operates at 168 MHz, and has a sparcv9 floating point processor. |
プロセッサタイプが sparcv9 であれば、そのプラットフォームは 64 ビット Solaris オペレーティング環境を実行できます。旧リリースの Solaris の psrinfo コマンドでは、sparc プロセッサタイプの情報が上記のように詳細に出力されません。
基本の 64 ビット Solaris オペレーティング環境は、以前の 32 ビット環境と同じように見えます。新しいコマンドを使用すれば、システムが 64 ビット機能を有効にしているかどうか、つまりシステムが 64 ビットカーネルでブートされているかどうかを調べることができます。
isainfo(1) コマンド (「instruction set architecture information」の意味) には次の 2 つの機能があります。
実行中のシステムがサポートするアプリケーションを報告する (isainfo -v コマンド)。
実行中のシステムでネイティブなアプリケーションがサポートするビット数を報告する (isainfo -b コマンド)。
32 ビットカーネルを実行している UltraSPARC システムでは、次のように出力されます。
$ isainfo -v 32-bit sparc applications |
この出力は、システムが 32 ビットアプリケーションだけをサポートできることを示しています。
64 ビットカーネルを実行している UltraSPARC システムでは、次のように出力されます。
$ isainfo -v 64-bit sparcv9 applications 32-bit sparc applications |
この出力は、システムが 32 ビットと 64 ビットの両方のアプリケーションをサポートできることを示しています。
isainfo -b コマンドを使用すると、実行中のシステムでネイティブなアプリケーションがサポートするビット数が表示されます。
32 ビット Solaris オペレーティング環境を実行している SPARC、x86、または UltraSPARC システムでは、次のように出力されます。
$ isainfo -b 32 |
64 ビット Solaris オペレーティング環境を実行している 64 ビット UltraSPARC システムでは、次のように出力されます。
$ isainfo -b 64 |
コマンドは 64 だけを返します。64 ビット UltraSPARC システムは両方のタイプのアプリケーションを実行できますが、64 ビットシステムで実行するのに最適なアプリケーションは、64 ビットアプリケーションです。
uname -p の出力は sparc または i386 のままです。これは、既存の 32 ビットアプリケーションの実行に影響を与えないためです。
64 ビット Solaris 環境でも、32 ビット Solaris 環境と同じようにアプリケーションを実行できます。
64 ビット Solaris システムを使用するために、ユーザーの PATH 環境変数を変更する必要はありません。ほとんどのシステムユーティリティは 32 ビットアプリケーションのままですが、いくつかのシステムユーティリティは 64 ビットバージョンに拡張されています。64 ビットバージョンのコマンドユーティリティは自動的にコマンドラッパープログラムによって呼び出され、実行中のシステムに応じたバージョンのコマンドが透過的に起動されます。
この他にも、64 ビット Solaris オペレーティング環境でアプリケーションを実行するときに注意が必要なことがあります。
カーネルメモリーを読み取る 32 ビットアプリケーションは、64 ビットプログラムとしてコンパイルしなければなりません。これは、カーネルが 64 ビットプログラムになっているためです。
/proc ファイルシステムで他のプロセスを参照する 32 ビットプログラムは、64 ビットプログラムに変換しなければなりません。これは、64 ビットプロセスの拡張機能を扱えるようにするためです。
大規模仮想アドレス空間を必要とする 64 ビットアプリケーションを実行する場合は、より多くのスワップ空間をシステムに追加しなければなりません。
システム管理者は、次の手順でデバイスドライバが 64 ビット Solaris システムで使用できるかどうかを確認しておく必要があります。
64 ビット Solaris カーネルをブートするために、UltraSPARC システムのファームウェアをアップグレードする必要があるかどうかを確認します。UltraSPARC システムのファームウェアをアップグレードする必要があるかどうかを確認するには、ハードウェアメーカーのマニュアルを参照してください。
Solaris のインストール時に、64 ビット Solaris パッケージを選択します。
64 ビット Solaris オペレーティング環境をブートします。
また、Sun 以外の他社製デバイスドライバが 64 ビットバージョンで使用できることを確認する必要があります。これらのデバイスドライバが 64 ビットで使用できない場合は、64 ビット Solaris オペレーティング環境は利用できません。
64 ビットアプリケーションを実行する場合は、次のように LD_LIBRARY_PATH 環境変数をカスタマイズしなければならないことがあります。
新しい環境変数 LD_LIBRARY_PATH_64 を設定します。LD_LIBRARY_PATH に似ていますが、この環境変数は 64 ビットアプリケーションだけが参照できます。
アプリケーションが 32 ビットと 64 ビットの両方のライブラリを参照できるように、LD_LIBRARY_PATH 変数を設定します。
同じようにブートされるわけではありませんが、2 つのカーネルをそれぞれ違う方法でブートする必要はありません。64 ビット Solaris 7 カーネルが、UltraSPARC システムにインストールされている場合、64 ビットカーネルがデフォルトでブートされます。64 ビットカーネルがインストールされていなければ、32 ビットカーネルがデフォルトでブートされます。
また、UltraSPARC システムでは、kadb などの多くのブートプログラムが 64 ビットプログラムになっており、32 ビットカーネルでも 64 カーネルでもブートできます。
32 ビットまたは 64 ビットのシステムをブートするときに問題が発生した場合は、次の節を参照してください。
64 ビット Solaris を UltraSPARC システムにインストールした後、次の条件に該当しないかぎり、64 ビットカーネルが自動的にブートされます。
64 ビットカーネルを正常にブートするためには、UltraSPARC システムの FLASH PROM をアップグレードする必要があります。UltraSPARC システムのファームウェアをアップグレードする必要があるかどうかを確認するには、ハードウェアメーカーのマニュアルを参照してください。
OpenBoot PROM の boot-file パラメータが kernel/unix に設定されており、64 ビットカーネルのブートに失敗した場合は、設定を解除して、システムをリブートします。
一部の UltraSPARC システムでは、システム上に 64 ビット Solaris のすべてのコンポーネントおよび適切なファームウェアが完全にインストールされていても、64 ビット Solaris のカーネルが自動的にブートされないことがあります。 64 ビットアプリケーションを実行するには、必ず 64 ビット Solaris のカーネルをブートする必要があります。
64 ビット Solaris のカーネルが自動的にブートされるようにするには、などこの問題についての詳細は、boot(1M) のマニュアルページおよび『Solaris 7 ご使用にあたって (SPARC 版)』を参照してください。
以下のように isainfo -kv コマンドによって、システム上で現在動作している Solaris カーネルを確認することができます。
$ isainfo -kv 64-bit sparcv9 kernel modules |
64 ビット Solaris オペレーティング環境は、32 ビット Solaris システムではブートできません。
一部の Solaris 7 システムパッケージは、32 ビットと 64 ビットの両方のバージョンを提供しています。次に例を示します。
SUNWcsl パッケージには、32 ビット Solaris コア共有ライブラリが含まれています。
SUNWcslx パッケージには、64 ビット Soilaris コア共有ライブラリが含まれています。
64 ビットアプリケーションを 32 ビットシステムで開発する場合は、64 ビットアプリケーションツール (64 ビット共有ライブラリ) を 32 ビットプラットフォームに追加できます。
システム管理者は、isainfo -n コマンドの出力に対応している新しい変数 NATISA をオートマウンタのマップに使用できます。この変数を設定すると、システムが 32 ビットまたは 64 ビットのネイティブアプリケーションをサポートするかどうかによって、異なるディレクトリ階層をシステムにマウントできます。
たとえば、次のマップエントリを使用すると、64 ビットアプリケーションがそのシステムでサポートされているかどうかによって、クライアントは /export/sparc/bin または /export/sparcv9/bin のどちらかをマウントできます。
/export/bin server:/export/$NATISA/bin -ro |
詳細は、automount(1m) のマニュアルページを参照してください。