2017-04-02 101 views
1

我了解陷阱和模拟是什么,但我很努力去理解二进制翻译是什么以及它与陷阱和模拟有什么不同。我对这个主题非常陌生,并且试图从2006年的一篇论文中了解这篇介绍:陷阱和模拟与二进制翻译有什么区别?

“直到最近,x86架构都没有允许经典的陷阱和模拟虚拟化。x86的虚拟机监视器,例如VMware®Workstation和Virtual PC,而是使用客户内核代码的二进制转换,但英特尔和AMD现在都引入了架构扩展来支持传统的虚拟化。“

我也不明白什么“经典虚拟化”是在上下文陷阱和模拟与二进制翻译。任何帮助理解这些条款将不胜感激。

+0

Trap-and-emulate *是经典的虚拟化技术,早在20世纪60年代和70年代就开始使用。 –

回答

2

我认为这个link会帮助你。我试图总结它,欲了解更多信息,请参阅链接。

每当访客操作系统尝试执行其中一项特权操作时,处理器将“陷阱”该指令并将控制权交给主机操作系统或管理程序,以便它可以执行所需的操作,然后返回控制权回到客人身边。但是大多数真实世界的指令集,包括x86,都没有考虑到虚拟化的设计。因此,有特权说明没有任何相应的陷阱设施。

二进制翻译直接解决了这个问题。它并不依赖处理器本身来检测特权指令,而是使用虚拟化软件检查软件中的指令流,并且每当虚拟化软件检测到有问题的指令时,就立即重写它,通常用一种手册替换它陷阱,这会在适当的时候将控制权交给管理程序。希望这可以帮助你。