4

我一直在寻找明显的区别 b/wa 敏感和特权指令,但现在一切都模糊了。

据我所知:如果在用户空间中执行敏感指令需要捕获到内核模式,否则它会被忽略,而如果在用户空间中执行特权指令捕获到内核模式。

这种差异对我来说是模糊的和不满意的。随意放弃一个很棒的答案!

编辑:只是一个想法,这些是同一件事吗?

4

1 回答 1

5

这些术语通常用于硬件虚拟化的上下文中:虚拟机。敏感指令是管理程序虚拟机监视器(VMM) 想要捕获和模拟的指令,以使未修改的操作系统产生其拥有其硬件资源的错觉,即成功虚拟化和运行操作系统。

同时,特权指令只是指您的 ISA 定义为特权的指令集。也就是说,这些指令必须由在 ring 0 中运行的进程执行。(请注意,这个概念与用户空间或内核模式本身无关,而是与您的进程正在运行的 ring 级别有关。它就是这样几乎所有时间都发生这种情况,我们在 ring 3 中运行用户空间进程,而在 ring 0 中运行内核)。

理想情况下,我们希望敏感指令集等于特权指令集,这允许我们使用现有硬件进行陷阱和模拟。但过去并非如此,因此创建了英特尔 VT-x 等硬件扩展来解决这个问题。几乎所有现代 CPU 都支持硬件虚拟化,部分原因是允许 VMM 捕获和模拟所有敏感指令。

有关更多背景和资料,请参阅: Intel Pentium 支持安全虚拟机监视器的能力分析

于 2019-05-25T20:14:50.257 回答