• ベストアンサー

CPUのbit数を調べるコマンド

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

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.4

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だったはず。

taurus4
質問者

お礼

ありがとうございます。 % isainfo -v で64bitということが確認できました。 >intは、常に4バイト(32ビット)だと思います。 32ビット環境がILP32で、64ビット環境がLP64だったはず。 確かに上記プログラム、コンパイルして実行すると32と出ました。ILP32かLP64というのは、なにによってきまるんでしょうか?

その他の回答 (5)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.6

補足しておきます。 >>main() { >>printf( "%d\n", sizeof( int ) * 8 ) ; >>} > >intは、常に4バイト(32ビット)だと思います。 という書き方は語弊があるかもしれませんね。 CPUのビット数=intという時期もありましたので、No.1の方はそのためにその方法をお書きになったと思いますが、現在それが当てはまらなくなって来ているという事ですね。

taurus4
質問者

お礼

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

  • Lean
  • ベストアンサー率72% (435/603)
回答No.5

>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/64bit.html -------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_64bit.html
taurus4
質問者

お礼

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

  • 10gate
  • ベストアンサー率42% (50/117)
回答No.3

こんにちは。 コマンド等で、物理的な石のビット数を知るのは難しいような・・。 仮に64bitのCPUでもSolarisをインストールする際に32bitモードでインストールしたら、OSから実際は64bitだと知る事はできないように思います。 64bitのCPUで32bitモードでインストールするような事はしていないという前提なら uname -a で表示されませんでしょうか(手元に今Solarisがないのであいまいで恐縮です)。

taurus4
質問者

お礼

>仮に64bitのCPUでもSolarisをインストールする際に32bitモードでインストールしたら、OSから実際は64bitだと知る事はできないように思います。 そうなんですか、難しいですね。 uname -aでは32 64といった数字は確認できませんでした。

noname#43437
noname#43437
回答No.2

失礼しました・・ main() { printf( "%d\n", sizeof( int ) * 8 ) ; } ですね。(^^; これを、bits.c というファイルに作って、 gcc -o bits bits.c これで、ビット数を調べるコマンドのできあがりです。

noname#43437
noname#43437
回答No.1

コマンドとしてあるかな~・・と、調べてみたのですが・・ 調べるよりおそらく・・ main() { printf( "%d\n", sizeof( int ) ) ; } これをccでコンパイルしたほうが早いです。。(^^;

taurus4
質問者

お礼

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

関連するQ&A