比如,可以在 Windows 7 上用 Linux 客户机运行 VirtualBox,然后在该 Linux 机器内运行 Bochs 吗?
原因是我对开始操作系统开发很感兴趣,而且我发现在 *nix 机器上,所有教程和内容都更容易理解。我尝试使用 Cygwin,但我认为它增加了另一层复杂性,并不一定能让事情变得更简单。
答案1
长话短说: 是的。
每个虚拟机在技术上都是彼此“独立”的,并且虚拟盒,您可以轻松做到这一点,因为它在 Windows 和 Linux 主机操作系统(无论是否模拟)上都受支持。您可以简单地使用 Windows 作为您的“基本主机”操作系统,在虚拟机中运行 Linux,然后使用那操作系统作为 Bochs 的新基础主机。
请注意,这里唯一的限制是硬件。根据开发要求,您可能需要更多内存,或者升级到 64 位“基本主机”操作系统。话虽如此,如果您明智地选择 Linux 发行版,任何现代系统都应该能够像这样任意嵌套。
如果您启用,您将看到性能提升x86 虚拟化如果您的计算机上没有支持 x86 虚拟化(如果您的主板和 CPU 支持),并且据我所知,您可以将此功能“传递”到多个嵌套虚拟机。如果我们有n
嵌套的虚拟机,只要第一个嵌套客户操作系统支持 x86 虚拟化(基础主机也必须支持),此功能就会得到支持1
。n-1
请注意 ,仍然有一些安全问题如果您这样做,请注意,因此请采取适当的预防措施。
答案2
为了自学和测试目的,我有时会在 VMware Workstation 中运行整个 VMware vSphere 虚拟基础架构,以及虚拟 Cisco 路由器和交换机以及 EMC Celerra 虚拟化存储设备。
我称之为“初始计算”,这可能让人很困惑。不过,它比使用真实设备要便宜一些。
答案3
对于任何阅读过这个问题、看到可接受的答案并且认为这也适用于 VirtualBox 的人,请参阅来自@superbatfish 的评论关于原始问题。他对虚拟化和仿真之间的区别做出了很好的说明。
具体来说,“硬件辅助虚拟机”将无法在“顶级”客户操作系统中使用(即,在撰写本文时,VirtualBox 不为客户操作系统提供硬件虚拟机)。使用 VirtualBox,这意味着您只能创建 32 位“嵌套客户机”操作系统,即使顶级客户机是 64 位且您的“真实”主机具有硬件 VM。
对你来说可能不算什么,但值得一提。我需要这个来在 Windows 中的 Ubuntu 客户机上运行 Vagrant,进行 Chef cookbook 测试。
答案4
这是可能的,但不太可行,尤其是对于开发而言。您可能应该考虑将 Linux 作为本机操作系统运行,或者获取第二个设备来托管虚拟机。