É 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.
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
Linux VoYag3r 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux
No exemplo, acima, vê-se uma saída típica de uma máquina 32 bits (note a string i686
):
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.
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, do resultado do comando, tende a mostrar se a sua máquina é 32 ou 64 bits.
A figura, abaixo, mostra um exemplo da saída do comando.
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"
*-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[/plain]
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[/plain]
É 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.
Use o getconf
A função do getconf é inquirir sobre as variáveis do sistema. Uma destas variáveis é a LONG_BIT, que dá informações precisas sobre a arquitetura do seu sistema.
Observe:
getconf LONG_BIT
64
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
6 replies on “Comandos Linux que ajudam a determinar se o sistema é 32 ou 64 bits”
Legal mais uma vez, Valeu!!
Fiz alguns teste. Muito aprendizado.
O cpu apareceu 64 bits – no entanto, os outros componentes (pci) apareceram 32 bits.
Devo instalar o lubuntu 32 ou 64?
Obrigado, Gilson
É normal ter uma CPU 64 bits “cercada” de componentes 32, 16 e até 8 bits.
O que é determinante, neste caso, é a CPU. Instale o Lubuntu 64 bits, portanto.
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.
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.
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?
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.