ハードウェア、カーネル、およびユーザー空間プログラムは、ワード サイズが異なる場合があります¹。
-
CPU
07
をチェックすることにより、64 ビット、32 ビット、またはその両方が可能です。15
の行 .アーキテクチャファミリで可能なフラグを知っておく必要があります。たとえば、i386/amd64 プラットフォームでは、28
フラグは、amd64 対応の CPU を識別します (そのフラグを持たない CPU は i386 のみです)。grep -q '^flags *:.*\blm\b' /proc/cpuinfo # Assuming a PC
-
30
でアーキテクチャをクエリすると、カーネルが 32 ビットか 64 ビットかを確認できます。 .例:46
56
の間は 32 ビットです 64ビットです。いくつかのアーキテクチャでは、64 ビットのカーネルで 32 ビットのユーザーランド プログラムを実行できることに注意してください。 は 64 ビット カーネルを示していますが、64 ビット ライブラリが利用できるという保証はありません。[ "$(uname -m)" = "x86_64" ] # Assuming a PC
-
71
を使用して LSB サポートを照会することにより、ユーザーランドで利用可能なものを確認できます。 指図。より正確には、86
91
を出力します - サポートされている LSB 機能のリスト。各機能の形式は103
です .たとえば、ix86 C ライブラリの可用性は116
で示されます。 、122
の間 amd64 のアナログです。ただし、すべてのディストリビューションが利用可能な LSB モジュールをすべて宣言しているわけではないため、この方法で検出できるよりも多くのモジュールが利用可能である可能性があります。 -
136
のようなコマンドを使用して、システム上のどのアーキテクチャ プログラムが構築されているかを確認できます。 .混合システムを持つことも可能であることに注意してください。143
であっても が 64 ビット プログラムである場合、システムには 32 ビット プログラムを実行するためのライブラリがインストールされている場合があり、(あまり一般的ではありませんが) その逆もあります。 -
154
を出力する 5 行の C プログラムをコンパイルすることで、開発に適したワード サイズを見つけることができます (C コンパイラが利用可能であると仮定します)。 または169
.コマンド176
を実行すると、少し信頼性の低い方法で同じ情報を取得できます²。 .#include <stdio.h> int main() { printf("%d\n", (int)sizeof(void*)); return 0; }
仮想マシンに関しては、32 ビット システムで 64 ビット VM を実行できるか、またはその逆が可能かは、仮想マシン テクノロジによって異なります。具体的には、32 ビット Linux に 64 ビット Linux 仮想マシンをインストールするにはどうすればよいですか?
¹ 「ワードサイズ」は、ビットネスと呼ばれるものの通常の名前です。
² システムのデフォルト 186
のままで、別のターゲット アーキテクチャを持つ別の C コンパイラを誰かがインストールした場合、信頼できない可能性があります。 .