Brevet FR2772491A1 — publié le 19990618

La présente invention 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 remapper une référence logique à un premier disposi- tif de mémorisation en une référence logique à un second dispositif de mémorisation. Dans certains ordinateurs, en particulier les ordinateurs à faible coût et les ordinateurs personnels pour réseau (PC pour réseau), un nombre limité de dispo- sitifs de mémorisation sont prévus. Par exemple, la plu- part des PC pour réseau auront un disque dur unique, mais pas de lecteur de disquette. Bien que cette configuration des dispositifs de mémorisation satisfasse à la plupart des exigences pour ces ordinateurs, certains programmes contiennent des références codées sur dur spécifiques aux dispositifs de mémorisation absents. En poursuivant avec l'exemple du PC pour réseau, lorsqu'un logiciel est char- gé dans le PC pour réseau durant le processus de fabrica- tion de l'ordinateur, souvent, un processus de chargement de logiciel attend de l'ordinateur qu'il comporte un lec- teur de disquette. Ceci est dû principalement au fait que la majorité des ordinateurs comportent un lecteur de dis- quette et que, par conséquent, des références codées sur dur à de tels lecteurs se retrouvent pendant tout le pro- cessus de chargement de logiciel. Cependant, du fait que, dans le présent exemple, il n'existe pas de lecteur de disquette, le processus de chargement de logiciel se voit affligé de nombreuses erreurs. Il existe deux solutions typiques à ce pro- blème. Une première solution consiste à installer tempo- rairement un lecteur de disquette dans le PC pour réseau durant le processus de chargement de logiciel, puis, en- suite, à enlever le lecteur de disquette. Cette solution est indésirable, cependant, du fait qu'elle nécessite un temps considérable et requiert l'existence d'un lecteur de disquette auxiliaire. L'autre solution consiste à mo- difier le code pendant le processus de chargement de lo- giciel. Cette solution est aussi indésirable du fait que le code est souvent utilisé par de nombreux ordinateurs différents et que, par conséquent, il n'est pas souhaita- ble de le modifier. De plus, des droits de reproduction et/ou une indisponibilité du code source peuvent empêcher que le code ne soit modifié. En réponse, on fournit un système et un procédé pour remapper une référence logique à un premier disposi- tif de mémorisation en une référence logique à un second dispositif de mémorisation. Dans un premier mode de réa- lisation, un ordinateur comporte un processeur pour exé- cuter un code de système d'exploitation, une mémoire à accès aléatoire (RAM), et un dispositif de mémorisation à disque dur (le second dispositif de mémorisation). L'or- dinateur ne comporte pas, cependant, de lecteur de dis- quette (le premier dispositif de mémorisation). Le disque dur, auquel peut accéder le processeur, comporte au moins deux partitions. Lorsque l'ordinateur est lancé, le code du système d'exploitation exécuté sur le processeur com- porte une première référence logique à la première parti- tion du disque dur et une seconde référence logique au lecteur de disquette non-existant. Les références logiques sont mémorisées dans une table qui se trouve dans la RAM. S'il advenait que des routines de logiciel exécutées sur le processeur uti- lisent la seconde référence logique, une erreur viendrait normalement à se produire. Cependant, une routine de changement de référence est prévue afin de changer la ré- férence logique au lecteur de disquette non-existant en une référence logique à la seconde partition du disque dur. La routine de changement de référence effectue cette opération en modifiant la table à l'aide de données con- tenues dans la seconde partition de sorte que, lorsque la référence logique au second dispositif de mémorisation est utilisée, ce soit la seconde partition du premier dispositif de mémorisation qui fasse l'objet d'un accès. Un avantage technique obtenu avec la présente invention est que le premier dispositif de mémorisation n'est pas requis, même si certaines routines de logiciel peuvent tenter d'accéder au premier dispositif de mémori- sation. Un autre avantage technique obtenu avec la pré- sente invention est que le remappage s'effectue dans la RAM de l'ordinateur et que, par conséquent, aucune modi- fication permanente n'est effectuée ou n'est requise dans aucune autre routine de logiciel. 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 de la présente invention, - 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 DC1314) intitulée "Method for Updating Partition Mappings to Logical Drives in a Compu- ter Memory Device", déposées conjointement à 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 con- nexion-réseau 18. Chaque composant est capable de commu- niquer avec le processeur 12, comme représenté graphique- ment par un bus universel 20. Dans le présent exemple, l'ordinateur 10 est un PC pour réseau exécutant un code de système d'exploitation Microsoft DOS (appelé par la suite DOS), tel que commercialisé par la Microsoft Corpo- ration, Redmond, Washington. Par ailleurs, la ROM 14b est implémentée sur une carte d'interface-réseau et contient un code de chargement de programme initial éloigné, typi- que d'un ordinateur pour réseau. Il va de soi, cependant, que le PC pour réseau 10, ainsi que ses composants illus- trés, sont simplement représentatifs de nombreux types d'ordinateurs et de composants différents et que le DOS est simplement représentatif d'un grand nombre de types de systèmes d'exploitation différents bien connus et com- pris 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 maître 30, une partition utilitaire 32, et une partition primaire 34. Sur le secteur d'amorçage maître 30 se trouvent un code d'amorçage 40 et une table de partition maîtresse 42. La table de partition mai- tresse comporte un code qui représente des données spéci- fiques à 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 que contient le secteur d'amorçage maître 30, incluant le code d'amorçage 40, est bien connu dans la technique et, pour des raisons de concision, ce- lui-ci ne sera pas plus amplement décrit ici. Dans le présent exemple, la partition primaire 34 est active et le DOS inclut une valeur de référence logique "C:" à la partition primaire en mémorisant des informations spécifiques à la partition primaire dans un Bloc de Paramètres de Lecteur et une Table de Données de Lecteur. La partition utilitaire 32, cependant, n'est pas active et aucune information concernant la partition uti- litaire n'est mémorisée dans le Bloc de Paramètres de Lecteur ou la Table de Données de Lecteur. Une telle con- figuration du PC pour réseau 10 est typique, permettant par conséquent à un logiciel de maintenance utilitaire spécial d'être mémorisé dans la partition utilitaire 32, tout en maintenant ce logiciel séparé du logiciel contenu dans la partition primaire 34. Par ailleurs, dans le pré- sent exemple, un processus de chargement de logiciel (non-représenté) contient des références codées sur dur à un lecteur logique A:, faisant référence d'une manière typique à un lecteur de disquette. Du fait qu'il n'existe pas de lecteur de disquette dans le PC pour réseau 10, le processus de chargement rencontrerait habituellement des erreurs au niveau des références codées sur dur au lec- teur logique A:. En se reportant à la figure 3, une routine 100, intitulée "Waffle", permet d'exécuter le processus de chargement de logiciel sans que l'on ne rencontre d'er- reurs imputables aux références au lecteur logique A: co- dées sur dur. Avant que la routine "Waffle" 100 ne soit exécutée, le disque dur 16 est initialisé ou reconfiguré, la partition utilitaire 32 est spécifiée comme étant in- active et la partition primaire 34 est spécifiée comme étant active. A l'étape 110, la routine "Waffle" 100 est chargée dans la RAM 14a et est exécutée. La routine "Waffle" est une routine de changement de référence logi- que et, dans le présent mode de réalisation, l'accès à celle-ci se fait via la connexion-réseau 18. De plus, l'accès au DOS se fait aussi via la connexion-réseau 18, ce qui fait que le PC pour réseau 10 peut être amorcé à partir du réseau. En variante, la routine "Waffle" peut être installée sur l'une ou l'autre des partitions 32 et 34, ou sur les deux, et peut être obtenue à partir d'une autre source. Malgré l'absence de détails supplémentai- res, la routine "Waffle" peut contenir plusieurs points de vérification de la progression au niveau desquels la routine "Waffle" vérifiera des valeurs spécifiques et in- diquera à l'utilisateur l'existence d'erreurs ou d'autres conditions. A l'étape 112, une instruction est reçue en provenance d'un utilisateur. Une instruction "virtuel" indique à la routine "Waffle" que l'utilisateur souhaite convertir une partition inactive en un lecteur de dis- quette virtuel. Dans le présent exemple, la partition utilitaire 32 serait amenée à émuler un lecteur logique A:. A l'étape 114, le contenu du secteur d'amorçage maître 30 du disque dur 16 est chargé dans la RAM 14a. A l'étape 116, il est déterminé si le lecteur logique A: a déjà été mappé sur la partition utilitaire 32, c'est-à-dire s'il existe déjà un lecteur de disquette virtuel (ou réel). Si tel est le cas, l'exécution est in- terrompue. Dans le cas contraire, l'étape exécutée en- suite est l'étape 118 au cours de laquelle les parties de la RAM 14a qui ne sont pas utilisées par le DOS, par la routine "Waffle" ou qui ne sont pas utilisées pour mémo- riser le contenu du secteur d'amorçage maître 30, sont totalement vidées. Cette étape peut effectuer plusieurs opérations. Par exemple, si l'ordinateur 10 comporte une ou plusieurs antémémoires, y compris les antémémoires du disque, les antémémoires sont totalement vidées. Par ailleurs, tous les fichiers ouverts utilisés par le DOS ou par tout autre application ouverte exécutée sur l'or- dinateur sont fermés. A l'étape 120, le secteur d'amorçage 50 de la partition utilitaire 32 est récupéré. A l'étape 122, la référence logique du système d'exploitation est actuali- sée pour le lecteur de disquette. Dans le présent exem- ple, cette référence logique, qui est mémorisée avec le DOS dans la RAM 14a, est un lecteur "A:". Ceci est effec- tué en utilisant un Bloc de Paramètres BIOS obtenu à par- tir du secteur d'amorçage utilitaire 50 pour actualiser un Bloc de Paramètres de Lecteur du DOS. A l'étape 124, le Bloc de Paramètres BIOS provenant du secteur d'amor- çage primaire est aussi utilisé pour actualiser une Table de Données de Lecteur eu égard à la référence au lecteur logique A:. On notera que des changements et remplacements peuvent être apportés à la description qui précède et, dans certains cas, certaines caractéristiques de la pré- sente invention seront utilisées sans utiliser nécessai- rement d'autres caractéristiques. De plus, des caracté- ristiques supplémentaires, telles que des routines de ma- nipulation des erreurs, peuvent être ajoutées au mode de réalisation illustratif sans pour autant modifier la por- tée de la présente invention. REVENDICATIONS 1. Ordinateur (10) caractérisé en ce qu'il comporte: un processeur (12) pour exécuter un logiciel incluant un code d'exploitation, un premier dispositif de mémorisation (16) ac- cessible au processeur (12), le dispositif de mémorisa- tion (16) étant séparé en au moins deux partitions (34, 32), la première partition (34) étant active, le code d'exploitation comportant une référence logique à un second dispositif de mémorisation et compor- tant une table pour mapper la référence logique sur le second dispositif de mémorisation, le second dispositif de mémorisation n'étant pas accessible au processeur (12), et une routine de changement de référence (100) pour changer d'une manière dynamique la référence logique en une référence à la seconde partition (32) du premier dispositif de mémorisation (16) en modifiant la table, dans lequel, après modification de la table suite au changement de référence, toute référence au se- cond dispositif de mémorisation est remplacée par une ré- férence à la seconde partition (32) du premier dispositif de mémorisation (16). 2. Ordinateur (10) selon la revendication 1 caractérisé en ce qu'il comporte en outre un système de mémoire et en ce que la routine de changement de réfé- rence (100) vide aussi totalement le système de mémoire après modification de la référence logique. 3. Ordinateur (10) selon la revendication 2 caractérisé en ce que le système de mémoire comporte en outre une antémémoire de disque et un ou plusieurs fi- chiers ouverts et en ce que la routine de changement de référence (100) vide totalement le système de mémoire en vidant totalement l'antémémoire de disque et en fermant le ou les plusieurs fichiers ouverts. 4. Ordinateur (10) selon la revendication 1 caractérisé en ce que la routine de changement de réfé- rence (100) récupère des données à partir d'un secteur d'amorçage (50) de la seconde 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 comprennent un Bloc de Paramètres BIOS. 6. Ordinateur (10) selon la revendication 5 caractérisé en ce que la table comprend un Bloc de Para- mètres de Lecteur et une Table de Données de Lecteur. 7. Ordinateur (10) selon la revendication 1 caractérisé en ce que le code d'exploitation comprend un système de gestion de fichiers et en ce que la routine de changement de référence (100) réinitialise aussi le sys- tème de gestion de fichiers après avoir changé la réfé- rence logique. 8. Ordinateur (10) selon la revendication 1 caractérisé en outre en ce qu'il comporte un dispositif d'interface-réseau (18) et en ce que la routine de chan- gement de référence (100) est obtenue via le dispositif d'interface-réseau (18). 9. Ordinateur (10) selon la revendication 8 caractérisé en ce que le code d'exploitation est obtenu via le dispositif d'interface-réseau (18). 10. Ordinateur (10) selon la revendication 1 caractérisé en ce que la routine de changement de réfé- rence (100) actualise la référence logique en réponse à une instruction-utilisateur. 11. Dans un ordinateur (10) comportant un pre- mier dispositif de mémorisation (16) et un processeur (12) exécutant un code d'exploitation contenant des réfé- rences logiques au premier dispositif de mémorisation (16) et à un second dispositif de mémorisation, procédé pour permettre à un processus logiciel de faire référence au second dispositif de mémorisation même si le proces- seur (12) ne peut accéder au second dispositif de mémori- sation, le procédé étant caractérisé en ce qu'il comporte les étapes consistant à: diviser le premier dispositif de mémorisation (16) en deux partitions (34, 32), définir la première partition (34) comme étant active, charger un secteur d'amorçage (50) pour la se- conde partition (32) et récupérer un Bloc de Paramètres BIOS à partir de celui-ci, déterminer si le processeur (12) peut accéder au second dispositif de mémorisation, et si le processeur (12) peut accéder au second dispositif de mémorisation, actualiser la valeur de réfé- rence logique au second dispositif de mémorisation à l'aide d'informations récupérées à partir du Bloc de Pa- ramètres BIOS. 12. Procédé selon la revendication 11 caracté- risé en ce que l'étape d'actualisation comporte l'actua- lisation d'un Bloc de Paramètres de Lecteur et d'une Ta- ble de Données de Lecteur dans le code d'exploitation. 13. Procédé selon la revendication 11 dans le- quel l'ordinateur comprend un fichier ouvert et une anté- mémoire, le procédé étant caractérisé en ce qu'il con- siste en outre à vider totalement l'antémémoire et à fer- mer le fichier ouvert. 14. Moyens de mémorisation informatiques numé- riques destinés à être utilisés dans un ordinateur (10), lequel ordinateur comporte un premier dispositif de mémo- risation (16), un processeur (12) capable d'accéder au premier dispositif de mémorisation (16), et un code d'ex- ploitation contenant des références logiques au premier dispositif de mémorisation (16) et à un second dispositif de mémorisation, caractérisés en ce que le second dispo- sitif de mémorisation n'est pas accessible au processeur (12) et en ce que le premier dispositif de mémorisation (16) est divisé en deux partitions (34, 32), la première partition (34) étant active, lesdits moyens de mémorisa- tion comportant, mémorisées dans ceux-ci, des informa- tions numériques, lisibles par une machine, représen- tant: des instructions pour charger un secteur d'amorçage (50) associé à la seconde partition (32) et récupérer un Bloc de Paramètres BIOS à partir de ce- lui-ci, et des instructions pour actualiser la référence logique au second dispositif de mémorisation à l'aide d'informations récupérées à partir du Bloc de Paramètres BIOS de sorte que, si le processeur tente d'accéder au second dispositif de mémorisation en utilisant la réfé- rence logique au second dispositif de mémorisation, le processeur (12) accède à la place à la seconde partition (32) du premier dispositif de mémorisation (16). 15. Moyens de mémorisation selon la revendica- tion 11, caractérisés en ce que les instructions d'actua- lisation signifient l'actualisation d'un Bloc de Paramè- tres de Lecteur et d'une Table de Données de Lecteur dans le code d'exploitation. 16. Moyens de mémorisation selon la revendica- tion 11, caractérisés en ce que l'ordinateur (10) com- porte un fichier ouvert et une antémémoire, le dispositif comportant en outre des instructions pour vider l'antémé- moire et fermer le fichier ouvert. 17. Moyens de mémorisation selon la revendica- tion 11, caractérisés en ce qu'ils sont mémorisés sur un réseau et sont accessibles au processeur (12) via le ré- seau. 18. Moyens de mémorisation selon la revendica- tion 11, caractérisés en ce qu'ils font partie du premier dispositif de mémorisation (16). 19. Moyens de mémorisation selon la revendica- tion 11, caractérisés en ce qu'ils sont conçus et prévus pour que ledit processeur (12) puisse y accéder.