-
CPU
01
をチェックすることにより、64 ビット、32 ビット、またはその両方が可能です。19
の行 .アーキテクチャファミリで可能なフラグを知っておく必要があります。たとえば、i386/amd64 プラットフォームでは、22
フラグは、amd64 対応の CPU を識別します (そのフラグを持たない CPU は i386 のみです)。grep -q '^flags\s*:.*\blm\b' /proc/cpuinfo # Assuming a PC
-
34
でアーキテクチャをクエリすると、カーネルが 32 ビットか 64 ビットかを確認できます。 .例:41
51
の間は 32 ビットです 64ビットです。いくつかのアーキテクチャでは、64 ビットのカーネルで 32 ビットのユーザーランド プログラムを実行できることに注意してください。 は 64 ビット カーネルを示していますが、64 ビット ライブラリが利用できるという保証はありません。[ "$(uname -m)" = "x86_64" ] # Assuming a PC
76
にも注意してください 「仮想化された」値を返す場合があります。たとえば、Linux で81
を実行すると、 amd64 システムで95
を実行すると、 その bash から、108
が表示されます110
を報告 .これにより、たとえば、クロスコンパイルを設定せずに 32 ビット プログラムをコンパイルする場合など、カーネルが 64 ビット システムであっても、「32 ビット システム」上にいるふりを効果的に行うことができます。 -
127
を使用して LSB サポートを照会することにより、ユーザーランドで利用可能なものを確認できます 指図。より正確には、130
147
を出力します - サポートされている LSB 機能のリスト。各機能の形式は158
です .たとえば、ix86 C ライブラリの可用性は163
で示されます。 、171
の間 amd64 のアナログです。ただし、すべてのディストリビューションが利用可能な LSB モジュールをすべて宣言しているわけではないため、この方法で検出できるよりも多くのモジュールが利用可能である可能性があります。 -
180
を出力する 5 行の C プログラムをコンパイルすることで、開発に適したワード サイズを見つけることができます (C コンパイラが利用可能であると仮定します)。 または199
.
203
を使用できます 212
を探します 64 ビットを実行しているかどうかを確認します。それ以外 (私が知る限り) で、32 ビットを実行しているか、226
などの非 PC ハードウェアを使用している 、 231
、または 245
.
uname -m | sed 's/x86_//;s/i[3-6]86/32/'