2012-08-16 66 views
3

在Linux中,当发生中断或异常时,如果CUrrent Privilege Level(CPL)权限低于描述权限级别(DPL),将引发通用保护!但在这种情况下通用保护故障的功能是什么?请帮帮我!一般保护的功能是什么?

+0

这是功课吗? – 2012-08-16 03:52:21

+2

单词权限和保护与安全性和可靠性直接相关。 – 2012-08-16 11:02:51

回答

9

处理器不允许将执行权转移到比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

编辑:在这个环节上,你可以得到有关内核如何比较DPLCPLRPL一个很好的解释:

http://duartes.org/gustavo/blog/post/cpu-rings-privilege-and-protection

另一个好链接:

http://www.logix.cz/michal/doc/i386/chp06-03.htm

+0

谢谢,但是如何比较CPL和DPL? linux的内核源码中的真实代码在哪里? – 2012-08-17 08:18:11