-
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 ビットかを確認できます。 .例:4151の間は 32 ビットです 64ビットです。いくつかのアーキテクチャでは、64 ビットのカーネルで 32 ビットのユーザーランド プログラムを実行できることに注意してください。 は 64 ビット カーネルを示していますが、64 ビット ライブラリが利用できるという保証はありません。[ "$(uname -m)" = "x86_64" ] # Assuming a PC76にも注意してください 「仮想化された」値を返す場合があります。たとえば、Linux で81を実行すると、 amd64 システムで95を実行すると、 その bash から、108が表示されます110を報告 .これにより、たとえば、クロスコンパイルを設定せずに 32 ビット プログラムをコンパイルする場合など、カーネルが 64 ビット システムであっても、「32 ビット システム」上にいるふりを効果的に行うことができます。 -
127を使用して LSB サポートを照会することにより、ユーザーランドで利用可能なものを確認できます 指図。より正確には、130147を出力します - サポートされている 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/'