Quando eu faço um gato em / proc / cpuinfo, ele mostra uma linha com clflushsize: 64
Isso significa que meu kernel está sendo executado em 64 bits?
uname -a
lhe dirá o kernel - o bit final mostra a arquitetura.
Dois exemplos:
Meu mac:
Darwin Mac.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
Minha hospedagem Dreamhost:
Linux ecco 2.6.24.5-serf-xeon-c6.1-grsec #1 SMP Tue Oct 7 06:18:04 PDT 2008 x86_64 GNU/Linux
i386 = 32 bits
x86_64 = 64 bits
uname -m
fornecerá a arquitetura para a qual o kernel é compilado. Se for impressoi686
, seu kernel é de 32 bits, sex86_64
for de 64 bits, supondo que você tenha um chip Intel / AMD.fonte
i386
em plataformas de 32 bits mais antigos (e eu vi mesmo alguns pacotes compilados parai586
- não tenho certeza se isso seria sempre a produção emuname
, embora)uname -m
fornece a arquitetura que o kernel escolhe expor a esse processo específico, não a arquitetura nativa do kernel. Veja este link .uname -m
, relata a arquitetura real. Caso contrário, o administrador provavelmente realmente quer que você acredite que está nessa outra arquitetura e sua melhor aposta é aceitar que ele sabe o que está fazendo. Se você é o administrador e está mexendo,setarch
então já sabe melhor.setarch
e você pode invocá-lo sem ter idéia de que eleuname -m
retorna algo diferente. É possível, talvez até provável, que esse tipo de problema seja o motivo pelo qual o OP está perguntando.init
pense que é de 32 bits: a situação é o kernel de 64 bits com espaço de usuário de 32 bits. Muitos sistemas de compilação dependemuname -m
para determinar os sinalizadores do compilador, por exemplo, o GDB, eles devem ser fornecidos com personalidade falsa. Mas algum outro aplicativo de espaço do usuário ainda pode querer saber que tipo de kernel possui (por exemplo, para algumas necessidades de baixo nível), independentemente da personalidade.Eu acho que a maneira mais precisa é
aqui mostra exatamente
64
encontrado nesta dica
getconf
é do pacote libc-bin (no ubuntu)fonte
Se você deseja um relatório fácil, porém detalhado, sobre o seu sistema (software CPU, Kernel e Core OS) e não apenas o kernel , aqui está um pequeno script bash que fornecerá as respostas rapidamente.
Se você conhece o suficiente sobre as peculiaridades das CPUs e S / W de 32 bits / 64 bits, é simplesmente útil. Se você não sabe muito e acha que seu "sistema" é de 32 bits ou 64 bits, isso ajudará você a descobrir que a verdade pode ser mais complexa (partes do sistema podem ser de 64 bits enquanto outras de 32 bits) sem confundi-lo.
Novamente, este script (e resposta) não é para a pergunta literal "Como sei se meu kernel Linux está executando em 32 bits ou 64 bits?" mas para aqueles que também querem conhecer o arco de sua CPU e o SO principal do sistema operacional.
Relatórios de exemplo
Estes são exemplos para um caso bastante incomum:
Relatório do mini-script (para usuários experientes)
Relatório de script maior (para usuários menos experientes)
Os scripts
Mini-script (para administradores experientes)
Essas 4 linhas fornecem todas as informações essenciais.
Script maior (para usuários menos experientes)
Esse script imprime muitas explicações e é útil se você não tem experiência no assunto e se depara com um caso peculiar.
Se você quiser saber mais, leia estas duas páginas de onde obtive a maioria das informações. A) /programming/246007/how-to-determine-whether-a-given-linux-is-32- bit ou 64 bits b) /unix//a/134394/73271
fonte
Se você quiser ver apenas a plataforma em que está executando, poderá usar
A lista completa de opções suportadas
uname
éfonte
uname -i
impressõesGenuineIntel
, o que não é realmente o que ele está procurando.Unknown
em um Mac.i386
na minha máquina!CLFLUSHSIZE
não diz nada sobre o modo operacional do processador. De acordo com esta resposta , refere-se à menor unidade de cache liberável. No seu caso, as linhas de cache são lidas / gravadas em unidades de 64 bytes.uname
a produção varia muito para ser útil, como mostra a tabela de exemplos da Wikipedia . O método mais confiável égetconf LONG_BIT
o mostrado na resposta da Aquarius Power . Isso funciona independentemente da arquitetura do processador, portanto, fica em casa no ARM, Power ou MIPS e no x86.fonte