Die Antwort auf die Frage im Titel steht direkt am Anfang der Ausgabe:
ELF 64-Bit- LSB-Programm, x86-64
ELF ist das ausführbare und verknüpfbare Format , das von Linux am häufigsten verwendete ausführbare Binärdateiformat.
x86-64 ist die Architektur der Binärdatei, der 64-Bit-Version des ursprünglich von AMD eingeführten x86-Befehlssatzes . Aus Gründen, die mir unverständlich sind, nennt Microsoft es "x64", aber das ist das Gleiche.
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
Das bedeutet, dass ich einen x86-64-Kernel verwende.
Wenn Sie an der CPU selbst interessiert sind, informieren Sie sich /proc/cpuinfo
über die vom Linux-Kernel erkannten CPUs.
Eine ausführbare 32-Bit-80x86-Datei wird beispielsweise folgendermaßen identifiziert file
:
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 dies nicht ganz so einfach ist wie bei 32-Bit- oder 64-Bit-Architekturen. Zum Beispiel der Linux - Kernel unterstützt 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 zum Ziel haben). 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 .