我正在读Tanenbaum的“现代操作系统”,在描述Type2虚拟机管理程序(那些使用二进制翻译但不使用硬件虚拟化技术的虚拟机管理程序)的章节中,我无法理解以下短语:
8.3.3章:
此外,不需要替换用户程序中的敏感指令;硬件将直接忽略它们
1)用户程序不能发出可能导致系统管理程序被内核杀死的指令吗?
2)另外,为什么忽略用户程序的敏感指令是好的?虚拟机管理程序不应该捕获并处理它们吗?
发布于 2014-05-06 18:22:09
用户程序的敏感指令通常会被硬件忽略。用户程序不应该期望处于内核模式,因此实际上不应该编译任何敏感指令(相反,它们应该对操作系统进行API调用)。
它成为虚拟化的一个问题的原因是,操作系统确实希望在内核模式下执行(至少一些)代码(实际上,切换到内核模式是这些敏感指令之一)。这就是为什么虚拟机管理程序需要处理对敏感指令的调用,以便您可以在虚拟机管理程序上运行现成的操作系统。
相关:如果操作系统已经将其敏感指令替换为对虚拟机管理程序的调用(因为它事先知道它将在用户模式下运行),那么这将是半虚拟化。
https://stackoverflow.com/questions/23174595
复制相似问题