答え1
uname -m
これは通常問題を解決しますarch
。
これら2つのコマンドの出力は、カーネルが構築されたアーキテクチャを伝えます。通常、32ビットか64ビットかは非常に明確です(x86_64とia64は2つの可能な64ビットアーキテクチャです)。ただし、64ビットハードウェアで実行している場合は、32ビットカーネルを使用できます。ハードウェアについて本当に学びたい場合は、確認してみてください。
less /proc/cpuinfo
「flags」行に「lm」がある場合は64ビットです。
またはあなたが持っているならlshw
lshw -class processor
そして「幅」線を見てください。
どちらのオプションも、grep
出力を確認せずにそれを使用して迅速に答えを得ることができます。
答え2
bootinfo
正確に何を知りたいかによって、いくつかの可能な答えがあります(AIXがどれに該当するのかわかりません)。
flags
の行を確認すると、CPUが64ビットなのか、32ビットなのか、どちらかがわかります/proc/cpuinfo
。アーキテクチャスイートで考えられる兆候を理解する必要があります。たとえば、i386/amd64 プラットフォームでは、このlm
フラグは amd64 をサポートする CPU を識別します (このフラグのない CPU は i386 のみです)。アーキテクチャを照会して、カーネルが32ビットか64ビットかを確認できます
uname -m
。たとえば、i[3456]86
isは32ビットx86_64
ですが、64ビットです。一部のアーキテクチャでは、64ビットカーネルが32ビットユーザーモードプログラムを実行できるため、64uname -m
ビットカーネルが表示されても64ビットライブラリを使用できるという保証はありません。クエリを使用すると、ユーザー空間で利用可能な項目を確認できます。最下位ビットサポート課
lsb_release
注文する。より正確には、サポートされているLSB機能の区切りリストをlsb-release -s
印刷します。:
すべての特徴に形があります。例えば、ix86 Cライブラリーの可用性はとしてマークされていますが、amd64用のエミュレーションライブラリーはとしてマークされています。ただし、すべてのディストリビューションが使用可能なすべてのLSBモジュールを宣言するわけではないため、この方法で検出できるよりも多くのLSBモジュールがある可能性があります。module-*version*-architecture
core-2.0-ia32
core-2.0-amd64
sizeof(void*)
あるいは、(Cコンパイラが利用可能であると仮定)を印刷する5行のCプログラムをコンパイルして、開発に好まれる単語サイズを確認することもできますsizeof(size_t)
。