3

CPU 何时以及如何在 X86 上从内核模式切换到用户模式:它到底做了什么?它是如何实现这种转变的?

4

2 回答 2

6

在 x86 保护模式下,CPU 正在执行的当前特权级别由CS寄存器的两个最低有效位(RPL段选择器的字段)控制。

因此,从内核模式 (CPL=0)到用户模式 ​​( ) 的切换CPL=3)是通过用用户模式的值替换内核模式的 CS 值来完成的。有很多方法可以做到这一点,但一种典型的方法是IRET弹出EIP,CSEFLAGS从堆。

于 2012-11-07T02:59:47.527 回答
2

iret例如这样做。请参阅此处的代码(INTERRUPT_RETURN 宏)

于 2012-11-06T09:29:39.777 回答