Page suivante Page précédente Table des matières

1. Comment SRM démarre-t-il un système d'exploitation ?

Toutes les versions de SRM peuvent démarrer à partir d'un disque SCSI et les versions destinées aux plates-formes récentes, comme les Noname et AlphaStations, peuvent de plus démarrer depuis une disquette. Le démarrage réseau via bootp est également supporté. Notez que les anciennes versions de SRM (notamment celles pour Jensen) ne pouvaient pas démarrer depuis une disquette. Le démarrage depuis un disque IDE n'est pas supporté.

Le démarrage de Linux avec SRM s'effectue en deux étapes : d'abord, SRM charge et transfère le controle à un chargeur secondaire. Ensuite, ce chargeur secondaire met en place l'environnement de Linux, lit l'image du noyau depuis un système de fichiers sur disque et donne la main à Linux.

A l'heure actuelle il existe deux chargeurs secondaires pour Linux : le chargeur brut fourni avec le noyau Linux et aboot, distribué séparement. Ces deux chargeurs sont décrits en détails ci-dessous.

1.1 Charger le chargeur secondaire

SRM est ignorant des systèmes de fichiers et des partitions des disques. Il s'attend simplement à ce que le chargeur secondaire occupe un certain nombre de secteurs physiques consécutifs, commençant à une adresse donnée. L'information concernant la taille du chargeur secondaire et l'adresse de son premier secteur est stockée dans les 512 premiers octets. Plus précisement , l'entier long occupant l'adresse 480 contient la taille du chargeur secondaire et celui occupant l'adresse 488 donne le nombre de secteurs de décalage jusqu'au début du chargeur. Le premier secteur contient également un drapeau à l'adresse 496 qui vaut toujours 0 et une somme de contrôle à l'adresse 504. Cette somme de contrôle est simplement la somme des 63 premiers entiers longs du premier secteur.

Si cette somme est correcte, SRM continue et lit le nombre de secteurs indiqué par la taille en commençant par celui indiqué dans le champ numéro de secteur et les place en mémoire virtuelle à l'adresse 0x20000000. Si la lecture se termine avec succés, SRM effectue un saut à l'adresse 0x20000000.


Page suivante Page précédente Table des matières