É possível executar aplicativos de 64 bits em um sistema operacional de 32 bits, se o hardware for 64 bits?

5

Eu tenho um PC com hardware compatível com 64 bits.

Eu instalei uma distribuição do Ubuntu de 32 bits e gostaria de saber se é possível executar aplicativos de 64 bits (como o Mac OS X Snow Leopard funciona).

    
por Doron 26.01.2010 / 16:24

3 respostas

12

O Mac OS X de 32 bits pode executar aplicativos de 64 bits em hardware de 64 bits.

A razão pela qual isso funciona é porque o kernel do OS X (Darwin) é executado no submodo de compatibilidade do modo longo.

O Windows e o Linux não fazem isso e impõem um corte mais limpo entre x86 e x64. Com o Windows ou Linux você pode executar o kernel de 64 bits e drivers de 64 bits (e executar programas de 64 bits e 32 bits) ou o kernel de 32 bits e drivers de 32 bits (e executar apenas programas de 32 bits e 16 bits). p>

Observe que o código de modo real de 16 bits não funciona no modo longo e, portanto, o Mac OS X provavelmente não executaria programas de 16 bits se eles existissem para o Mac OS X e se o Mac OS X fosse executado no modo longo modo). O Windows também não pode executar o código de modo real de 16 bits no modo de 64 bits.

O VMware Fusion ou o Parallels rodando em Mac OS X de 32 bits em hardware de 64 bits executam convidados de 64 bits.

Cada processo de 32 bits em execução no Mac OS X de 32 bits em hardware de 64 bits recebe, penso eu, 4 GB de espaço de endereço virtual do usuário e 4 GB de espaço de endereço virtual do kernel. Os processos de 64 bits têm, suponho, 8 TB de espaço de endereço virtual do usuário e 4 GB de espaço de endereço virtual do kernel (porque o kernel é executado no modo de 32 bits).

O kernel do Mac OS X é (como a maioria dos programas do Mac OS X) um binário universal contendo código binário para PowerPC, x86 (32 bits) e x64 (64 bits). Mudar de uma plataforma para outra "simplesmente" carrega a parte apropriada do binário. O código x86 verifica se o modo longo está disponível e alterna para o modo longo, se possível, e executa em modo de compatibilidade para alcançar o resultado desejado.

N.B .: Embora o Mac OS X Snow Leopard não seja executado no PowerPC, o kernel ainda contém o código PowerPC, presumivelmente porque os binários do PowerPC podem utilizá-lo. Os binários PowerPC ainda são executados em Macs x86 e x64.

    
por 26.01.2010 / 18:41
6

Se você tiver um processador que suporte a virtualização de hardware (o mais recente do Intels) e o software da VM para suportá-lo, é possível instalar um sistema operacional de 64 bits em uma VM quando o sistema operacional host é de 32 bits. Você poderia então executar o aplicativo de 64 bits dentro da VM. Mas isso é o mais perto que posso ver você chegando.

    
por 26.01.2010 / 18:18
1

Como outros já disseram, em geral, os aplicativos de 64 bits não podem ser executados em um sistema operacional de 32 bits.

O motivo pelo qual isso funciona no OS X é que, em 10.5, o kernel de 32 bits ganhou a capacidade de copiar entre espaço de endereço de usuário de 32 e 64 bits e tem alguns manipuladores de 64 bits para coisas como trap / syscall. É essencialmente um kernel híbrido que não requer drivers de 64 bits, mas possui certas capacidades de 64 bits.

    
por 26.01.2010 / 17:16

Tags