Simple Operating System - Chargement du noyau
Modes du processeur
1. Mode réel du processeur
Au démarrage de la machine le processeur est dans un mode appelé réel. Ce mode correspond au fonctionnement des processeurs des années 80 :
- Ses registres ont une taille de 16 bits
- Son bus d'adresse mémoire est accessible sur 20 bits
Un registre est une petite zone mémoire interne au processeur lui permettant de stocker une adresse ou un entier ou un flottant.
Les adresses accédant à la mémoire ont donc une taille maximale de 20 bits, ce qui nous donne un espace mémoire accessible de 2^20 soit 1Mo.
Pourtant un problème se pose, comment adresser la mémoire sur 20 bits alors que nous disposons de registres d'une taille de 16 bits ? ... Pour cela nous allons utiliser 2 registres :
- Le premier appelé registre de segment est multiplié par 16 (ce qui décale l'adresse de 4 bits vers la gauche)
- Le deuxième appelé registre d'offset est simplement ajouté au premier afin de compléter les 4 premiers bits manquant
Nous obtenons ainsi une adresse sur 20 bits nous permettant d'accéder à nos 1 Mo d'espace mémoire.
L'intérêt du mode réel est qu'il est le seul à garantir une bonne utilisation des instructions du Basic Input Output System, qui sont des instructions de type 16 bits, du fait que dans ce mode les registres sont sur 16 bits.
2. Mode protégé du processeur
Ce mode est celui du fonctionnement habituel du processeur :
- Les registres ont une taille de 32 bits
- Le bus d'adresse mémoire est accessible sur 32 bits
Les adresses accédant à la mémoire ont donc une taille maximale de 32 bits, ce qui nous donne un espace mémoire accessible de 2^32 soit 4Go. De plus ce mode nous garantit une certaine sécurité sur les zones mémoires accessibles par le biais des niveaux de privilèges (Pour plus de détails consulter l'exposé des Interruptions SOS)