例如,是否可以在具有Linux guest虚拟机的Windows 7上运行VirtualBox,并在该Linux计算机内部运行Bochs?
原因是我对开始进行OS开发感兴趣,而且我发现* nix机器上的所有教程和内容都更容易理解。我尝试使用Cygwin,但我认为它增加了另一层复杂性,并不一定会使事情变得容易。
例如,是否可以在具有Linux guest虚拟机的Windows 7上运行VirtualBox,并在该Linux计算机内部运行Bochs?
原因是我对开始进行OS开发感兴趣,而且我发现* nix机器上的所有教程和内容都更容易理解。我尝试使用Cygwin,但我认为它增加了另一层复杂性,并不一定会使事情变得容易。
Answers:
长话短说: 是的。
从技术上讲,每个虚拟机都是彼此“独立”的,使用VirtualBox可以轻松做到这一点,因为Windows和Linux主机操作系统(是否仿真)都支持该虚拟机。您可以简单地将Windows用作“基本主机”操作系统,在VM中运行Linux,然后将该操作系统用作Bochs的新基本主机。
请注意,这里唯一的限制是硬件。根据您的开发要求,您可能需要更多内存或升级到64位“基本主机”操作系统。话虽如此,如果您明智地选择Linux发行版,那么任何现代系统都应该能够像这样任意嵌套。
如果在计算机上启用x86虚拟化支持(如果您的主板和CPU支持)和AFAIK,则可以看到性能的提高,您可以将该功能“传递”到多个嵌套的虚拟机。如果我们有n
嵌套在海誓山盟的虚拟机,这是支持的,只要1
第一到 n-1
第嵌套的来宾操作系统具有x86虚拟化(底座主机也必须支持它)的支持。请注意,如果这样做,仍要注意一些安全问题,因此请采取适当的预防措施。
我有时会在VMware Workstation内运行整个VMware vSphere虚拟基础架构,以及虚拟Cisco路由器和交换机以及EMC Celerra虚拟存储设备,以进行自学和测试。
我称其为“初始计算”,它可能会造成混乱。但是,它比使用真正的齿轮便宜。
对于阅读此问题,看到已接受的答案并认为这也适用于VirtualBox的任何人,请参阅@superbatfish对原始问题的评论。他很好地说明了虚拟化和仿真之间的区别。
具体来说,“硬件辅助VM”在“顶级”来宾OS中将不可用(也就是说,在撰写本文时,VirtualBox尚未在来宾OS中提供硬件VM)。使用VirtualBox,这意味着您只能创建32位“嵌套来宾”操作系统,即使顶级来宾是64位并且“实际”主机具有硬件VM。
可能对您而言不是最佳选择,但值得注意。我需要这样做,以便在Windows内部的Ubuntu来宾上运行Vagrant,以进行Chef Cookbook测试。
Linux-KVM对嵌套虚拟机提供了一些支持。我已在KVM IRC频道上提问,并获得了以下信息(但请不要相信,请自己尝试):
我自己还没有尝试过。搜索“嵌套的KVM”应为您提供足够的信息,以便您自己尝试。
编辑:KVM将仅在Linux主机上运行。关于正确的嵌套VM支持,我尚未获得有关Windows虚拟化软件的任何可靠信息。“适当”是指管理程序向访客公开虚拟化扩展。您始终可以使用纯软件管理程序(例如,动态翻译)运行嵌套VM,但这会明显变慢。
编辑:您提到的Bochs是仅软件的管理程序。这意味着它总是很慢,并且如果主机上的虚拟机管理程序向来宾公开虚拟化扩展(就像KVM一样),则是无关紧要的。但是,大多数其他虚拟化软件(KVM,VirtualBox,VMWare)可以利用这些扩展,并且如果可用的话,它们的性能会更好。
这是可能的,但不是很可行,特别是对于开发而言。您可能应该将Linux作为本机OS运行,或者再找一个主机来托管VM。
此过程的详细描述在此页上:https : //wiki.openstack.org/wiki/XenServer/VirtualBox
在VirtualBox机器网卡中,您必须设置“全部”处于“混杂模式”和其他几个选项,并且可以在vm内安装操作系统,例如在vm内安装Xenserver,例如VirtualBox。