我们使用'int'或新的'syscall/sysenter'指令从ring3转换到ring0。这是否意味着需要修改内核的页表和其他内容会自动由'int'指令或'int 0x80'的中断处理程序完成所需的操作并跳转到相应的系统调用?
另外,当从系统调用返回时,我们再次需要进入用户空间。为此,我们需要知道用户空间中指令的地址以继续用户应用程序。该地址存储在哪里?'ret'指令是否会自动将环从ring3更改为ring0,或者这种环更改机制发生在何处/如何发生?
然后,我读到从ring3到ring0的转换不像从ring0到ring3的转换那样昂贵。为什么会这样?
谢谢, Bala
另外,当从系统调用返回时,我们再次需要进入用户空间。为此,我们需要知道用户空间中指令的地址以继续用户应用程序。该地址存储在哪里?'ret'指令是否会自动将环从ring3更改为ring0,或者这种环更改机制发生在何处/如何发生?
然后,我读到从ring3到ring0的转换不像从ring0到ring3的转换那样昂贵。为什么会这样?
谢谢, Bala