プロが教えるわが家の防犯対策術!

Solaris8なんですが、CPUが32bitか64bitか調べたいのですが、そういう情報が書かれているファイルもしくはコマンドってありますか?

A 回答 (6件)

No.3の方が書かれているように64ビットCPUで32ビット環境をインストールしていないという前提なら、isainfoコマンドでどっちの環境(32/64ビット)か分かります。



○isainfoコマンド実行例

 ・32ビット環境
 % isainfo -v
 32-bit sparc applications

 % isainfo -v
 32-bit i386 applications
 
 ・64ビット環境
 % isainfo -v
 64-bit sparcv9 applications
 32-bit sparc applications


あと、「psrinfo -v」でCPUの情報が表示されたはずですが、32ビットか64ビットかまでは表示されなかったと思います。

-------8<-------8<-------8<-------8<
No.1&No.2
>main() {
>printf( "%d\n", sizeof( int ) * 8 ) ;
>}

intは、常に4バイト(32ビット)だと思います。
32ビット環境がILP32で、64ビット環境がLP64だったはず。
    • good
    • 0
この回答へのお礼

ありがとうございます。 % isainfo -v で64bitということが確認できました。

>intは、常に4バイト(32ビット)だと思います。
32ビット環境がILP32で、64ビット環境がLP64だったはず。

確かに上記プログラム、コンパイルして実行すると32と出ました。ILP32かLP64というのは、なにによってきまるんでしょうか?

お礼日時:2005/05/12 09:49

補足しておきます。



>>main() {
>>printf( "%d\n", sizeof( int ) * 8 ) ;
>>}

>intは、常に4バイト(32ビット)だと思います。

という書き方は語弊があるかもしれませんね。

CPUのビット数=intという時期もありましたので、No.1の方はそのためにその方法をお書きになったと思いますが、現在それが当てはまらなくなって来ているという事ですね。
    • good
    • 0
この回答へのお礼

なるほど、そういう経緯があったんですか。補足ありがとうございました。

お礼日時:2005/05/13 09:24

>ILP32かLP64というのは、なにによってきまるんでしょうか?



CPUのビット数も関係してきますが、その環境(というよりはCコンパイラと言ったほうがいいのかな)が、どのデータモデル(LP32、ILP32、ILP64等) を実装しているかによります。

UNIX系OSの場合、32ビット環境だとint(I)、long(L)、Pointer(P)が32ビットのILP32が、64ビット環境だとlong(L)、Pointer(P)が64ビットのLP64が一般的というか事実上の業界標準だと思います。

データモデルの種類と各データモデルの型精度については、英語ですが参考URLのページでも参照してみて下さい。

ちなみにSunは、64-bitコンピューティングのFAQで下記のように書いてますね。

○64-bitコンピューティング FAQ
 http://jp.sun.com/products/software/solaris/faq/ …
-------8<-------8<-------8<-------8<-------8<-------8<-------
4. Q.
Solaris オペレーティングシステムはどのようなデータ・モデルを使用していますか。


A.
LP64 は事実上の業界標準です。L はロング (Long) を表し、P はポインタ (Pointer) を表します。両方とも 64 ビットですが、int は 32 ビットです。
-------8<-------8<-------8<-------8<-------8<-------8<-------

参考URL:http://www.unix.org/version2/whatsnew/login_64bi …
    • good
    • 0
この回答へのお礼

ありがとうございます。isainfoにより64bit環境ということが分かっていますが、つまり、どちらにしてもintは32bitということなんですね。

お礼日時:2005/05/13 09:22

こんにちは。



コマンド等で、物理的な石のビット数を知るのは難しいような・・。

仮に64bitのCPUでもSolarisをインストールする際に32bitモードでインストールしたら、OSから実際は64bitだと知る事はできないように思います。
64bitのCPUで32bitモードでインストールするような事はしていないという前提なら
uname -a
で表示されませんでしょうか(手元に今Solarisがないのであいまいで恐縮です)。
    • good
    • 0
この回答へのお礼

>仮に64bitのCPUでもSolarisをインストールする際に32bitモードでインストールしたら、OSから実際は64bitだと知る事はできないように思います。

そうなんですか、難しいですね。

uname -aでは32 64といった数字は確認できませんでした。

お礼日時:2005/05/12 09:13

失礼しました・・



main() {
printf( "%d\n", sizeof( int ) * 8 ) ;
}

ですね。(^^;
これを、bits.c というファイルに作って、

gcc -o bits bits.c

これで、ビット数を調べるコマンドのできあがりです。
    • good
    • 0

コマンドとしてあるかな~・・と、調べてみたのですが・・


調べるよりおそらく・・

main() {
printf( "%d\n", sizeof( int ) ) ;
}

これをccでコンパイルしたほうが早いです。。(^^;
    • good
    • 0
この回答へのお礼

なるほど、そういうやり方があったんですね。ありがとうございました。

お礼日時:2005/05/12 09:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!