Red Hat Linux MANUEL DE L'UTILISATEUR - E.2 Qu'est-ce que MILO ?  Précédent  Suivant  Début chapitre  Préface  Table des matières


E.2 Qu'est-ce que MILO ?

Sur machines Intel, le BIOS configure le système et ensuite charge, depuis le secteur d'amorçage d'un disque DOS, une image à exécuter. Ceci est en quelque sorte la fonction principale de MILO sur un système Alpha. Il existe toutefois un certain nombre de différences entre BIOS et MILO, notamment le fait que MILO intègre certains pilotes de périphériques Linux inchangés. MILO est un logiciel appelé Firmware[4], à l'inverse de LILO qui dépend du logiciel Firmware BIOS responsable de son chargement et de son exécution en mémoire centrale. Les principales fonctions de MILO sont :

1. PALcode,

2. Initialisation du gestionnaire de mémoire. (construction des tables de pages et mise en service de l'adressage virtuel)

3. Logiciel d'affichage (Code d'émulation BIOS et TGA (21030)),

4. Une partie du noyau Linux. Incluant, par exemple, un gestionnaire d'interruption qui fait office de noyau Linux.

5. Gestionnaires de périphériques en mode bloc (par exemple le pilote de disquettes)

6. Un support des systèmes de fichiers (ext2, MS-DOS et ISO9660)

7. Un logiciel d'interface utilisateur (MILO),

8. Une interface avec le Noyau (configure le HWRPB et la memory map[5] spécifique à linux),

9. Configuration de la NVRAM (non volatile RAM) pour la gestions de variable d'environnement.

Les paragraphes suivants décrivent ces fonctionnalités plus en détail.

Le PALcode peut être perçu comme une minuscule couche logicielle qui prépare le processeur Alpha en vue de l'utilisation d'un système d'exploitation spécifique. Il fonctionne dans un mode spécial du processeur (PALmode) qui a certaines limitations mais utilise les instructions standard des processeurs Alpha, plus 5 instructions supplémentaires. De cette manière le processeur Alpha peut exécuter une grande diversité de systèmes d'exploitation tels que Windows NT, OpenVMS, Digital Unix et bien sûr Linux. Le PALcode que MILO utilise (et in extenso Linux lui même) est, comme le reste de MILO un freeware. Il est inspiré d'un exemple de PALcode pour Digital Unix que Digital fournissait avec ses premières cartes d'évaluation. Les différences entre les PALcode sont dues à des différences qui existent dans la cartographie de la mémoire, dans la gestion des interruptions entre les différentes version du processeur Alpha (par exemple le 21066 possède une cartographie des entrées/sorties différente de l'association du 21064 avec les contrôleurs E/S de la famille 2107x, en effet le 21066 intègre un équivalent de ce contrôleur sur son support)

Pour que MILO fonctionne correctement il lui faut savoir quelle est la quantité de mémoire disponible, à quel endroit Linux peut éventuellement être chargé en mémoire et il doit, de plus, être capable d'allouer temporairement de la mémoire pour les pilotes de périphériques Linux. Le code contient une cartographie de la mémoire qui comporte des espaces disponibles pour une allocation de pages mémoire permanentes ou temporaires. Lorsqu'il démarre MILO se décompresse à l'emplacement mémoire adéquat. Lorsqu'il transfère le contrôle au noyau Linux, il réserve un espace pour une instance décompressée de lui-même, pour le PALcode (indispensable au fonctionnement du Noyau) ainsi que quelques structures de données. Ceci laisse la quasi totalité de la mémoire centrale libre pour Linux.

L'opération finale du gestionnaire mémoire est de configurer et d'activer l'adressage virtuel afin que les structures de données attendues par Linux soient à leur place en mémoire virtuelle.

MILO contient du code d'initialisation de l'affichage qui prépare le système graphique à l'utilisation de Linux.

Il détectera et utilisera un adaptateur VGA s'il est présent, sinon il essayera d'utiliser le pilote TGA (21030). S'il y a échec de cette initialisation, MILO considérera qu'il n'y a aucun périphérique graphique sur le système. L'émulation BIOS incluse dans MILO est en fait celle de Digital qui est capable de supporter la plupart, voire la totalité, des cartes graphiques disponibles.

Les pilotes de périphériques de Linux résident dans le Noyau dont ils attendent un certain nombre de services. Certains de ces services sont directement fournis par le code du noyau Linux inclus dans MILO. Par exemple la gestion des interruptions est réalisée par un ensemble de fonctions similaires à celles du vrai noyau Linux.

La fonctionnalité la plus puissante de MILO est de permettre l'inclusion de n'importe quel pilote Linux sans apporter de modifications. Ceci lui offrant la possibilité d'être compatible avec n'importe quel périphérique compatible avec Linux. MILO contient, en standard, tous les pilotes de périphériques bloc du noyau Linux.

MILO charge le noyau Linux depuis un vrai système de fichiers plutôt que d'un secteur d'amorçage ou d'autres emplacements étranges. Il supporte les systèmes de fichiers MSDOS, EXT2 et ISO9660. Les fichiers GZIPés sont également reconnus et recommandés, en particulier lors d'un chargement à partir d'une disquette qui reste un support relativement lent. MILO les reconnaît grâce à leur suffixe .gz.

Un gestionnaire de clavier rudimentaire est inclus dans MILO si bien qu'avec un pilote de périphérique vidéo d'une simplicité égale il dispose d'une interface utilisateur simple. Cette interface permet de lister les systèmes de fichiers disponibles par le biais de pilotes de périphériques configurés, de démarrer Linux ou des utilitaires de mises à jour de la mémoire flash, de définir des variables d'environnement agissant sur le démarrage du système. Comme avec LILO vous pouvez transmettre des arguments au Noyau.

MILO doit renseigner le noyau Linux sur la nature du matériel sous-jacent (type de carte mère, quantité de mémoire RAM totale et quantité libre). Il effectue ceci en utilisant les informations contenues dans le HWRPB[6]. Celles ci sont disposées aux emplacements appropriés en mémoire virtuelle juste avant que le contrôle du système ne soit transféré au noyau Linux.

[4] FirmWare traduction littérale : Logiciel spécifique à une compagnie, dans ce cas le constructeur. Ces logiciels sont intégrés en mémoire morte sur les PC d'aujourd'hui. Les stations Alpha offrent la possibilité de changer ces logiciels facilitant ainsi le portage de systèmes d'exploitations autres que ceux fournis par le constructeur. (NDLT)

[5] Littéralement carte mémoire : décrit ici l'agencement de la mémoire centrale de l'ordinateur. (notée cartographie de la mémoire ou des entrées sorties au cours de ce document)

[6] Hardware Restart Parameter Block


Précédent  Suivant  Début chapitre  Préface  Table des matières

© 1996-1998 "RedHat et les Logiciels du Soleil"