Um computador é uma máquina constituída de dois componentes principais dispostos hierarquicamente conforme expresso na figura abaixo.
A partir deste escopo, observando a figura acima, a máquina virtual parte da ideia de acrescentar mais uma camada acima do sistema operacional e da CPU, de tal forma que os programas serão executados independentes da plataforma existente. Sendo assim, ao invés de um código fonte ser compilado em separado para cada plataforma que desejamos trabalhar, agora ele será compilado somente uma vez para a máquina virtual. Caberá a ela tratar a comunicação com as camadas inferiores, fazendo o programa ser executado, possibilitando a portabilidade de programas entre diferentes plataformas.
A camada inferior é o centro da parte física do computador e corresponde à CPU (Unidade Central de Processamento). Como já estudamos anteriormente, cabe a CPU ser a responsável pela realização de todas as operações que um programa necessite executar. Algo importante de ser observado é a característica de sua arquitetura, isto é, a especificação e implementação de um conjunto de instruções que serão suportadas por tal componente. Sendo assim, para que determinado arquivo seja executável em uma determinada UCP, há necessidade de representar o código fonte que o originou através de instruções codificadas para ter o funcionamento correto. A codificação das instruções também faz parte do projeto da arquitetura da CPU e determina o que cada sequência de bits irá representar.
XA camada superior é o Sistema Operacional. Sistema Operacional é o software responsável pela gerência da memória, por coordenar o acesso aos periféricos e também administra todos os processos que serão executados em uma máquina, sendo a interface entre um programa e a CPU. Exemplo de sistemas operacionais: Android, Microsoft Windows, GNU/Linux e IOS da Apple. O sistema operacional, bem como, a UCP, exige que os programas a serem instalados, sigam suas especificações para serem executados.
X