Linux では、割り込みまたは例外が発生した場合、CUrrent Privilege Level (CPL) が Description Privilege Level (DPL) よりも低い特権である場合、General Protection が発生します。しかし、この状況での一般保護違反の機能は何ですか? 私を助けてください!
9465 次
1 に答える
14
プロセッサは、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
別の良いリンク:
于 2012-08-16T10:30:57.817 に答える