![]() |
1
1
在发布时,Windows95只有识别奔腾Pro之前的CPU的代码。任何不低于Pentium Pro的处理器都称为“Pentium Pro”。 主要区别在于管理程序无法模拟CPU代码。所有代码必须在原始处理器上运行。 虚拟机监控程序确实模拟了BIOS,其中告诉操作系统可用的硬件规格,包括RAM、引导顺序和连接的外围设备。 |
![]() |
2
1
当您谈论VMware Fusion时,其工作方式取决于如何实现虚拟化。根据 wikipedia VMware Fusion利用了硬件辅助的虚拟化、动态二进制转换和准虚拟化。 在 hardware-assited virtualization case,@strom是正确的,来宾指令可以直接在主机CPU上执行。除了@strom answer,还可以通过捕获和模拟 CPUID 说明,正如我之前提到的。 在 para-virtualization 您可以通过调用管理程序来替换关键指令,管理程序代表来宾模拟指令。所以你再一次模仿 CPUID “假”CPU类型的指令。请记住,这需要一个经过修改的、因而是准虚拟化的来宾操作系统。 最后, dynamic binary translation 在运行时扫描来宾代码以获取关键指令,或者用陷阱将其替换为实现某种“实时准虚拟化”的管理程序,或者将来宾代码块转换为等效的主机代码块,根据原始来宾代码修改VM状态(例如,QEMU完整系统仿真器工程)。因此,您可以通过模拟 CPUID 指令。注意,在这种情况下,来宾和主机可以是相同的体系结构,但不需要这样做。 当然,上述技术的结合也是可行的。 至于主内存的虚拟化,系统管理程序完全控制硬件,因此您可以简单地用64MB的主内存配置一个虚拟机。由于前面讨论过的技术,虚拟机无法“看到”更多信息。 请记住,这只是对虚拟化的一个非常简短的概述,我试图保持它的简短和信息性,所以我知道我的解释部分不太准确。如果您真的对虚拟化感兴趣,我建议您阅读 “虚拟机:系统和进程的通用平台” 或者是关于这个话题的论文 波佩克和戈德伯格 和 “Xen与虚拟化艺术” |