Por que não podemos usar o sistema operacional de 64 bits em uma CPU de 32 bits?

2

Por que um SO de 64 bits não pode ser executado em uma CPU de 32 bits, mas um SO de 32 bits funciona em uma CPU de 64 bits?

    
por Bruce 04.02.2010 / 21:06

6 respostas

19

Estou assumindo que estamos falando de PCs padrão aqui.

A maioria dos processadores de 64 bits - especialmente os da Intel e da AMD - tem o conjunto completo de instruções de 32 bits, bem como as extensões de 64 bits, para que possam executar software de 32 bits.

Processadores de 32 bits não possuem um conjunto de instruções de 64 bits. Muitos foram feitos antes mesmo de o conjunto de instruções de 64 bits ser definido, portanto, não é possível que eles pudessem implementá-lo corretamente, até mesmo emulado. Eles simplesmente não entendem essa linguagem.

    
por 04.02.2010 / 21:09
9
As CPUs de 64 bits suportam qualquer comprimento de palavra de até 64 bits, portanto, em teoria, qualquer sistema operacional de 8, 16, 32 ou 64 bits será executado nelas. As CPUs de 32 bits não suportam comprimento de palavra de 64 bits, portanto, somente software < = 32 bits (incluindo SOs de 32 bits) pode ser executado nelas.

    
por 04.02.2010 / 21:09
5

Por que você não pode rodar o Windows no seu antigo Atari? Hardware e processadores incompatíveis.

x86-64 deve ser considerado completamente diferente do x86 porque é muito diferente do ponto de vista do kernel e do código de máquina. A única coisa que eles realmente compartilham em comum é o código bootstrapping (da inicialização de 16 bits, para chegar a 64 bits, você deve ir para 32 bits primeiro) e o modo de compatibilidade de 32 bits e as extensões de CPU comuns como SSE. Fora isso, os processadores são completamente diferentes de como as aplicações são feitas em código de máquina.

    
por 04.02.2010 / 21:29
2

É porque o processador, no caso de uma máquina de 32 bits, não suporta processamento de 64 bits, mas um processador de 64 bits é mais do que capaz de lidar com 32bits, já que pode lidar com 64bits de cada vez.

    
por 04.02.2010 / 21:09
2

Um sistema operacional de 64 bits é programado com registros de 64 bits em mente. Uma CPU de 32 bits tem apenas 32 bits.

Há muitas outras razões para isso também, além de apenas registrar.

    
por 04.02.2010 / 21:10
2

Um sistema operacional de 64 bits depende dos recursos do processador de um processador de 64 bits.

Você não pode dizer a um processo de 32 bits para realizar uma operação no registrador de 64 bits se ele não existir.

Considerando que os processadores de 64 bits têm tudo o que o de 32 bits tem, então isso pode ser feito.

    
por 04.02.2010 / 21:10