二进制翻译

时间:2011-05-15 10:27:00

标签: virtualization vmware

VMM捕获特权指令并使用二进制翻译进行翻译,但实际上是这些特殊指令被翻译成什么?

由于

2 个答案:

答案 0 :(得分:21)

二进制翻译是一种系统虚拟化技术。

Guest OS二进制文件中的敏感指令被安全处理此类敏感指令的Hypervisor调用或导致CPU陷阱的某些未定义操作码所取代。这样的CPU陷阱由Hypervisor处理。

在大多数现代CPU上,上下文相关指令是不可虚拟化的。二元翻译是一种克服这种限制的技术。

例如,如果访客想要修改/读取包含重要标志/控制位域的CPU处理器状态字,则主程序将扫描来宾二进制文件以获取此类指令,并将其替换为对虚拟机管理程序或某些虚拟控制器的调用。操作码。

另一方面,Para-Virtualization是一种修改guest虚拟机操作系统的源代码的技术。所有与系统资源访问相关的代码都使用Hypervisor API进行修改。

答案 1 :(得分:14)

请参阅VMware_paravirtualization.pdf,页面 3 4

  

这种方法,如图5所示,   翻译内核代码以替换   新的非可虚拟化指令   具有的指令序列   预期对虚拟的影响   硬件

因此,特权指令被转换为其他指令,这些指令访问虚拟机监视器提供的虚拟BIOS,内存管理和设备,而不是直接在真实硬件上执行。

这些指令究竟是什么,由VM实现定义。专有虚拟化软件的供应商不一定发布他们的二进制翻译技术。

相关问题