Por uma questão de conveniência, estou tentando executar uma instalação "normal" do Gentoo Linux como convidado dentro do VirtualBox em um host do Windows 7. Eu inicializei a instalação usando o VirtualBox, até. Mas agora, depois de cerca de um ano reconstruindo inevitavelmente todos os pacotes no Portage com -march=native nas flags do meu compilador, descobri que todos os programas não triviais (trivial = ls, cd, cat, nontrivial = vim, man, basicamente qualquer coisa vinculada à biblioteca padrão c++) são eliminadas quase imediatamente na inicialização. O log do kernel indica que ele prendeu instruções ilegais, como se o programa tivesse sido compilado com extensões de CPU que a CPU do host não suportava. Mas acontece! Meu entendimento de hipervisores como o VirtualBox é que os programas ainda devem estar rodando basicamente em bare-metal, sua maior função é manter o sistema operacional convidado e sua área de usuário e o sistema operacional host e a memória virtual de sua área de usuário separados.
Minha pergunta é: o que acontece? As VMs só podem usar algumas das instruções disponíveis na CPU do host? Ou este é um problema totalmente diferente?