Quando eu digito uname -a
, ele dá a seguinte saída.
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux
Como posso saber que o SO dado é 32 ou 64 bit?
Isto é útil ao escrever scripts `configure', por exemplo: para que arquitetura estou construindo?
Tente uname -m`. O que é a abreviação de `uname --machine' e sai:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
Caso contrário, não para o kernel Linux, mas para a CPU, você digita:
cat /proc/cpuinfo
ou..:
grep flags /proc/cpuinfo
Sob " flags" parâmetro, você verá vários valores: veja "O que significam as bandeiras em /proc/cpuinfo?"
Entre eles, um é chamado lm
: Long Mode
(x86-64: amd64, também conhecido como Intel 64, i.e. 64-bit capable)
lm ==> 64-bit processor
Ou utilizando lshw
(como mencionado abaixo por Rolf of Saxony), sem sudo
(apenas para untar a largura da cpu):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
**Nota: você pode ter uma CPU de 64-bit com um kernel de 32-bit instalado*.
(como ysdx menciona em sua própria resposta, "Hoje em dia, um sistema pode ser multiarch** por isso não faz sentido de qualquer forma. Você pode querer encontrar o alvo padrão do compilador")
Se você estivesse rodando uma plataforma de 64 bits você veria x86_64 ou algo muito similar na saída de uname -a
Para que o seu hardware específico da máquina seja executado
uname -m
Você também pode chamar
getconf LONG_BIT
que retorna 32 ou 64
Esse sistema é 32bit. iX86 em uname
significa que é uma arquitetura de 32 bits. Se fosse de 64 bits, ele retornaria
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 x86_64 i686 x86_64 x86_64 GNU/Linux