这是关于机器虚拟化的。 我正在经历虚拟化并了解到借助硬件辅助虚拟化技术,特权指令通过陷阱故障方法识别,并即时替换为等效的用户级指令。但是在没有硬件支持的情况下如何实现虚拟化?在 Intel VTi 或 AMD-V 之前,特权指令是如何被软件本身捕获的?到处都使用:“二进制翻译”术语,就用用户指令替换特权指令而言这很好,但是虚拟化工具(hypervisor/vmm)如何识别 guest 操作系统运行的特权指令
编辑: 有些人认为这个问题没有显示出研究成果,因此投了反对票。这些是我浏览过的一些论文
概览:https://www.vmware.com/pdf/virtualization.pdf
英特尔文档:https://software.intel.com/sites/default/files/m/d/4/1/d/8/An_Introduction_to_Virtualization.pdf
简介:http://www.kernelthread.com/publications/virtualization/
x86 虚拟化 http://en.wikipedia.org/wiki/X86_virtualization
hw sf虚拟化比较:http://www.vmware.com/pdf/asplos235_adams.pdf
螺母和 bolt :http://www.anandtech.com/show/2480
半虚拟化:http://en.wikipedia.org/wiki/Paravirtualization
如果有人有任何论文/资源可以回答上面提出的问题,而我可能错过了,请回复。
最佳答案
在没有硬件支持的情况下,paravirtualization可以使用。 guest 操作系统经过修改,以便不直接访问某些硬件资源,而是调用虚拟机管理器 (VMM) 或管理程序。
例如,不能允许 x86 上的客户操作系统禁用实际 CPU 上的中断。相反, guest 操作系统调用 VMM 来模拟禁用中断。
另一种选择是 native virtualization .在 native 虚拟化中, guest 操作系统及其进程的指令被模拟。仿真层允许虚拟化软件处理诸如 cli 之类的特权指令。因此, native 虚拟化既不需要硬件支持,也不需要修改客户操作系统。
关于x86 - 没有硬件支持如何实现机器虚拟化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641784/