"uname -m" é o comando que você está procurando. Você pode executar 32 bits e 64 bits nos modernos processadores Intel e AMD, para que "uname -p" não o ajude (além disso, na maioria das vezes não funciona nos dias de hoje, este aqui core2 acha a resposta para "uname -p" É desconhecido").
Procurar a existência de / usr / lib64 (como foi sugerido) também não ajudará, pois alguns pacotes relacionados a hardware e sistema instalarão as bibliotecas de 32 bits e 64 bits para ficarem seguros. No meu sistema (debian), o pacote fakeroot faz exatamente isso.
Quanto à saída de "uname -m", se for i386 ou i686, é de 32 bits, se é x86_64 (ou alpha, ou ia64 ou alguma outra arquitetura de 64 bits que eu nunca vi :) é de 64 bits.
(como um divertimento à parte, meu servidor FreeBSD de 64 bits retorna "amd64", o que pode ser um pouco estranho para um intel quadcore, mas totalmente compreensível se você conhece o histórico da arquitetura x86 de 64 bits)
isso indica a arquitetura de instalação ou a arquitetura real da CPU. Por exemplo, se você instalou o SO de 32 bits na CPU de 64 bits, isso retornaria i686 ou x86_64?
monkut
15
uname -a e procure por x86_64. Se você quiser saber se sua CPU suporta 64 bits, cat / proc / cpuinfo e procure por lm dentro dos sinalizadores.
Apenas para confundir as coisas, você pode executar um kernel de 64 bits com uma terra de usuário de 32 bits, que é o que estou fazendo. Nesse caso, uname -mretorna , x86_64mas não tenho bibliotecas de 64 bits instaladas para que a maioria dos programas de 64 bits não seja executada.
Então, quando você verificar uname, você precisa olhar para /lib64/ld-linux-x86-64.so.2, /lib64/libc-2.7.soe /lib/ld-linux.so.2, /lib/libc-2.7.sopara ver se 64bit e 32bit bibliotecas estão disponíveis. E para ter certeza, execute esses arquivos e verifique se eles são executados corretamente.
Outra informação útil é a saída da lsb_release -aqual é a distribuição cruzada e relatará quais módulos LSB específicos da arquitetura estão disponíveis.
O uname -m fornecerá apenas o 'arch' / arquitetura em execução do kernel. NÃO informará se você está executando uma distribuição GNU / Linux de 32 bits em uma CPU com capacidade de 64 bits.
Para conhecer sua capacidade de CPU:
cat /proc/cpuinfo
O sinalizador 'LM' deve estar presente em sistemas de 64 bits, pois representa 'LONG MODE' (extensões de 64 bits, AMD64 da AMD ou EM64T da Intel).
Respostas:
"uname -m" é o comando que você está procurando. Você pode executar 32 bits e 64 bits nos modernos processadores Intel e AMD, para que "uname -p" não o ajude (além disso, na maioria das vezes não funciona nos dias de hoje, este aqui core2 acha a resposta para "uname -p" É desconhecido").
Procurar a existência de / usr / lib64 (como foi sugerido) também não ajudará, pois alguns pacotes relacionados a hardware e sistema instalarão as bibliotecas de 32 bits e 64 bits para ficarem seguros. No meu sistema (debian), o pacote fakeroot faz exatamente isso.
Quanto à saída de "uname -m", se for i386 ou i686, é de 32 bits, se é x86_64 (ou alpha, ou ia64 ou alguma outra arquitetura de 64 bits que eu nunca vi :) é de 64 bits.
(como um divertimento à parte, meu servidor FreeBSD de 64 bits retorna "amd64", o que pode ser um pouco estranho para um intel quadcore, mas totalmente compreensível se você conhece o histórico da arquitetura x86 de 64 bits)
fonte
uname -a e procure por x86_64. Se você quiser saber se sua CPU suporta 64 bits, cat / proc / cpuinfo e procure por lm dentro dos sinalizadores.
fonte
para RedHat / CentOS:
32 bits
64 bits
fonte
Apenas para confundir as coisas, você pode executar um kernel de 64 bits com uma terra de usuário de 32 bits, que é o que estou fazendo. Nesse caso,
uname -m
retorna ,x86_64
mas não tenho bibliotecas de 64 bits instaladas para que a maioria dos programas de 64 bits não seja executada.Então, quando você verificar uname, você precisa olhar para
/lib64/ld-linux-x86-64.so.2
,/lib64/libc-2.7.so
e/lib/ld-linux.so.2
,/lib/libc-2.7.so
para ver se 64bit e 32bit bibliotecas estão disponíveis. E para ter certeza, execute esses arquivos e verifique se eles são executados corretamente.Outra informação útil é a saída da
lsb_release -a
qual é a distribuição cruzada e relatará quais módulos LSB específicos da arquitetura estão disponíveis.fonte
lsb_release -a
não saída a arquitetura userland$> getconf LONG_BIT
Resposta: 32 ou 64.fonte
Outra maneira de fazer isso é perguntar ao perl qual compilador disse que o tamanho de um número inteiro longo é:
vs.
Ou, se você possui o gcc instalado, o mesmo em C:
vs.
:-)
fonte
Como uma duplicata de:
Linux + como verificar a versão Linux 32 bits ou 64 bits
O uname -m fornecerá apenas o 'arch' / arquitetura em execução do kernel. NÃO informará se você está executando uma distribuição GNU / Linux de 32 bits em uma CPU com capacidade de 64 bits.
Para conhecer sua capacidade de CPU:
O sinalizador 'LM' deve estar presente em sistemas de 64 bits, pois representa 'LONG MODE' (extensões de 64 bits, AMD64 da AMD ou EM64T da Intel).
fonte
fonte
Se você possui / usr / lib64, está executando o x86_64.
fonte
O comando de Brad Gilbert tinha um bug perl. Eu o corrigi e o comando abaixo funciona: cat / proc / cpuinfo | sinalizadores grep ^ | perl -e '$ = <>; print ($ ? "x86_64 \ n": "não x86_64 \ n")'
fonte