A resposta para a pergunta no título está logo no início da saída:
ELF 64-bit LSB executável, x86-64
ELF é o formato executável e vinculável , o formato de arquivo executável binário mais comumente usado pelo Linux.
x86-64 é a arquitetura do binário, a versão de 64 bits do conjunto de instruções x86 originalmente introduzida pela AMD . Por motivos que estão além de mim, a Microsoft se refere a ele como "x64", mas é a mesma coisa.
Se você precisar conhecer a arquitetura do próprio kernel, poderá usá-lo uname -mpi
. Por exemplo, no meu sistema, isso imprime:
x86_64 desconhecido desconhecido
o que significa que estou executando um kernel x86-64.
Se você estiver interessado na própria CPU, procure /proc/cpuinfo
detalhes sobre as CPUs detectadas pelo kernel do Linux.
Um executável de 80x86 de 32 bits é identificado por file
, por exemplo:
ELF executável LSB de 32 bits , Intel 80386 , versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), para GNU / Linux 2.6.8, despojado
que nos diz que é um executável de 32 bits usando o conjunto de instruções Intel 80386 (possivelmente com extensões).
Observe que não é tão simples quanto as arquiteturas de 32 bits e de 64 bits. Por exemplo, o kernel Linux suporta arquiteturas de 32 bits, como Intel 80386, AVR32 , S / 390 e Unicore32 . Do lado de 64 bits, o Linux é utilizável no PA-RISC , x86-64, Itanium e Alpha , entre outros. Porém, nem todas as distribuições fornecem binários para todas as arquiteturas (e duvido que haja distribuições que tenham como alvo todas as arquiteturas de CPU suportadas igualmente). Portanto, se você quiser saber se um determinado binário será executável em um determinado sistema, considere a arquitetura , em vez do tamanho da palavra nativa da CPU.