Alguns antecedentes
Então, estou tentando trabalhar em um determinado projeto de código aberto. O software de código aberto em questão é projetado para trabalhar em uma estação de trabalho VMWare e eu estou tentando contribuir para o projeto para tentar fazê-lo funcionar no VirtualBox também.
O projeto em questão é um projeto Python. A arquitetura, como discutido na documentação do projeto, é tal:
O sistema operacional básico é o Ubuntu de 64 bits (vamos chamá-lo de UBUNTU1) O software de virtualização é o VMware Workstation em execução no host. O sistema operacional convidado é outro Ubuntu de 64 bits. (vamos chamá-lo de UBUNTU2)
Agora, em um determinado local no projeto, o projeto inicia o sistema operacional convidado por meio de uma chamada de subprocesso () do Python. Portanto, ele simplesmente passa o caminho para o utilitário vmrun, o caminho para o arquivo .vmx (do sistema operacional guest) e alguns argumentos de controle adicionais para a chamada de subprocesso e inicializa o sistema operacional convidado.
A ferramenta tem muitas outras dependências também, que estão disponíveis apenas para o Ubuntu e não para o Mac, ou pelo menos são realmente difíceis de configurar no Mac OSX El capitan (não falando do Windows por enquanto)
Então, agora, meu processo de pensamento é que eu preciso fazer isso funcionar no próprio Ubuntu de alguma forma. Então, abaixo está o que eu tenho tentado fazer:
1ª abordagem:
Arquitetura é tal:
SO base - Mac OSX 64 bit
Software de virtualização - VirtualBox
Guest OS - Ubuntu 64 bit (UBUNTU1 da referência acima). Dentro deste sistema operacional convidado, instale novamente a caixa virtual e instale o guest Ubuntu de 64 bits (UBUNTU2)
Mas algumas pesquisas mostraram que, embora possa funcionar, o VirtualBox não suporta VMs aninhadas.
Agora, a próxima abordagem:
Arquitetura é tal:
SO base - Mac OSX 64 bit
Software de virtualização - VirtualBox
Guest OS - Ubuntu 64 bit (UBUNTU1 da referência acima)
Um segundo sistema operacional convidado - também Ubuntu 64 bits (UBUNTU2 da referência acima)
Agora, quando o projeto python é executado em UBUNTU1 e no ponto em que deve iniciar UBUNTU2 programaticamente,
Por favor, descubra minhas dúvidas sobre os processos. Eu estou tentando envolver minha cabeça em torno disso.