La risposta alla domanda nel titolo è proprio lì all'inizio dell'output:
File eseguibile LSB a 64 bit ELF , x86-64
ELF è il formato eseguibile e collegabile , il formato di file eseguibile binario più comunemente usato da Linux.
x86-64 è l'architettura del binario, la versione a 64 bit del set di istruzioni x86 originariamente introdotto da AMD . Per motivi che vanno oltre me, Microsoft si riferisce ad esso come "x64", ma è la stessa cosa.
Se hai bisogno di conoscere l'architettura del kernel stesso, puoi usare uname -mpi
. Ad esempio, sul mio sistema, che stampa:
x86_64 sconosciuto sconosciuto
il che significa che sto eseguendo un kernel x86-64.
Se sei interessato alla CPU stessa, guarda i /proc/cpuinfo
dettagli sulle CPU rilevate dal kernel Linux.
Un eseguibile 80x86 a 32 bit è identificato da file
come, ad esempio:
Eseguibile LSB a 32 bit ELF , Intel 80386 , versione 1 (SYSV), collegato dinamicamente (usa librerie condivise), per GNU / Linux 2.6.8, rimosso
che ci dice che è un eseguibile a 32 bit usando il set di istruzioni Intel 80386 (possibilmente con estensioni).
Si noti che non è così semplice come architetture a 32 bit contro 64 bit. Ad esempio, il kernel Linux supporta architetture a 32 bit come Intel 80386, AVR32 , S / 390 e Unicore32 . Sul lato 64-bit delle cose, Linux è utilizzabile su PA-RISC , x86-64, Itanium e Alpha , tra gli altri. Tuttavia, non tutte le distribuzioni forniscono file binari per tutte le architetture (e dubito che ci siano distribuzioni che si rivolgono allo stesso modo a tutte le architetture CPU supportate). Quindi, se vuoi sapere se un determinato binario sarà eseguibile su un dato sistema, devi considerare l' architettura , piuttosto che la dimensione della parola nativa della CPU.