我一直在寻找与敏感和特权指令明显不同的指令,但是现在所有指令都很模糊。
据我所知:如果在用户空间中执行,敏感指令需要会陷入内核模式,否则它会被忽略,而特权指令将陷阱会进入内核模式如果在用户空间中执行。
这种差异对我来说是模糊的并且不能令人满意。随意放弃一个令人敬畏的答案!
编辑:只是一个想法,这些都是同一回事吗?
答案 0 :(得分:0)
这些术语通常在硬件虚拟化的上下文中使用:虚拟机。灵敏的指令是 hypervisor 或虚拟机监视器(VMM)想要捕获并仿效,以使未经修改的OS拥有其硬件资源的幻觉,即成功虚拟化的指令。并运行操作系统。
同时,特权指令仅指ISA定义为特权的指令集。也就是说,这些指令必须由在环0中运行的进程执行。(请注意,此概念与用户空间或内核模式本身没有关系,相反,它与您的进程的环级有关几乎在所有时间,我们在环3中运行用户空间进程,在环0中运行内核。)
理想情况下,我们希望敏感指令集等于特权指令集,这使我们可以使用现有硬件进行陷印和仿真。但是过去情况并非如此,因此创建了硬件扩展(例如Intel VT-x)来解决此问题。几乎所有现代CPU都支持硬件虚拟化,部分是通过允许VMM捕获并仿真所有敏感指令来实现的。
查看更多背景和来源: Analysis of the Intel Pentium's ability to support a secure virtual machine monitor