ハードウェア、カーネル、およびユーザー空間プログラムは、ワード サイズが異なる場合があります¹。
-
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 ビットかを確認できます。 .例:4656の間は 32 ビットです 64ビットです。いくつかのアーキテクチャでは、64 ビットのカーネルで 32 ビットのユーザーランド プログラムを実行できることに注意してください。 は 64 ビット カーネルを示していますが、64 ビット ライブラリが利用できるという保証はありません。[ "$(uname -m)" = "x86_64" ] # Assuming a PC -
71を使用して LSB サポートを照会することにより、ユーザーランドで利用可能なものを確認できます。 指図。より正確には、8691を出力します - サポートされている 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 コンパイラを誰かがインストールした場合、信頼できない可能性があります。 .