confusão Solaris 32bit / 64bit

3

Eu tenho um Solaris em um AMD-

uname -a

OS Solaris 10 x86_64 (SunOS goldtpus34 5.10 Generic_144489-11

Eu queria descobrir se ele tem um kernel de 32 bits ou 64 bits Eu fiz

/usr/bin/isainfo -k

diz

amd64

mas quando eu faço

file /sbin/init 

diz

ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped

Além disso, se eu arquivar, ele diz

ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR FPU], dynamically linked, not stripped 

Assim, é possível ter um Kernel funcionando no modo de 64 bits, mas com o System utils / process spawner (init) no modo de 32 bits.

Estou confuso.

Como obter com precisão se o Kernel do sistema operacional está no modo de 64/32 bits no Solaris e no Linux?

    
por goldenmean 18.05.2012 / 16:25

2 respostas

6

A saída de isainfo -k mostra em que modo o kernel está sendo executado. No seu caso, você está executando um kernel de 64 bits. Tudo dentro do kernel é executado no modo de 64 bits (drivers de dispositivo, chamadas de sistema, etc. etc.)

A beleza do Solaris (e muitos outros sistemas operacionais, eu suponho) é que ele pode executar nativamente binários de 32 bits também. A maioria dos programas, ferramentas e utilitários fornecidos com o Solaris OS são ferramentas de 32 bits. As únicas exceções são aquelas que você pode encontrar em / usr / bin / amd64 . Esses são geralmente aqueles que têm que trabalhar diretamente com estruturas de kernel ou querem aproveitar o maior espaço de memória diretamente endereçável. Eles são escolhidos automaticamente (suas contrapartes de 32 bits podem ser encontradas em / usr / bin / i86 ) através de / usr / lib / isaexec que as ferramentas em questão são difíceis ligado a ( / usr / bin / ps , por exemplo, é um link duro para / usr / lib / isaexec ).

O

init vem apenas na forma de um binário de 32 bits, o que é um problema. Não diz nada sobre o kernel que você está executando. Tenho certeza de que o mesmo init de uma imagem do Solaris 2.3 ainda funcionará perfeitamente bem no Solaris 11 (sob SPARC, isto é). Realmente não faz nada emocionante.

    
por 06.06.2012 / 15:04
1

Esta discussão nos fóruns da Oracle explica bem a sua situação, na medida em que lida com Alguém que compartilha sua confusão. Vou citar alguns dos pontos relevantes, mas você deve ler o tópico.

Solaris 10 is delivered in both architectures, 32-bit and 64-bit, in the same media. The right mode will be automatically selected on first boot after installation.

If the system is booted in 32-bit, then Solaris has detected a 32-bit CPU.

What are the outputs of this commands :

# isainfo -kv

# psrinfo -pv

Portanto, se o SO informar que detectou um processador de 64 bits, ele estará funcionando no modo de 64 bits.

    
por 18.05.2012 / 17:20