Pergunta

Como o Linux é simultaneamente 32 bits e 64 bits? Ou isso é algo tratado no Glibc?

Eu corro o CentOS 5.3 e é uma versão "64 bits"; Embora eu construa coisas por 64 bits e 32 bits. Pelo que acho que sei, o Windows supostamente tem um emulador de 32 bits. Linux faz a mesma coisa? Está no espaço do usuário ou no espaço do kernel?

Se a LIBC lida com isso, é como um emulador que diz, vou vincular -me a aplicativos de 32 bits, mas falo 64 bits no kernel?

Foi útil?

Solução

A CPU pode executar instruções de 64 e 32 bits e o kernel pode alternar entre os modos. A única limitação é que você não pode vincular programas de 32 bits contra bibliotecas de 64 bits, portanto, você deve ter versões de 32 e 64 bits do LIBC, etc.

Outras dicas

Nada está impedindo que a CPU mude de 64 para 32 bits. Apenas troca.

Você pode ter um kernel de 64 bits e executar aplicativos de 32 bits. Você pode até ter um kernel de 32 bits e executar aplicativos de 64 bits (Mac OS X).

No entanto, você precisa dos liberes que eles usam para também ter 32 bits ou ou 64 bits, e é por isso que você pode ver os arquivos chamados lib64 ou lib32 no Linux para os bits de 64 bits ou 32 bits.

Como os processadores x86_64 são projetados sobre a tecnologia X86, eles ainda podem suportar programas de 32 bits sem qualquer emulação de hardware, como o que você precisaria para executar programas X86 em um ambiente PowerPC ou SPARC. No Linux, tudo o que você precisa fazer é instalar as bibliotecas de software necessárias para executar o software de 32 bits.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top