Type2 Hypervisors - 忽略用户程序的敏感指令

时间:2014-04-19 19:38:13

标签: operating-system kernel virtual-machine

我正在阅读Tanenbaum"现代操作系统"在描述Type2虚拟机管理程序(使用二进制翻译但没有硬件虚拟化技术的那些)的章节中,我无法理解以下短语:

第8.3.3章:

"此外,无需替换用户程序中的敏感指令;硬件将忽略它们"

1)用户程序是否可以制作可能导致管理程序被内核杀死的指令?

2)另外,为什么用户编程'敏感指令被忽略了? 管理程序不应该捕获它们并处理它们吗?

1 个答案:

答案 0 :(得分:0)

用户程序的敏感指令通常会被硬件忽略。用户程序应该永远不会期望处于内核模式,所以应该没有编译任何敏感指令(它们应该是对OS进行API调用)。

它成为虚拟化问题的原因是OS 希望在内核模式下执行(至少某些)代码(事实上,切换到内核模式是这些敏感指令之一) 。这就是虚拟机管理程序需要处理对敏感指令的调用的原因,以便您可以在虚拟机管理程序上运行现成的操作系统。

相关:如果操作系统已将其敏感指令替换为对管理程序的调用(因为它事先知道它将以用户模式运行),那么这将是半虚拟化。