Die Antwort auf die Frage im Titel steht am Anfang der Ausgabe:
ELF 64-Bit- LSB-Programm, x86-64
ELF ist das ausführbare und verknüpfbare Format, das binäre ausführbare Dateiformat, das am häufigsten von Linux verwendet wird.
x86-64 ist die Architektur der binären, 64-Bit-Version des ursprünglich von AMD eingeführten x86-Befehlssatzes . Aus Gründen, die über mich hinausgehen, bezeichnet Microsoft es als "x64", aber das ist dasselbe.
Wenn Sie die Architektur des Kernels selbst kennen müssen, können Sie verwenden uname -mpi
. Auf meinem System wird beispielsweise Folgendes gedruckt:
x86_64 unbekannt unbekannt
was bedeutet, dass ich einen x86-64-Kernel betreibe.
Wenn Sie an der CPU selbst interessiert sind, schauen Sie /proc/cpuinfo
nach Details zu den vom Linux-Kernel erkannten CPU (s).
Eine ausführbare 32-Bit-Datei mit 80x86 wird file
zum Beispiel wie folgt identifiziert :
ELF- 32-Bit- LSB- Programm, Intel 80386, Version 1 (SYSV), dynamisch verknüpft (verwendet gemeinsam genutzte Bibliotheken), für GNU / Linux 2.6.8, entfernt
Dies sagt uns, dass es sich um eine 32-Bit-ausführbare Datei handelt, die den Intel 80386-Befehlssatz verwendet (möglicherweise mit Erweiterungen).
Beachten Sie, dass es nicht ganz so einfach ist wie 32-Bit- oder 64-Bit-Architekturen. Zum Beispiel unterstützt die Linux - Kernel 32-Bit - Architekturen wie Intel 80386, AVR32, S / 390 und Unicore32 . Auf der 64-Bit-Seite ist Linux unter anderem auf PA-RISC, x86-64, Itanium und Alpha einsetzbar . Allerdings bieten nicht alle Distributionen Binärdateien für alle Architekturen (und ich bezweifle, dass es Distributionen gibt, die alle unterstützten CPU-Architekturen gleichermaßen betreffen). Wenn Sie also wissen möchten, ob eine bestimmte Binärdatei auf einem bestimmten System ausführbar ist, müssen Sie die Architektur und nicht die native Wortgröße der CPU berücksichtigen .