可以在虚拟机内部运行机器模拟器(Bochs)吗?
比如说,在Windows 7上运行VirtualBox,配上一个Linux guest,在这个Linux机器里面运行Bochs,有没有可能?
原因是我对开始操作系统开发很感兴趣,我发现所有的教程什么的在*nix机器上更容易操作。我试过用Cygwin,但我认为它又增加了一层复杂性,不一定能让事情变得更简单。
比如说,在Windows 7上运行VirtualBox,配上一个Linux guest,在这个Linux机器里面运行Bochs,有没有可能?
原因是我对开始操作系统开发很感兴趣,我发现所有的教程什么的在*nix机器上更容易操作。我试过用Cygwin,但我认为它又增加了一层复杂性,不一定能让事情变得更简单。
长话短说 是。
每个虚拟机在技术上都是相互 “独立 "的,有了 VirtualBox ,你可以很容易地做到这一点,因为它在Windows和Linux主机操作系统上都是支持的(无论是否仿真)。你可以简单地使用Windows作为你的 "基础主机 "操作系统,在虚拟机中运行Linux,然后使用那个操作系统作为Bochs的新基础主机。
请注意,你在这里的唯一限制是你的硬件。根据你的开发需求,你可能需要更多的内存,或者升级到64位的 "基站 "操作系统。也就是说,如果你明智地选择你的Linux发行版,任何现代系统都应该能够像这样任意嵌套。
如果你在电脑上启用x86虚拟化支持(如果你的主板和CPU支持的话),你会看到性能的提高,AFAIK,你可以将这个功能 "通过 "到多个嵌套的虚拟机。如果我们有n
虚拟机相互嵌套,只要1
st到第n-1
个嵌套的客人操作系统支持x86虚拟化(基础主机也必须支持),就可以支持这个功能。请注意,如果你这样做,仍然有一些安全问题需要注意,所以要采取适当的预防措施。
如果有人读到这个问题,看到了公认的答案,并认为这也适用于VirtualBox,请看 @superbatfish的评论对原始问题的评论。他说的很好,虚拟化和仿真的区别。
具体来说,"硬件辅助虚拟机 “在 "顶层 "的客体操作系统中是无法使用的(也就是说,在写这篇文章的时候, VirtualBox在客体操作系统中不提供硬件虚拟机 )。在VirtualBox中,这意味着您只能创建32位的 "嵌套客人 "操作系统,即使顶层客人是64位的,而您的 "真实 "主机有硬件VM。
对你来说可能不是一个障碍,但值得注意。我需要这样做是为了在Windows内部的Ubuntu客人机上运行Vagrant,以便进行Chef食谱测试。
是 ,这是可能的,只要你的计算机足够强大,可以处理它。
在我的机器上(i7 4770S,16GB内存),我设法让VM-ception-ness级别达到4.5(最后一个有一半时间崩溃)。
我使用了VMware Player 12,因为VirtualBox不喜欢模拟VM-x,而且它的速度非常慢。现在,我想让W2K在XP上工作,但VMware无法安装,VirtualBox产生BSOD,所以我尝试使用QEMU。
请看这个截图(我见过的最漂亮的截图之一):