【发布时间】:2015-08-18 22:38:26
【问题描述】:
这是关于机器虚拟化的。 我正在经历虚拟化,并了解到通过硬件辅助虚拟化技术,特权指令由陷阱故障方法识别,并动态替换为等效的用户级指令。但是在没有硬件支持的情况下,虚拟化是如何实现的?在 Intel VTi 或 AMD-V 之前,特权指令是如何被软件本身即时捕获的?在任何地方都使用:“二进制翻译”术语,就用用户指令替换特权指令而言,这很好,但是虚拟化工具(hypervisor/vmm)如何识别来宾操作系统运行的特权指令
编辑: 有些人认为这个问题并没有显示出研究成果并且正在投票。这些是我看过的一些论文
概述: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
螺母和螺栓:http://www.anandtech.com/show/2480
半虚拟化:http://en.wikipedia.org/wiki/Paravirtualization
如果有人有任何论文/资料可以回答上面提出的问题,我可能错过了回复。
【问题讨论】:
-
捕获特权指令是标准技术。无需替换,内核只需执行等效操作并递增指令指针即可让程序继续运行。
-
@HansPassant 你能详细说明从客户操作系统发出特权指令到下一条指令开始执行之间的步骤吗?
标签: x86 operating-system virtual-machine virtualization itanium