Changes between Version 12 and Version 13 of boot_procedure


Ignore:
Timestamp:
Jan 11, 2017, 11:35:04 AM (7 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • boot_procedure

    v12 v13  
    1 Le boot-loader, en combinaison avec le preloader (qui est propre à chaque architecture matérielle), permettent de charger le système ALMOS-MK. Pour pouvoir minimiser la partie écrite en assembleur (qui dépend donc de l'architecture matérielle), l'initialisation d'ALMOS-MK (réalisée par la fonction '''kern_init()''') est totalement découplée de son chargement. Le rôle principal du boot-loader d'ALMOS-MK est de charger en mémoire l'image du noyau du système. Au passage, il récupère les informations décrivant la plateforme matérielle contenues dans le fichier binaire '''arch_info.bin''' et les utilise pour construire les structures de données '''boot_info_t''' qui sont rangées au début du segment de données '''kdata''' du noyau et seront utilisées par '''kern_init()'''. Ces informations en entrée et en sortie du boot-loader peuvent sembler redondantes mais cette traduction est indispensable: elle permet au système de vérifier le bon fonctionnement de la plateforme matérielle et de détecter les pannes dues au vieillissement du matériel. En effet, les structures '''boot_info_t''' générées en sortie du boot-loader ne contiennent que des informations de la partie opérative de l'architecture.
     1Le boot-loader d'ALMOS-MK, en combinaison avec le preloader (qui est spécifique à l'architecture TSAR, mais indépendant du système d'exploitation à charger), a pour fonction de charger en mémoire le système ALMOS-MK. Au passage, il récupère les informations décrivant la plateforme matérielle contenues dans le fichier binaire '''arch_info.bin''' et les utilise pour construire - dans chaque cluster - la structure de données '''boot_info_t'''. Cette structure est utilisée - dans chaque cluster - par l'instance locale deu noyau ALMOS-MK, puisqu'elle décrit les composants matériels disponibles dans le cluster ainsi que les caractéristiques générales de la plateforme. Cette structure est qui rangée au début du segment de données '''kdata''' du noyau et est utilisée par la fonction '''kern_init()'''. Ces informations en entrée et en sortie du boot-loader peuvent sembler redondantes mais cette traduction est indispensable: elle permet au système de vérifier le bon fonctionnement de la plateforme matérielle et de détecter les pannes dues au vieillissement du matériel. En effet, les structures '''boot_info_t''' générées en sortie du boot-loader ne contiennent que les composants matériels effectivement utilisables par le noyau.
    22
    3 Par convention, on définit des zones de longueur fixe pour les différents fichiers binaires et structures de données en mémoire physique:
     3Par convention, on définit - dans chaque cluster - des zones de mémoire physique de longueur fixe pour les différents fichiers binaires et structures de données:
    44    * Pour le code du pré-loader : une zone de '''1 Mo''', à partir de l'adresse 0x0.
    55    * Pour le code du boot-loader: une zone de mémoire physique de '''1Mo''', à partir de l'adresse 0x100000.