不

我读到内核可以允许进程(在用户模式下运行)执行INOUTCPU 指令(我认为这是特权指令)。

但是内核可以允许进程执行其他特权指令(例如:HLTRDTSC等)吗?

答案1

是与否

有些指令必须限制在内核中,例如配置MMU。

是的

当执行特权指令时,会导致陷阱(异常)。这个陷阱可以由内核处理。内核可以选择代表用户模式进程运行指令(可能在检查和敏感之后)。

在x86上,一些特权指令没有特权,所以不要陷入陷阱。然而他们确实给出了正确的答案。当虚拟化特权代码时,这对于虚拟化来说可能是一个痛苦。 (例如询问我处于什么模式,并被告知用户模式)。

相关内容