É trivial determinar se o sistema operacional do host possui um kernel de 32 ou 64 bits executando:
uname --machine
Uma saída de i386
significa 32 bits e x86_64
significa 64 bits.
É menos trivial, mas ainda possível determinar se um aplicativo é compilado para a arquitetura i386 ou amd64, mas nenhuma delas indicará a arquitetura do kernel. Mesmo a verificação de /sbin/init
não é tecnicamente suficiente, já que o programa init pode ser personalizado no momento da inicialização.
A única maneira infalível de determinar a arquitetura do kernel é realmente inicializá-lo. Felizmente isso pode ser feito facilmente usando qemu
.
Comece abrindo um terminal e navegando para /boot
no disco rígido. Você encontrará uma ou mais imagens de kernel compactadas no formulário:
vmlinuz-[version]-[type]
Por exemplo, tenho vmlinuz-3.19.0-21-generic
presente em /boot
na minha máquina. Agora, supondo que você tenha o qemu-system-x86 instalado, execute o seguinte comando, substituindo o nome do arquivo onde apropriado:
qemu-system-i386 -kernel <path_to_kernel>
Se você ver uma parede de texto rolar e eventualmente entrar em pânico (porque o FS raiz está ausente), você instalou um kernel de 32 bits. Se, em vez disso, você receber um erro semelhante ao exibido abaixo, você terá um kernel de 64 bits (que não inicializará em uma CPU x86).