我理解陷阱和模拟是什么,但是我很难理解二进制翻译是什么以及它与陷阱和模拟的区别。我对这个话题很新,并试图从2006年的一篇论文中了解这篇介绍:
“直到最近,x86架构还没有允许传统的陷阱和模拟虚拟化。用于x86的虚拟机监视器,例如VMware®Workstation和Virtual PC,已经改为使用来宾内核代码的二进制转换。但是,英特尔和AMD现在都引入了架构扩展来支持经典虚拟化。“
我也不明白“经典虚拟化”在上下文陷阱和模拟与二进制翻译中是什么。任何帮助理解这些术语将不胜感激。
答案 0 :(得分:2)
我认为link会帮助你。我试图对其进行总结,有关更多信息,请参阅链接。
每当客户操作系统尝试执行其中一个特权操作时,处理器将“捕获”指令并将控制权交给主机操作系统或管理程序,以便它可以执行所需的操作然后返回控制权给客人。但是大多数现实世界的指令集,包括x86,都没有考虑到虚拟化。因此,有特权指令没有任何相应的陷阱工具。
二进制翻译直接解决了这个问题。它不是依靠处理器本身来检测特权指令,而是使用虚拟化软件来检查软件中的指令流,并且每当虚拟化软件检测到问题指令时,它都会在运行中重写它,通常用一种手册替换它。陷阱,在适当的时候将控制交给管理程序。希望这会对你有所帮助。