Comandos Linux que ajudam a determinar se o sistema é 32 ou 64 bits

É possível determinar a arquitetura do seu sistema com 2 ou 3 cliques na tela, dependendo da versão do desktop gráfico que você estiver usando.
Neste artigo, vou mostrar como obter esta informação na linha de comando. O motivo disto é que esta informação poderá ser aplicada em qualquer sistema Linux, independente da sua versão ou tipo de ambiente gráfico que estiver sendo usado.

Intel Pentium M 1.4 Ghz Banias Core
Clique para detalhes.

Alguns destes comandos, podem ser aplicados, até mesmo, em um emulador de terminal de um celular ou tablet Android.

Saber extrair informações sobre a arquitetura do sistema é muito útil no momento de instalar ou compilar um novo software que vem empacotado para diversas arquiteturas — 32 bits, arm, 64 bits etc.

Saiba como verificar se o seu dispositivo Android é 32 ou 64 bit.

Como usar o comando uname para saber se o sistema é 32 bits ou 64 bits

A saída do comando UNAME varia intensamente de acordo com a arquitetura e a plataforma de hardware/software usada.
Uma das formas mais eficientes de usar o comando uname é em conjunto com o comando grep.
Se você usar o parâmetro -a, o uname irá exibir todas as informações que tiver sobre a máquina. Veja um exemplo:

uname -a

Saída do comando em uma máquina 32 bits (note a string i686):

Linux VoYag3r 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux

Abaixo, segue um exemplo do resultado do comando uname -a, em uma máquina de arquitetura 64 bits.

Linux caddy.stratOS.com 2.6.9-5.0.5.EL #1 SMP Tue Jul 15 03:55:02 UTC 2014 ia64 ia64 ia64 GNU/Linux

A string ia64 — abreviatura para Intel Architecture 64 – indica que o processador é 64 bits.
Você também pode reduzir a quantidade de informações, para obter apenas a arquitetura da máquina, assim:

uname -m
i686

Use o conteúdo do /proc/cpuinfo

Há várias informações úteis sobre a sua CPU, neste arquivo.
Determinar a arquitetura da sua máquina, a partir do /proc/cpuinfo pode exigir um pouco mais de conhecimento.
Use o comando grep para filtrar as informações — neste momento, só interessa o que se encontra no item flags da saída do comando. Veja:

cat /proc/cpuinfo | grep flags

Procure na sua listagem o flag lm — abreviatura para longmode. Este item indica suporte a 64 bits.

cpuinfo informações sobre a arquitetura do pc no linux
Clique para ver detalhes.

Use o comando file para descobrir a arquitetura

Determine o tipo de arquivo do init, assim:

file -e elf /sbin/init | grep -i bit

A primeira linha tende a mostrar se a sua máquina é 32 ou 64 bits. A figura, abaixo, mostra um exemplo da saída do comando.

Captura de tela da saída do comando file
Clique para ver detalhes.

Use o comando arch

O comando arch retorna a mesma saída de dados e informações que o uname -m.
Esta é, talvez, a maneira mais direta de obter informações sobre a arquitetura do seu sistema. Veja:

arch
ia64

Use o lshw

Este método pode apresentar resultados bem interessantes, mas tem alguns pontos chatos negativos:

  • A grande quantidade de informações, disponibilizada pelo comando lshw, pode levar à desinformação, em vez de te fornecer dados mais precisos
  • Por exibir um fluxo muito grande de informações e inquirir cada peça do seu hardware, o comando é lento
  • Precisa ser executado com privilégios administrativos ou a listagem pode ficar incompleta — uma vez que os usuários comuns não têm acesso às informações e aos recursos de todos os dispositivos do sistema

Ainda assim, eu te encorajo a fazer alguns testes, para ver qual deles lhe retorna resultados mais relevantes.
Para aumentar a velocidade da listagem, direcione o resultado para um arquivo texto, assim:

sudo lshw > lshw.txt

Em seguida filtre as informações do arquivo lshw.txt, com o comando grep. Veja um exemplo:

cat lshw.txt | grep -A 5 "logicalcpu"

Com o seguinte resultado (pra mim):

 *-logicalcpu:0
             descrição: CPU lógico
             ID físico: 0.1
             largura: 32 bits
             capacidades: logical
        *-logicalcpu:1
             descrição: CPU lógico
             ID físico: 0.2
             largura: 32 bits
             capacidades: logical

ou assim:

sudo lshw -class processor
  *-cpu                   
       product: Intel(R) Core(TM) i5-2537M CPU @ 1.40GHz
       vendor: Intel Corp.
       physical id: 1
       bus info: cpu@0
       size: 1548MHz
       capacity: 2300MHz
       width: 64 bits
       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid xsaveopt cpufreq

É preciso ser cuidadoso com a interpretação do comando lshw por que, mesmo em sistemas 32 bits, é possível ter vários componentes 64 bits (e vice-versa), como placas PCI etc.

Conclusão

O objetivo do artigo é, além de apresentar uma solução para um problema comum a muitos usuários, mostrar alguns comandos Linux e como podem ser úteis ao caso.
Espero que você tenha se divertido tanto quanto eu e, se quiser, compartilhe o artigo com seus amigos nas redes sociais.
Se você prefere usar outras formas para detectar a arquitetura do seu sistema, fique à vontade para escrever nos comentários — assim, você pode ser útil a outros leitores.

LEIA MAIS

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), desenvolvedor web e geek, nos mais diversos assuntos. Entusiasta de software livre e hacker de LEGO, acredito em repassar meu conhecimento e ajudar as pessoas sempre que for possível.

6 comentários sobre “Comandos Linux que ajudam a determinar se o sistema é 32 ou 64 bits”

  1. eu nao percebi devidamente, pois estou a usar um HP e parece-me que a informaçao é para lInUX. me actualizem em nicasiom@outlook.com. estou a usar o meu hp e nao sei e é 32, 64 ou 84, preciso do truque para descobrir.

  2. Elias, parabéns pela matéria.
    Também devemos observar que conseguimos instalar um SO 32 bits em uma arquitetura 64 bits, mas o contrário não é possível.

  3. Boa e bem escrita matéria. Mas continuo confuzo.
    Quando se fala em 32 ou 64 bits há de se esclarecer se estamos falando de hardware ou software, ou não?
    E o que tem a ver os i386, i686 e etc com os 32 e 64 Bits?

    1. Sim. Você tem razão — temos que procurar deixar claro se estamos falando de software ou hardware de 32 ou 64 bits.
      O i386 se refere à plataforma de hardware antiga, 32 bits, da Intel. Esta é a base, comercialmente falando, da plataforma 32 bits até os dias atuais.
      O i686 não é uma designação oficial. Refere-se a 6a geração de processadores da Intel (introduzida em 1995) e todos os outros compatíveis (de outras empresas).
      Quando falamos da arquitetura P6 ou i686, ainda estamos falando de uma arquitetura de 32 bits.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *