Máquinas virtuais não entendem o que está acontecendo por dentro, elas estão apenas simulando hardware.
Existem 3 métodos básicos de simulação de VM. O mais óbvio é a emulação de hardware, que é o que Bochs faz. Ele está apenas simulando o PC compatível com x86 de forma programática, sem nenhuma magia mais profunda por trás dele. O PC é uma máquina para processamento de dados, portanto, o Bochs usa o sistema operacional do host para coletar dados de entrada e alimentá-los em dispositivos virtuais emulados, depois lê os dados de saída desses dispositivos e usa o host para apresentá-los. É exatamente isso que os emuladores de console e programas similares fazem. Bochs não sabe o que acontece dentro da VM, funciona em hardware emulado. O conceito de processos é abstrato demais para isso, não precisa se preocupar com essas coisas - apenas emulação de hardware.
O segundo tipo de VM é comum antes da introdução da virtualização acelerada por hardware. A emulação de estilo Bochs é lenta, porque está interpretando o código de máquina byte por byte. A execução de código de bytes nulo é impossível em um sistema operacional em execução devido à maneira como as CPUs funcionam (e funcionam assim por um bom motivo), mas um aplicativo pode pegar um pedaço de código de bytes e editá-lo para torná-lo seguro em um sistema operacional host. em seguida, execute-o como seu próprio código. O estágio de edição tem duas finalidades: limpar o código para tornar possível a execução e conectar dispositivos de E / S simulados a fontes / destinos de dados apropriados do host. Ainda assim, nada como processos existem para uma VM, é apenas um código em pseudo-emulação em uma CPU física, fingindo que é o código do programa.
Por fim, o terceiro tipo de VMs é VMs virtualizadas aceleradas por hardware. Requer suporte em hardware, mas todas as CPUs modernas o possuem. É apenas sobre fazer o que eu disse é impossível antes: executar código de baixo nível em paralelo ao sistema operacional host. A coisa é, se você tiver embutido na CPU, você pode deixá-lo lidar com o código corretamente. Ele criará um ambiente de sandbox para esse código, dando ao host controle sobre essa sandbox. Desta forma, o código da VM é executado ainda mais perto do hardware, portanto, ele funciona mais rápido. Também está mais perto de usar o sistema de anéis de hardware, mas ainda não introduz o conceito exato de processos. Estes são sempre tratados pelos sistemas operacionais convidados. Mas nas VMs aceleradas por hardware você pode realmente ver algo semelhante à troca de contexto como no host. Outros tipos de VMs sempre são executados como programas no nível do usuário.