Brevet FR2771195A1 — publié le 19990521

La présente description concerne d'une manière générale les ordinateurs et un code logiciel pour gérer l'accès à un dispositif de mémorisation d'ordinateur et, d'une manière plus spécifique, un système et un procédé pour modifier d'une manière dynamique le mappage de par- titions du disque sur une unité logique ("drive") du code du système d'exploitation. La zone de mémorisation principale, pour la ma- jeure partie des ordinateurs, est répartie typiquement entre un ou plusieurs dispositifs de mémorisation, tels qu'un disque dur. En outre, chaque mémorisation est sou- vent séparée en une ou plusieurs partitions, de sorte que certaines données ou certains programmes puissent être mémorisés séparément. Par exemple, dans un ordinateur qui utilise le système d'exploitation DOS et/ou WINDOWS 95, tels que produits par Microsoft Corporation, Redmond, Wa- shington, un disque dur d'ordinateur peut être divisé en une partition "primaire", et en une partition "étendue", comme décrit dans le Tableau 1, ci-dessous. En poursui- vant avec l'exemple du Tableau 1, le système d'exploita- tion fait référence à la partition primaire en utilisant la dénomination unité "logique" C: et la partition éten- due est en outre subdivisée en deux unités logiques, in- diquées chacune par une lettre séparée D: et E:. D'une manière générale, seule une partition primaire peut être "active" (par exemple, visible pour le système d'exploi- tation) à un instant donné. Tableau 1 Partition Lecteur Logique Première Partition Primaire C: Première Partition Etendue D: Seconde Partition Etendue E: On rencontre plusieurs situations communes dans lesquelles des partitions sont créées, ou définies. Une telle situation est lorsqu'un utilisateur ajoute et pré- pare un nouveau disque dur pour un ordinateur. Lorsqu'il prépare le nouveau disque dur, l'utilisateur initialise le disque dur en créant une ou plusieurs partitions. Une autre situation est lorsqu'un utilisateur souhaite redé- finir les partitions du disque dur existant en utilisant un programme utilitaire, tel que le programme PARTITION MAGIC produit par PowerQuest Corporation, Orem, Utah. Une fois les partitions du disque dur définies ou redéfinies, l'ordinateur doit alors être réamorcé de manière à ce que le système d'exploitation contienne une version actuali- sée de la partition ou des partitions dans ses tables de référence. Cependant, de tels réamorçages nécessitent une grande quantité de temps et de ressources. Ceci est par- ticulièrement problématique lorsque l'utilisateur est un fabricant de nouveaux ordinateurs, qui doit effectuer un réamorçage sur chacun des nouveaux ordinateurs. En outre, les réamorçages perdent ou reconfigurent certains aspects de l'ordinateur que l'utilisateur peut souhaiter conser- ver. En réponse, un système et un procédé sont four- nis pour modifier les mappages de partitions sur des uni- tés logiques dans un dispositif de mémorisation d'un or- dinateur, sans qu'un réamorçage de l'ordinateur ne soit nécessaire. Dans un premier mode de réalisation, l'ordi- nateur comporte un processeur pour exécuter le code du système d'exploitation et un dispositif de mémorisation à disque dur. Le disque dur, auquel peut accéder le proces- seur, comporte au moins une partition. Lorsque l'ordina- teur est amorcé, une valeur de référence logique dans le code du système d'exploitation pointe sur la partition. Après initialisation ou modification de la partition, une routine d'actualisation de référence est lancée pour ac- tualiser d'une manière dynamique la valeur de référence logique afin d'obtenir un mappage correct sur la parti- tion. La routine d'actualisation de référence loca- lise et purge tout d'abord les antémémoires de l'ordina- teur et ferme tous les fichiers ouverts accessibles au code du système d'exploitation. La routine charge alors un secteur d'amorçage associé à la partition et en ex- trait des données spécifiques. Avec les données récupé- rées, la routine actualise la valeur de référence logi- que. Par conséquent, après que la routine d'actualisation de référence a effectué l'actualisation, le processeur peut continuer d'exécuter le code d'exploitation, sans qu'il soit nécessaire de réamorcer l'ordinateur. Un avantage technique résultant est que le dis- que dur peut être divisé ou redivisé en partitions, et faire immédiatement l'objet d'un accès, sans qu'un ré- amorçage ne soit nécessaire dans l'intervalle, ce qui économise par conséquent une grande quantité de temps. Un autre avantage technique résultant est que la configuration de l'ordinateur peut être préservée, même si le disque dur a été divisé ou redivisé en parti- tions. On va maintenant décrire la présente invention, à titre d'exemple uniquement, en se reportant aux dessins annexés sur lesquels: - la figure 1 est un schéma fonctionnel d'un ordinateur destiné à implémenter un mode de réalisation, - la figure 2 est un diagramme structurel d'un disque dur de l'ordinateur de la figure 1, et - la figure 3 est un ordinogramme d'une routine à exécuter par l'ordinateur de la figure 1. La description qui va suivre fait référence à la demande de brevet des Etats-Unis (N DC-1313) intitu- lée "Method for Changing Partition Mappings to Logical Drives in a Computer Memory Device" et à la demande de brevet des Etats-Unis (N DC1315) intitulée "Method for Simulating a Computer Storage Device", déposées avec la présente demande. En se reportant à la figure 1, la référence nu- mérique 10 indique un ordinateur comportant plusieurs composants, parmi lesquels un processeur 12, un groupe de mémoires à accès aléatoire (RAM) 14a et de mémoires à lecture seule (ROM) 14b, un disque dur 16, et une inter- face-réseau 18. Chaque composant est capable de communi- quer avec le processeur 12, comme représenté graphique- ment par un bus universel 20. Dans le présent exemple, l'ordinateur 10 est un ordinateur personnel exécutant le code du système d'exploitation Microsoft DOS. Il va de soi, cependant, que l'ordinateur 10, ainsi que les compo- sants illustrés qui lui sont associés, sont simplement représentatifs d'un grand nombre de types d'ordinateurs et de composants différents bien connus et compris de l'homme du métier. En se reportant à la figure 2, le disque dur 16 est subdivisé en trois partitions différentes: un sec- teur d'amorçage maitre 30, une première partition 32 et une seconde partition 34. Dans le secteur d'amorçage mal- tre 30 se trouvent un code d'amorçage 40 et une table de partition maîtresse 42. La table de partition maîtresse comporte des codes qui représentent des données spécifi- ques à chaque partition 32 et 34, comme on le décrira avec plus de détails par la suite. Il va de soi que le logiciel additionnel sur le secteur d'amorçage maitre 30, y compris le code d'amorçage 40, est bien connu dans la technique et, pour des raisons de concision, celui-ci ne sera pas plus amplement décrit. La première partition 32 comporte un secteur d'amorçage 50 et un ou plusieurs morceaux de logiciel, tels qu'un programme 52. D'une manière analogue, la se- conde partition 34 contient aussi un secteur d'amorçage 60 et un ou plusieurs morceaux de logiciel, tels qu'un programme 62. Dans le présent exemple, les deux parti- tions 32, 34 sont des partitions primaires, possédant chacune la même référence. En outre, les deux partitions 32, 34 ont été récemment modifiées eu égard à leur lon- gueur et/ou à leur emplacement. Habituellement, une telle modification nécessite que l'ordinateur 10 soit réamorcé de manière à ce que le DOS puisse correctement faire ré- férence aux partitions 32, 34 qui ont été modifiées. Ce- pendant, il n'est pas nécessaire de réamorcer l'ordina- teur 10 lorsque la routine décrite ci-après est implémen- tée. En se reportant à la figure 3, une routine 100 dénommée "Waffle" permet au DOS de référencer et/ou d'ac- tualiser d'une manière dynamique les partitions modi- fiées, c'est-à-dire sans qu'un réamorçage de l'ordinateur ne soit nécessaire. Avant que la routine "Waffle" 100 ne soit lancée, le disque dur 16 est initialisé ou recon- figuré, la partition utilitaire 32 est marquée comme in- active, et la partition primaire 34 est marquée comme ac- tive. A l'étape 110, la routine "Waffle" 100 est chargée dans la RAM 14a et est exécutée. La routine "Waf- fle" est une routine d'actualisation de référence logique et, dans le présent mode de réalisation, celle-ci est chargée à partir d'un réseau connecté via l'inter- face-réseau 18. De plus, le réseau comporte un code de système d'exploitation de manière à ce que l'ordinateur puisse, à cette étape, se réamorcer à partir du ré- seau, c'est-à-dire de manière à ce que l'ordinateur se réamorce en utilisant le code du système d'exploitation récupéré à partir de l'interface-réseau 18. Une telle configuration est applicable en particulier lorsque le réseau contient un logiciel de formatage de disque pour initialiser de nouveaux disques durs ou un logiciel de modification de partitions pour ajouter, supprimer ou mo- difier des partitions sur un disque dur existant. En va- riante, la routine "Waffle" 100 peut être chargée à par- tir de l'une ou l'autre des partitions 32 et 34, des deux, d'une disquette (non-représentée) ou d'une autre source. A l'étape 112, une instruction est reçue en provenance d'un utilisateur. Une instruction "rafraîchir" indique à la routine "Waffle" que l'utilisateur souhaite accéder à la partition utilitaire 32, tandis qu'une ins- truction "primaire" indique à la routine "Waffle" que les partitions 32, 34 ont été modifiées et que l'utilisateur souhaite accéder aux partitions modifiées et/ou les uti- liser. Les instructions peuvent être entrées à partir d'une interfaceutilisateur (non-représentée) ou d'un dispositif d'entrée. En outre, il est prévu qu'il puisse y avoir d'autres partitions, mais seules deux partitions sont décrites ici pour des raisons de simplicité. A l'étape 114, le secteur d'amorçage maître 30 est chargé à partir du disque dur 16. A l'étape 116, une détermination est effectuée pour déterminer si au moins l'une parmi la première partition 32 et la seconde parti- tion 34 est une partition primaire. Si ce n'est pas le cas, l'exécution est interrompue. Si c'est le cas, l'étape exécutée ensuite est l'étape 118 au cours de laquelle le système de mémorisation est purgé. Cette étape peut mettre en jeu plusieurs opérations. Par exem- ple, si l'ordinateur 10 comporte une ou plusieurs antémé- moires, parmi lesquelles les antémémoires du disque, les antémémoires sont purgées. Par ailleurs, tous les fi- chiers ouverts utilisés par le DOS ou autres applications ouvertes tournant sur l'ordinateur sont fermés. A l'étape 120, le secteur d'amorçage de la par- tition primaire est récupéré. Dans le présent exemple, le secteur d'amorçage 60 est récupéré. A l'étape 122, la ré- férence logique DOS associée à la partition primaire est actualisée. Ceci est accompli en utilisant un Bloc de Pa- ramètres BIOS ("BIOS Parameter Block" ou "BPB") provenant du secteur d'amorçage primaire 60 afin d'actualiser un Bloc de Paramètres de Lecteur ("Drive Parameter Block" ou "DPB") sur le DOS. A l'étape 124, le BPB du secteur d'amorçage primaire 60 est aussi utilisé afin d'actuali- ser une Table de Données de Lecteur ("Drive Data Table" ou "DDT") destinée à référencer les unités logiques. A l'étape 126, le système de fichiers internes utilisé par le DOS est réinitialisé conformément aux modifications apportées aux partitions 32, 34. Cette étape comprend la purge des tampons internes du disque dur 16. Bien que des modes de réalisation illustratifs aient été représentés et décrits, des modifications, des changements et des remplacements peuvent être apportés à la description qui précède et, dans certains cas, certai- nes caractéristiques de la présente invention seront uti- lisées sans que l'on ait une utilisation correspondante d'autres caractéristiques. En outre, des caractéristiques additionnelles, telles que des routines de manipulation des erreurs, peuvent être ajoutées au mode de réalisation illustratif sans modifier la portée de la présente inven- tion. REVENDICATIONS 1. Ordinateur (10) caractérisé en ce qu'il comporte: au moins un processeur (12) pour exécuter un logiciel incluant un code d'exploitation, au moins un dispositif de mémorisation (16) ac- cessible au processeur (12), le dispositif de mémorisa- tion (16) comportant au moins une première partition (32), le code d'exploitation incluant une table pour mapper une référence logique à la première partition (32), et une routine (100) pour modifier d'une manière dynamique la référence logique à la première partition en modifiant la table, dans lequel, après que la routine a modifié la table, le processeur (12) peut continuer d'exécuter le code d'exploitation sans qu'un réamorçage de l'ordinateur ne soit nécessaire et, lorsque le code d'exploitation utilise la référence logique au dispositif de mémorisa- tion, le code d'exploitation mappe correctement sur la première partition (32). 2. Ordinateur (10) selon la revendication 1, caractérisé en outre en ce qu'il comporte un système de mémorisation et en ce que la routine (100) purge aussi le système de mémorisation après avoir modifié la référence logique. 3. Ordinateur (10) selon la revendication 2, caractérisé en ce que le système de mémorisation comporte en outre une antémémoire dédiée au disque et un ou plu- sieurs fichiers ouverts et en ce que la routine (100) purge le système de mémorisation en purgeant l'antémé- moire dédiée au disque et en fermant le ou les plusieurs fichiers ouverts. 4. Ordinateur (10) selon la revendication 1, caractérisé en ce que la routine (100) récupère des don- nées à partir d'un secteur d'amorçage (50) associé à la première partition (32), les données étant utilisées pour modifier la table. 5. Ordinateur (10) selon la revendication 4, caractérisé en ce que les données incluent un Bloc de Pa- ramètres BIOS (BPP). 6. Ordinateur (10) selon la revendication 5, caractérisé en ce que la table inclut un Bloc de Paramè- tres de Lecteur (DPB) et une Table de Données de Lecteur (DDT). 7. Ordinateur (10) selon la revendication 1, caractérisé en ce que le code d'exploitation inclut un système de gestion de fichiers et en ce que la routine (100) réinitialise aussi le système de gestion de fi- chiers après avoir modifié la référence logique. 8. Ordinateur (10) selon la revendication 1, caractérisé en ce qu'il comporte en outre un second dis- positif de mémorisation et en ce que la routine (100) est mémorisée sur le second dispositif de mémorisation. 9. Ordinateur (10) selon la revendication 8, caractérisé en ce que le second dispositif de mémorisa- tion est une disquette. 10. Ordinateur (10) selon la revendication 8, caractérisé en ce que le second dispositif de mémorisa- tion est connecté au processeur (12) via un réseau. 11. Ordinateur (10) selon la revendication 8, caractérisé en ce que le code d'exploitation est mémorisé sur le second dispositif de mémorisation. 12. Ordinateur (10) selon la revendication 1, caractérisé en ce que la routine actualise la référence logique en réponse à une instruction de l'utilisateur. 13. Procédé pour permettre à un système d'ex- ploitation d'ordinateur de référencer d'une manière dyna- mique une partition récemment modifiée d'un dispositif de mémorisation, le procédé étant caractérisé en ce qu'il comporte les étapes consistant à: localiser et purger les antémémoires accessi- bles au système d'exploitation de l'ordinateur, localiser et fermer tous les fichiers ouverts accessibles au système d'exploitation de l'ordinateur, charger un secteur d'amorçage associé à la par- tition modifiée et en extraire un Bloc de Paramètres BIOS, et modifier une valeur de référence logique utili- sée par le système d'exploitation de l'ordinateur en uti- lisant des informations extraites du Bloc de Paramètres BIOS. 14. Procédé selon la revendication 13, caracté- risé en ce que l'étape de modification comporte l'actua- lisation d'un Bloc de Paramètres de Lecteur et d'une Ta- ble de Données de Lecteur dans le système d'exploitation de l'ordinateur. 15. Procédé selon la revendication 13, caracté- risé en ce qu'il consiste en outre à: charger un secteur d'amorçage maitre à partir du dispositif de mémorisation, et déterminer que la partition modifiée est une partition primaire. 16. Système pour permettre à un système d'ex- ploitation d'ordinateur de référencer d'une manière dyna- mique une partition modifiée d'un dispositif de mémorisa- tion, le système étant caractérisé en ce qu'il comporte: des moyens pour localiser et purger les antémé- moires accessibles au système d'exploitation de l'ordina- teur, des moyens pour localiser et fermer tous les fichiers ouverts accessibles au système d'exploitation de l'ordinateur, des moyens pour charger un secteur d'amorçage associé à la partition modifiée et en extraire un Bloc de Paramètres BIOS, et des moyens pour modifier une valeur de réfé- rence logique utilisée par le système d'exploitation de l'ordinateur en utilisant des informations extraites du Bloc de Paramètres BIOS. 17. Système selon la revendication 16, caracté- risé en ce que les moyens pour modifier comportent des moyens pour actualiser un Bloc de Paramètre de Lecteur et une Table de Données de Lecteur dans le système d'exploi- tation de l'ordinateur. 18. Système selon la revendication 16, caracté- risé en outre en ce qu'il comporte: des moyens pour charger un secteur d'amorçage maitre à partir du dispositif de mémorisation, et des moyens pour déterminer que la partition mo- difiée est une partition primaire.