2012-08-16 1 views
3

Sous linux, lorsqu'une interruption ou une exception se produit, si CUrrent Privilege Level (CPL) est inférieur au privilège Description Level Privilege (DPL), la protection générale sera déclenchée! mais quelle est la fonction de la faute de protection générale dans cette situation? Aidez-moi, s'il vous plaît!Quelle est la fonction de la protection générale?

+0

Est-ce que ce sont les devoirs? –

+2

Les mots Privilège et Protection sont directement liés aux mots Sécurité et Fiabilité. –

Répondre

9

Le processeur n'autorise pas le transfert d'exécution à une procédure d'exception ou de gestion d'interruption dans un segment de code moins privilégié que le CPL. Une tentative de violation de cette règle entraîne une exception de protection générale (#GP). plus à ce (http://www.lpthe.jussieu.fr/~talon/pentium3.pdf)

A l'intérieur du noyau de chaque exception est gérée par un gestionnaire d'exception spécifique , qui envoie un signal généralement Unix au processus qui a provoqué l'exception.

Dans notre cas: le noyau générera un signal SIGSEV. Le gestionnaire d'exception dans ce cas est general_protection() (https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/traps.h)

EDIT: dans ce lien, vous pouvez obtenir une explication sur la façon dont le noyau se comparent DPL, CPL et RPL:

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

Une autre bon lien:

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

+0

merci, mais comment comparer CPL et DPL? et où est le code de la réalité dans la source du noyau de Linux? –

Questions connexes