2012-08-16 65 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