在linux中,当发生中断或异常时,如果CUrrent权限级别(CPL)的权限低于描述权限级别(DPL),则会引发一般保护!但在这种情况下,一般保护错误的作用是什么?请帮我!
TOC*_*TOC 12
处理器不允许在比CPL更少特权的代码段中将执行转移到异常或中断处理程序.试图违反此规则会导致一般保护异常(#GP).更多内容(http://www.lpthe.jussieu.fr/~talon/pentium3.pdf)
在内核中,每个异常都由特定的异常处理程序处理,该处理程序通常会向导致异常的进程发送Unix 信号.
在我们的例子中:内核将生成一个信号SIGSEV.在这种情况下,异常处理程序是general_protection( )(https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/traps.h)
编辑:在这个链接中你可以得到关于内核比较的一个很好的解释DPL,CPL并RPL:
http://duartes.org/gustavo/blog/post/cpu-rings-privilege-and-protection
另一个好的链接:
http://www.logix.cz/michal/doc/i386/chp06-03.htm
| 归档时间: |
|
| 查看次数: |
7562 次 |
| 最近记录: |