next up previous contents
suivant: Activation de la mémoire monter: Le chargeur de démarrage précédent: Activation du mode protégé   Table des matières

Chargement de l'espace d'adressage du noyau

Il nous faut à présent charger l'espace d'adressage du noyau, afin d'accéder aux adresses linéaires mises en place lors de la pagination2.5. Ceci est impératif pour pouvoir exécuter le code du noyau, ``mappé'' en mémoire haute. Le chargement d'un espace d'adressage s'effectue en modifiant la valeur du registre processeur CR3. Voici le registre CR3:

Image cr3
Le registre processeur CR32.6

Ce registre contient l'adresse physique du début de la page directory, ainsi que deux flags (PCD et PWT). Ce registre est également appelé PDBR (Page Directory Base Register). Seul les 20 bits les plus significatifs de l'adresse physique de la page directory sont spécifiés, les 12 autres bits étant fixé à 0. En effet l'adresse de la page directory est une adresse de page, et est donc un multiple de 0x1000.

Les flags PCD (Page-level Cache Disable) et PWT (Page-level Writes Transparent) représentent des options de cache interne au processeur. Pour écrire l'adresse de la page directory noyau, il suffit de faire un mov en assembleur.


next up previous contents
suivant: Activation de la mémoire monter: Le chargeur de démarrage précédent: Activation du mode protégé   Table des matières
nicolas 2006-07-30