-
Sie können sehen, ob die CPU ist 64-Bit, 32-Bit oder kann beides, indem Sie
flags
überprüfen Zeile in/proc/cpuinfo
. Sie müssen die möglichen Flags Ihrer Architekturfamilie kennen. Beispielsweise auf i386/amd64-Plattformen derlm
Flag identifiziert amd64-fähige CPUs (CPUs, die dieses Flag nicht haben, sind nur i386).grep -q '^flags\s*:.*\blm\b' /proc/cpuinfo # Assuming a PC
-
Sie können sehen, ob der Kernel 32-Bit oder 64-Bit ist, indem Sie die Architektur mit
uname -m
abfragen . Beispiel:i[3456]86
sind 32-Bit, währendx86_64
ist 64-Bit. Beachten Sie, dass auf mehreren Architekturen ein 64-Bit-Kernel 32-Bit-Userland-Programme ausführen kann, also selbst wennuname -m
einen 64-Bit-Kernel zeigt, gibt es keine Garantie, dass 64-Bit-Bibliotheken verfügbar sein werden.[ "$(uname -m)" = "x86_64" ] # Assuming a PC
Beachten Sie auch, dass
uname -m
kann einen „virtualisierten“ Wert zurückgeben. Beispielsweise unter Linux, wenn Siesetarch i386 bash
ausführen auf einem AMD64-System, und Sie führenuname -m
aus Von dieser Bash sehen Sieuname -m
meldeti386
. Dadurch können Sie effektiv vortäuschen, dass Sie sich auf einem „32-Bit-System“ befinden, obwohl der Kernel ein 64-Bit-Kernel ist, um beispielsweise 32-Bit-Programme zu kompilieren, ohne eine Kreuzkompilierung einzurichten. -
Sie können sehen, was im Userland verfügbar ist, indem Sie den LSB-Support mit dem
lsb_release
abfragen Befehl. Genauer gesagtlsb_release -s
gibt einen:
aus -getrennte Liste der unterstützten LSB-Funktionen. Jedes Merkmal hat die Formmodule-version-architecture
. Beispielsweise wird die Verfügbarkeit einer ix86-C-Bibliothek durchcore-2.0-ia32
angezeigt , währendcore-2.0-amd64
ist das Analogon für amd64. Nicht jede Distribution deklariert jedoch alle verfügbaren LSB-Module, daher können mehr verfügbar sein, als auf diese Weise erkennbar sind. -
Sie können die bevorzugte Wortgröße für die Entwicklung herausfinden (vorausgesetzt, ein C-Compiler ist verfügbar), indem Sie ein 5-zeiliges C-Programm kompilieren, das
sizeof(void*)
ausgibt odersizeof(size_t)
.
Sie können uname -a
verwenden und suchen Sie nach x86_64
um zu sehen, ob Sie 64-Bit ausführen. Alles andere (soweit ich weiß) und Sie verwenden 32-Bit oder Sie verwenden Nicht-PC-Hardware wie alpha
, sparc
, oder ppc64
.
uname -m | sed 's/x86_//;s/i[3-6]86/32/'