Yad*_*erf 16 xen virtualization x86 intel computer-architecture
在硬件辅助虚拟化出现之前,存在由于各种原因而无法虚拟化的指令.有人可以解释这些说明是什么以及为什么它们不能被虚拟化?
hay*_*sti 38
要虚拟化ISA,必须满足某些要求.Popek和Goldberg使用了以下内容:
机器具有至少两种模式(a)用户模式和(b)系统模式.通常,应用程序以用户模式运行,操作系统以系统模式运行.在系统模式下,代码/程序可以无限制地查看和操作机器.在用户模式下,代码/程序在其可以做的事情上有一些限制,例如,如果没有首先获得许可,它就无法访问机器的所有内存.
说明是(a)特权或(b)没有特权.在用户模式下执行时,特权指令陷阱.陷阱意味着机器被强制进入系统模式,从而执行操作系统的某些代码来处理这种情况.从某种意义上说,它们在执行时会警告操作系统.
说明也可以是(a)敏感或(b)不敏感.敏感指令会修改计算机资源的一部分,或者表现出不同的行为,具体取决于它们是在用户模式还是系统模式下执行.
虚拟化ISA时,重要的是虚拟机监视器(VMM)可以检测并平稳处理程序或客户机操作系统修改计算机资源的任何尝试.它必须能够查看何时执行敏感指令.要做到这一点,所有的敏感指令需特权执行时,因此陷阱.陷阱时,我们可以进入系统模式并从VMM调用代码来处理资源修改.
问题是并非所有X86的敏感指令都是特权指令.这意味着可以在VMM查看和处理它的情况下进行资源修改,这可能是危险的.或者,它可能意味着在用户模式下在客户操作系统内执行指令,并且看到与在系统模式下执行它的效果不同的效果.根据这篇论文,x86中有17条指令是敏感的但没有特权.一个例子是POPF根据机器的模式具有不同的语义.
| 归档时间: |
|
| 查看次数: |
3257 次 |
| 最近记录: |