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.