CPU在X86上从内核模式切换到用户模式:何时以及如何?

goo*_*sse 3 context-switch linux-kernel

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

caf*_*caf 6

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

所以从内核模式切换CPL=0)到用户模式(CPL=3)通过用用户模式替换内核模式CS值来完成.有很多方法可以做到这一点,但是一个典型的方法是IRET弹出一个指令EIP,CSEFLAGS从中注册堆.