通过Python在virtualbox中从另一个客户操作系统访问一个客户操作系统

通过Python在virtualbox中从另一个客户操作系统访问一个客户操作系统

一些背景知识
所以我正在尝试开发某个开源项目。这个开源软件是为在 VMWare 工作站上运行而设计的,我正在尝试为该项目做出贡献,让它也能在 VirtualBox 上运行。

该项目是一个 Python 项目。如项目文档中所述,其架构如下:

基础操作系统是 64 位 Ubuntu(我们称之为 UBUNTU1)。虚拟化软件是在主机上运行的 VMware Workstation。客户操作系统是另一个 64 位 Ubuntu。(我们称之为 UBUNTU2)

现在,在项目的某个位置,项目通过 Python subprocess() 调用以编程方式启动客户操作系统。因此,它只需将 vmrun 实用程序的路径、.vmx 文件(客户操作系统的)的路径和一些额外的控制参数传递给子进程调用,然后启动客户操作系统。

该工具还有很多其他依赖项,仅适用于 Ubuntu,不适用于 Mac,或者至少在 Mac OSX El capitan 上设置起来非常困难(暂时不谈 Windows)

所以现在,我的想法是,我需要以某种方式让它在 Ubuntu 上运行。以下是我一直在尝试做的事情:

第一种方法:
架构如下:基本操作系统 - Mac OSX 64 位虚拟化软件 - VirtualBox 客户操作系统 - Ubuntu 64 位(上述参考中的 UBUNTU1)。在此客户操作系统中,再次安装虚拟盒并安装客户 Ubuntu 64 位(UBUNTU2)

但一些研究表明,尽管它可能有效,但 VirtualBox 不支持嵌套虚拟机。

现在介绍下一个方法:
架构如下: 基本操作系统 - Mac OSX 64 位 虚拟化软件 - VirtualBox 客户操作系统 - Ubuntu 64 位(上述参考中的 UBUNTU1) 第二个客户操作系统 - 也是 Ubuntu 64 位(上述参考中的 UBUNTU2)

现在,当 Python 项目在 UBUNTU1 上运行时,并且必须以编程方式启动 UBUNTU2 时,

  1. 可以从一个客户操作系统启动另一个客户操作系统吗?可以使用 vboxmanage start,但它是主机 (Mac) 可用的工具,而不是 UBUNTU1。即使我在 UBUNTU1 上安装了 vboxmanage,并通过共享文件夹将 UBUNTU2 的 .vbox 映像从 Mac 共享到 UBUNTU1,并注册它,我也无法从 UBUNTU1 内部启动 UBUNTU2。
  2. 为了更好地理解,深入研究一下内部原理,UBUNTU1 和 UBUNTU2(Mac 中的 2 个客户操作系统)在运行时,难道不是像其他任何操作系统一样只是 2 个进程吗?如果是,那么我不能尝试在 2 个客户操作系统之间进行一些进程间通信,并将 UBUNTU2 所需的进程上下文提供给 UBUNTU1 吗?

请耐心回答我关于流程的新手问题。我正在努力理解它。

相关内容