在我的应用程序内部以任何方式在虚拟机内运行Linux?

时间:2014-03-27 11:36:22

标签: linux virtual-machine virtualization

我希望能够分发在我的应用程序中运行的Linux。原因是我需要添加最容易添加到Linux容器中并随应用程序一起分发的软件功能。

有没有办法在Windows,OSX,Linux上的C / C ++应用程序中运行VM?

3 个答案:

答案 0 :(得分:1)

我想到了两个框架:

  • User mode Linux将Linux内核作为应用程序运行。这使您可以从Linux应用程序中启动和管理虚拟机。
  • libvirt提供了一个用于以编程方式管理各种虚拟机的工具包。

这些都可能需要Linux主机。对于其他主机操作系统,可能需要手动管理虚拟机 - 或使用临时脚本。

答案 1 :(得分:1)

QEMU可以运行VM,它可以在Windows,Linux和OSX上编译。 http://wiki.qemu.org/Main_Page QEMU可以用C ++编写。

理论上,QEMU可以嵌入到C ++程序中,用于运行Linux VM。

运行Puppy Linux http://www.erikveen.dds.nl/qemupuppy/

的示例QEMU

答案 2 :(得分:1)

VirtualBox有一个用于创建/运行VM的API。程序Vagrant使用它来为开发人员提供一种简单的跨平台开发方式。您可以从Windows,Linux或Windows运行vagrant up,它也会做同样的事情。

您还可以编写脚本添加到VM的端口,因此您的C ++程序可以说" VirtualBox,启动此图像",然后只需连接到TCP端口即可与" Linux程序& #34 ;.但是调试问题会很困难。

但如果您的目标是向非Linux桌面用户销售Linux程序,那么它可能最适合您和您的理智,咬紧牙关并将其移植到Windows / Mac。 (或者去Cloud并将其作为服务出售。)