我读到内核可以允许进程(在用户模式下运行)执行IN
和OUT
CPU 指令(我认为这是特权指令)。
但是内核可以允许进程执行其他特权指令(例如:HLT
、RDTSC
等)吗?
答案1
是与否
不
有些指令必须限制在内核中,例如配置MMU。
是的
当执行特权指令时,会导致陷阱(异常)。这个陷阱可以由内核处理。内核可以选择代表用户模式进程运行指令(可能在检查和敏感之后)。
不
在x86上,一些特权指令没有特权,所以不要陷入陷阱。然而他们确实给出了正确的答案。当虚拟化特权代码时,这对于虚拟化来说可能是一个痛苦。 (例如询问我处于什么模式,并被告知用户模式)。