2011-06-20 6 views
1

Étant utilisés uniquement par le noyau, ils ne doivent être situés que dans les adresses au-dessus de PAGE_OFFSET. Mais je lisais this la page et à la fin de celui-ci (en IRC convo) Je lis les lignes suivantes qui m'a vraiment confus:Noyau Linux: Où résident les tables de pages de processus?

saxm> riel: so where do page tables reside? Surely not below PAGE_OFFSET? Somewhere above PAGE_OFFSET+896mb then? 

riel> they could reside anywhere 

saxm> anywhere from 0->4gb (on x86 with no pae)? 

riel> saxm: yeah 

Je veux dire, pourquoi seraient-ils se situer en dessous PAGE_OFFSET? Les processus d'espace utilisateur ne pourraient-ils pas y accéder si tel est le cas?

Répondre

4

Je pense que ce que riel essayait de dire est qu'ils peuvent résider (presque) n'importe où dans physique mémoire - il n'y a pas un mappage fixe. Les tables de pages sont mappées dans l'espace d'adressage virtuel du noyau (c.-à-d. PAGE_OFFSET) et sont invisibles pour l'espace utilisateur (ce qui, comme vous l'avez souligné, est logique car les utilisateurs ne devraient pas tabuler leurs propres tables de pages).

Jetez un oeil à ce poste connexe: Does Linux use self-map for page directory and page tables?

Questions connexes