Brevet FR2810424A1 — publié le 20011221

Machine informatique avec système de gestion de fichiers sur disque tolérante aux arrêts brutaux. Le domaine de l'invention est celui des machines informatiques et concerne plus particulièrement leur démarrage. De façon connue, une machine informatique fonctionne au moyen d'un système d'exploitation qui gère ses ressources pour exécuter des processus. Le système d'exploitation réside généralement sur une mémoire de masse de la machine. La mémoire de masse est une mémoire permanente telle qu'un disque dur. Lorsque la machine démarre, son micrologiciel lance une fonction d'amorçage résidente à une adresse déterminée de la mémoire de masse. La fonction d'amorçage active le système d'exploitation qui se construit des structures de données à partir d'informations résidentes sur la mémoire de masse. Les structures de données servent par exemple à allouer et gérer des zones mémoires -mises à disposition de processus à exécuter. Pendant le fonctionnement de la machine, le système d'exploitation adapte ces structures de données à l'évolution des processus en cours d'exécution. De façon à ne pas encombrer la mémoire vive et à pouvoir retrouver ces structures de données après un arrêt de la machine, le système d'exploitation sauvegarde régulièrement les structures de données sur la mémoire de masse. Si la machine est arrêtée en suivant des règles préétablies, le système d'exploitation met les structures de données dans un état cohérent et les sauvegarde sur la mémoire de masse. Ainsi, la machine est arrêtée dans un état sauvegardé cohérent qui lui permettra de redémarrer dans un état qui tient compte des processus exécutés avant son arrêt. 2 2810424 Si la machine est arrêtée sans suivre les règles préétablies, par exemple en cas de réinitialisation brutale ou de mise hors tension intempestive, il se peut que les structures de données ne soient pas sauvegardées dans un état cohérent, le système d'exploitation ne les ayant par exemple écrites sur la mémoire de masse que partiellement. Lors d'un redémarrage de la machine, le montage du système d'exploitation détecte alors des incohérences et génère un signal de faute. Au moyen d'une interface opérateur, il est alors nécessaire à un opérateur humain d'intervenir pour réparer ou tout au moins acquitter la faute. Ceci peut s'avérer fastidieux et nécessite outre la présence d'un opérateur humain, l'existence d'une interface opérateur. Pour pallier les inconvénients ci- dessus mentionnés, un objet de l'invention est une machine informatique comprenant une mémoire vive et une mémoire de masse sur laquelle est stocké un système d'exploitation. La machine informatique est caractérisée en ce que la mémoire de masse comprend une partition accessible uniquement en lecture au système d'exploitation, ladite partition contenant une fonction d'amorçage, une fonction de réparation automatique et une fonction de montage du dit système d'exploitation. La partition n'étant pas accessible en écriture au système d'exploitation, celui-ci ne peut pas corrompre son contenu pendant un fonctionnement de la machine. Ainsi, quelles que soient les conditions dans lesquelles le fonctionnement de la machine est interrompu, celle-ci est capable de redémarrer sur une configuration minimale avec le contenu de la partition uniquement accessible en lecture. La fonction de réparation automatique, elle-même résidente sur cette partition permet d'acquitter toute faute détectée pendant le montage du système d'exploitation sans nécessiter d'intervention humaine. 3 2810424 D'autres détails et avantages de l'invention ressortent de la description qui suit en référence aux figures o: - la figure 1 présente une machine conforme à l'invention; - la figure 2 présente un procédé conforme à l'invention. En référence à la figure 1, une machine 1 comprend un microprocesseur 2, une mémoire vive 3, une mémoire de masse 5 et un bus 6 qui permet au microprocesseur 2, d'accéder à la mémoire vive 3 et à la mémoire de masse 5 au moyen d'un contrôleur 4. Un bouton poussoir 7 permet de réinitialiser chacun des éléments 2, 3, 4 de la machine. La mémoire de masse 5 est préférentiellement un disque magnétique qui permet à des données d'y rester sauvegardées dans un état précédant une mise hors tension ou une réinitialisatic: de la machine. La mémoire de masse 5 contient du code et des données d'un système d'exploitation (Operating System en anglais) pour gérer le fonctionnement de la machine 1. La mémoire de masse 5 contient aussi du code et des données de fonctions applicatives exécutées par la machine 1. La mémoire de masse 5 comprend plusieurs partitions 8, 9, 10. La partition 8 est accessible en lecture seule au système d'exploitation. C'est à dire que le code et les données stockées sur la partition 8 ne peuvent pas être modifiées lorsque la machine 1 est en fonctionnement. La partition 8 contient le code d'une fonction d'amorçage et d'une fonction de montage du système d'exploitation. La fonction d'amorçage sert au moment d'une initialisation de la machine 1, à lancer le système d'exploitation. La fonction de 4 2810424 montage sert, au moment du lancement du système d'exploitation, à construire un environnement d'exécution pour le système d'exploitation. La partition 8 contient encore le code d'une fonction standard d'acquittement de faute et d'une5 fonction de réparation automatique, expliquées dans la suite de la description. Le code de la fonction d'amorçage contient une première séquence d'instructions qui charge le contenu de la partition 8 en mémoire vive 3 et une deuxième séquence d'instruction qui appelle la fonction de réparation automatique alors chargée en mémoire vive. Le code de la fonction de réparation automatique contient une troisième séquence d'instructions qui appelle la fonction de montage, alors chargée en mémoire vive, une quatrième séquence d'instruction qui appelle systématiquement la fonction standard d'acquittement lorsque la fonction de montage signale une faute et une cinquième séquence de code qui appelle la fonction d'amorçage au retour de la fonction standard d'acquittement. De façon connue dans les systèmes d'exploitation de type UNIX tel que par exemple LINUX, la fonction de montage utilise et construit des structures de données telles que des tables pour gérer, des fichiers. Pendant le fonctionnement de la machine, le système d'exploitation fait vivre ces structures de données en les adaptant aux processus exécutés par la machine. Ces structures de données sont habituellement sauvegardées en mémoire de masse de sorte à pouvoir être réutilisées lorsque la machine est redémarrée suite à un arrêt ou une initialisation qui laisse ces structures de données dans un état cohérent. Suite à une mise hors tension ou plus généralement à une réinitialisation, intempestive, il se peut 2810424 que ces structures de données soient incohérentes. Lorsque la fonction de montage construit les structures de données en s'appuyant sur des structures de données sauvegardées sur la mémoire de masse, la fonction de montage signale une faute si elle détecte une incohérence. Habituellement, la faute signalée est communiquée par un message sur un écran de la machine de façon à permettre à un opérateur humain de réparer au mieux la faute s'il dispose des informations nécessaires pour le faire. En solution de secours, la fonction de montage propose à l'opérateur humain un choix d'appel à la fonction standard d'acquittement. La fonction standard d'acquittement cherche à réparer une faute signalée à partir des seules données dont elle dispose sur la mémoire de masse. Si ces données ne sont pas suffisantes, la fonction standard acquitte néanmoins la faute, acceptant ainsi de perdre le bénéfice des structures de données pour lesquelles la faute a été détectée. En absence de fautes, la fonction de montage poursuit le lancement du système d'exploitation de la partie (9). L'intérêt de la fonction de réparation automatique est qu'elle évite à un opérateur humain d'intervenir. Au lieu d'envoyer un message sur écran, la fonction de réparation automatique appelle systématiquement la fonction d'acquittement standard lorsque la fonction de montage signale une faute. La partition 8, inaccessible en écriture au système d'exploitation, contient les données nécessaires à un démarrage en configuration minimale de la machine. La partition 9, accessible en lecture et en écriture, contient les structures de données mises à jour par le système d'exploitation en fonctionnement normal de la machine. 6 2810424 En appelant la fonction d'amorçage au retour de la fonction standard d'acquittement, le prochain appel de la fonction de montage au cycle suivant, ne détectera plus la faute acquittée dans ce cycle d'appel. Si besoin après plusieurs cycles appel de la fonction d'amorçage, appel de la fonction de montage, déclenchement de la fonction de réparation automatique, la fonction de montage ne détecte plus de fautes et poursuit le lancement du système d'exploitation. Ainsi, la machine peut redémarrer, au moins dans une configuration minimale au moyen des structures de données de la partition 8 et des structures de données de la partition 9 pour lesquelles aucune incohérence n'a été détectée ou une incohérence a pu être réparée par la fonction standard d'acquittement, sans intervention de l'opérateur humain. D'autres partitions telles que la partition 10, contiennent du code et des données de fonctions applicatives exécutables au moyen' du système d'exploitation. En référence à la figure 2, un procédé conforme à l'invention comprend une étape 11 qui crée sur la mémoire de masse au moins une partition 8. Une étape 12 enregistre sur la partition 8, du code et des données d'une fonction d'amorçage, du code et des données d'une ou plusieurs fonctions minimales pour lancer un système d'exploitation telles que par exemple la fonction de montage "mount" et la fonction d'acquittement standard "fsck" du système d'exploitation LINUX, ainsi que la fonction de réparation automatique. 7 2810424 Une étape 13 déclare la partition 8 accessible uniquement en lecture au système d'exploitation à lancer. Les étapes 11 à 13 sont préférentiellement exécutées en usine sur un disque qui monté dans la machine 1, constitue alors sa mémoire de masse. Les étapes suivantes sont mises en oeuvre dans la machine 1 elle-même. Une étape 14 est déclenchée par démarrage ou initialisation de l0 la machine 1 au moyen du bouton poussoir 7. L'étape 14 met à zéro l'ensemble des éléments de la machine 1 tels que la mémoire vive 3 et le contrôleur 4. L'étape 14 démarre le microprocesseur 2 au moyen d'un micrologiciel connu sous le nom de BIOS qui finit par brancher le microprocesseur 2 sur la fonction d'amorçage qui réside à une adresse spécifique de la partition 8. Une étape 15 active la fonction d'amorçage qui charge le contenu de la partition 8 en mémoire vive, alors accessible en lecture et écriture par le système d'exploitation à lancer. Une étape 16 active en mémoire vive 3, la fonction de réparation automatique qui appelle la fonction de montage. En absence de détection de faute par la fonction de montage, le lancement du système d'exploitation de la machine se poursuit avec lecture et écriture d'autres partitions du disque 5, pour démarrer automatiquement de façon connue des fonctions applicatives exécutables au moyen du système d'exploitation. Une étape 17 est déclenchée par un signal de faute détectée par la fonction de montage. La fonction de réparation automatique appelle alors la fonction standard d'acquittement au retour de laquelle l'étape 15 est à nouveau déclenchée. 8 2810424 L'invention est particulièrement avantageuse lorsque la machine 1 est dépourvue d'écran et de clavier. C'est le cas d'un système embarqué ou le bouton poussoir 7 est éventuellement remplacé par une commande à distance. C'est encore le cas d'une boite noire à l'intérieur de laquelle on ne souhaite pas qu'un opérateur humain puisse accéder. Il existe de telles boîtes noires avec une mémoire permanente dans laquelle est gravé un code exécutable complet de ses fonctionnalités. L'intérêt de la présence d'un disque selon10 l'invention avec un système d'exploitation est de donner à la boîte noire les avantages d'un ordinateur en terme de puissance de calcul et d'adaptabilité à des applications multiples et évolutives. 9 2810424 REVENDICATIONS: 1. Machine informatique (1) comprenant une mémoire vive (3) et une mémoire de masse (5) sur laquelle est stocké un système d'exploitation, caractérisée en ce que la mémoire de masse (5) comprend une partition (8) accessible uniquement en lecture au système d'exploitation, ladite partition (8) contenant une fonction d'amorçage, une fonction de réparation automatique et une fonction de montage du dit système d'exploitation. 2. Machine informatique selon la revendication 1, caractérisée en ce que ladite fonction d'amorçage comprend une première séquence de code pour charger le contenu de la partition (8) en mémoire vive (3) et une deuxième séquence de code pour activer en mémoire vive ladite fonction de réparation automatique. 3. Machine informatique selon la revendication 2, caractérisée en ce que ladite fonction de réparation automatique comprend une troisième séquence de code qui appelle ladite fonction de montage, exécutable en mémoire vive (3) avec possibilité d'écriture sur au moins une autre partition (9) de la mémoire de masse (5). 4. Machine informatique selon la revendication 3, caractérisée en ce que ladite fonction de réparation automatique comprend une quatrième séquence de code pour acquitter une faute signalée par ladite fonction de montage et une cinquième séquence de code pour redémarrer la machine après acquittement de la faute. 5. Machine informatique selon la revendication 4, caractérisée en ce que ladite partition (8) contient une fonction d'acquittement standard et en ce que la quatrième 2810424 séquence de code appelle ladite fonction d'acquittement standard exécutable en mémoire vive avec possibilité d'écriture sur au moins une autre partition (9) de la mémoire de masse. 6. Machine informatique selon l'une des revendications précédentes, caractérisée en ce que la mémoire de masse (5) est un disque dur. 7. Procédé pour mettre automatiquement en marche une machine informatique (1) comprenant une mémoire vive (3) et une mémoire de masse (5), caractérisé en ce qu'il comprend: - une première étape (14) qui démarre la machine (1) au moyen d'un signal (7); - une deuxième étape (15) qui charge automatiquement en mémoire vive (3), le contenu d'une partition (8) de la mémoire de masse (5); - une troisième étape (16) qui monte automatiquement un système d'exploitation depuis la mémoire vive (3); - une quatrième étape (17) qui acquitte automatiquement toute faute signalée dans la troisième étape (16) et qui réactive la deuxième étape (15). 8. Procédé selon la revendication 7, caractérisé en ce qu'il comprend, en phase de fabrication de la machine (1): - une cinquième étape (11) qui crée des partitions (8,9) sur la mémoire de masse (5); - une sixième étape (12) qui enregistre au moins une partie du système d'exploitation et des fonctions pour exécuter la deuxième, troisième et quatrième étapes (15,16,17), sur une première partition (8); - une septième étape (14) qui déclare ladite première partition (8) uniquement accessible en lecture au dit système d'exploitation.