-
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 derlmFlag 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 -mabfragen . Beispiel:i[3456]86sind 32-Bit, währendx86_64ist 64-Bit. Beachten Sie, dass auf mehreren Architekturen ein 64-Bit-Kernel 32-Bit-Userland-Programme ausführen kann, also selbst wennuname -meinen 64-Bit-Kernel zeigt, gibt es keine Garantie, dass 64-Bit-Bibliotheken verfügbar sein werden.[ "$(uname -m)" = "x86_64" ] # Assuming a PCBeachten Sie auch, dass
uname -mkann einen „virtualisierten“ Wert zurückgeben. Beispielsweise unter Linux, wenn Siesetarch i386 bashausführen auf einem AMD64-System, und Sie führenuname -maus Von dieser Bash sehen Sieuname -mmeldeti386. 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_releaseabfragen Befehl. Genauer gesagtlsb_release -sgibt 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-ia32angezeigt , währendcore-2.0-amd64ist 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/'