Obtenha arquitetura Linux do sistema de arquivos / proc

4

Estou escrevendo um programa em Java e preciso determinar a arquitetura para a qual o Linux foi compilado.

Eu preciso de algo como uname -m , mas sem executar nenhum programa, mas sim do /proc pseduo-fs.

O que é uma fonte confiável para se ler?

    
por Gala 05.04.2016 / 20:05

3 respostas

4

Como você pode ter um Linux de 32 bits instalado em uma máquina de 64 bits, a maneira mais segura parece estar verificando os recursos da CPU. Para processadores Intel e compatíveis:

grep -o -w 'lm' /proc/cpuinfo 

link

What you're looking for is the following flag: lm. It stands for X86_FEATURE_LM, the Long Mode (64bit) support. If you can find the "lm" flag among your CPU flags, this means you're looking at a 64bit capable processor.

    
por 05.04.2016 / 21:09
1

Tudo o que estou vendo me diz que o binário uname simplesmente faz um syscall para uname() para obter suas informações, então isso pode ser mais difícil do que você deseja. Se você estiver disposto a implementar algum JNI, recomendo que você faça isso e emita o syscall. O pseudo arquivo valioso mais próximo de /proc que posso encontrar é /proc/sys/kernel/osrelease , que no meu sistema tem conteúdo de 4.2.3-300.fc23.x86_64 . Isso vai mudar com as versões, e pode mudar drasticamente entre os sabores do Linux, por isso pode não ser tão confiável quanto você precisa.

    
por 05.04.2016 / 20:20
-3

Tente o comando uname.

$ man uname

ou

$ uname -a

Até mais,

    
por 05.04.2016 / 20:12