Brevet FR2772158A1 — publié le 19990611

La présente description concerne d'une manière générale les ordinateurs et, d'une manière plus spécifi- que, un secteur d'amorçage de partition, pour un disposi- tif de mémorisation d'ordinateur, dont le type peut être modifié d'une manière dynamique, celui-ci pouvant être transformé à partir d'un secteur d'amorçage non- reconnaissable en un secteur d'amorçage reconnaissable. Dans un ordinateur comportant un ou plusieurs dispositifs de mémorisation, tels qu'un disque dur, les dispositifs de mémorisation sont souvent séparés en des partitions différentes, de sorte que certaines données ou programmes peuvent être mémorisés sur des partitions sé- parées. Par exemple, dans un ordinateur qui utilise le système d'exploitation Microsoft DOS, Windows, ou Windows 95, tel que commercialisé par la Microsoft Corporation, Redmond, Washington, il est possible de séparer le disque dur unique d'un ordinateur en une première partition, laquelle contiendrait le code du système d'exploitation, et une autre partition, laquelle contiendrait des pro- grammes du type utilitaire ou maintenance. Dans la des- cription qui va suivre, pour des raisons de concision, on ne décrira que le DOS, étant entendu que le DOS est re- présentatif des systèmes d'exploitation décrits ci-dessus, ainsi que de nombreux autres systèmes d'ex- ploitation. Un programme EBTS ("Electronic Break-The-Seal" ou "Ouverture Electronique des Scellés") est un exemple de programme du type utilitaire ou maintenance. Un pro- gramme EBTS est souvent utilisé pour mettre en applica- tion un contrat de licence d'utilisation de logiciel re- lativement à un autre programme. Pour implémenter le pro- gramme EBTS, une première partition est créée, laquelle constitue une partition utilitaire et contient le pro- gramme EBTS. Une seconde partition est créée, laquelle constitue une partition primaire et contient le programme protégé par la licence d'utilisation du logiciel. Initia- lement, la partition utilitaire est marquée comme "active", ce qui fait que l'ordinateur accède tout d'abord à la partition utilitaire. Après l'acceptation des conditions du contrat de licence, la partition primaire est alors marquée comme active, ce qui fait que l'ordinateur accédera ultérieurement tout d'abord à la partition primaire. Cependant, plusieurs problèmes sont associés au scénario ci-dessus. Par exemple, il peut ne pas être sou- haitable de permettre que l'utilisateur accède à la par- tition utilitaire durant une utilisation normale de l'or- dinateur. On peut imputer ce souhait au fait que l'utili- sateur peut alors accéder à divers programmes de mainte- nance et programmes utilitaires qui sont excessivement puissants et que l'utilisateur risquerait alors de perdre facilement les données mémorisées sur son disque dur, pourrait reconfigurer l'ordinateur, ou à d'autres scéna- rios qu'il vaut mieux taire à l'utilisateur. Par consé- quent, une solution consiste à faire en sorte que la par- tition utilitaire ne soit normalement pas visible pour le. système d'exploitation. Ceci est réalisé en établissant un "code de type de partition", associé à la partition utilitaire, à une valeur qui n'est pas reconnaissable par le système d'exploitation. La configuration et la manipu- lation de dispositifs de mémorisation, tels qu'un disque dur, sont décrites dans le livre intitulé "THE HARD DISK SURVIVAL GUIDE" par Mark Minasi, SYBEX, Inc., 1991, qui est incorporé ici à titre de référence. Cependant, ceci introduit un autre problème. Dans le présent exemple, la partition utilitaire est ini- tialement marquée comme active, ce qui fait que, lorsque l'ordinateur est amorcé, celui-ci ne regarde que la par- tition utilitaire. Pendant qu'il se trouve dans la parti- tion utilitaire, l'ordinateur peut souhaiter lancer un programme de maintenance ou un programme utilitaire, tel que le programme EBTS. Cependant, avant que le programme EBTS ne puisse être lancé, l'ordinateur doit tout d'abord charger le code du système d'exploitation à partir de la partition active. Dans le présent exemple, l'ordinateur chargerait au moins deux fichiers-système DOS: IO.SYS et MSDOS.SYS. Le fichier-système IO.SYS vérifie le code de type de partition de la partition active afin de s'assu- rer que le type de partition est un type qu'il reconnaît. Du fait que cela n'est pas le cas, le fichier IO.SYS ren- contre une erreur et délivre en conséquence un message d'erreur. En résultat, le programme EBTS ne peut être exécute. En réponse à ce qui précède, on fournit un sys- tème et un procédé pour fournir un secteur d'amorçage de partition modifiable, pour un dispositif de mémorisation d'un ordinateur. Dans un premier mode de réalisation, l'ordinateur comporte un processeur pour charger et lan- cer un code d'amorçage et un code de système d'exploita- tion. Le dispositif de mémorisation, auquel peut accéder le processeur, comporte au moins deux partitions, la pre- mière partition étant initialement active et étant d'un type qui n'est pas reconnu par le système d'exploitation, et la seconde partition étant initialement inactive. Lorsque l'ordinateur s'amorce, le processeur accède à la partition active qui est initialement la pre- mière partition. Une fois opéré l'accès à la partition active, le logiciel contenu dans la partition active or- donne au processeur de convertir le type de la partition active en un type visible, c'est-à-dire en un type qui est reconnaissable par le système d'exploitation. Par conséquent, lorsque le système d'exploitation est chargé, celui-ci reconnaît le type de la partition active et ne rencontre pas d'erreur. Une fois chargé le système d'ex- ploitation, un logiciel additionnel ordonne au processeur de reconvertir le type de la partition active en un type non-visible. Du fait que le système d'exploitation est main- tenant chargé, le processeur peut exécuter d'autres tâ- ches. Par exemple, le processeur peut exécuter un pro- gramme EBTS qui invite un utilisateur à accepter une li- cence d'utilisation de logiciel, le logiciel étant mémo- risé dans la seconde partition. Si l'utilisateur accepte la licence d'utilisation du logiciel, le processeur dési- gne alors la seconde partition comme active. Un avantage technique obtenu est que, après que la seconde partition a été désignée comme active, il de- vient impossible, pour un utilisateur typique, d'accéder facilement à la première partition. Un autre avantage technique obtenu est que des programmes, tels qu'un programme EBTS, peuvent être lan- cés et exécutés sans que l'utilisateur ne rencontre ja- mais la seconde partition, l'environnement dans lequel évolue l'utilisateur n'étant par conséquent nullement af- fecté par les programmes de la seconde partition. 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, - la figure 3 est un ordinogramme d'une routine à lancer par l'ordinateur de la figure 1. En se reportant à la figure 1, la référence nu- mérique 10 indique un ordinateur comportant plusieurs composants, parmi lesquels au moins un processeur 12, une mémoire centrale 14, un disque dur 16 et une inter- face-utilisateur 18, telle qu'un clavier ou une souris. Chaque composant est capable de communiquer avec le pro- cesseur 12, comme représenté graphiquement par un bus universel 20. Dans le présent exemple, l'ordinateur est un ordinateur personnel destiné à fonctionner sous Micro- soft DOS. Il va de soi, cependant, que l'ordinateur 10 et les composants illustrés ne sont que représentatifs de nombreux types différents d'ordinateurs bien connus et compris dans la technique et que le DOS n'est que repré- sentatif de nombreux systèmes d'exploitation différents. 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. Dans 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 contient des codes qui représentent un type pour chaque partition 32 et 34. Il va de soi que le secteur d'amorçage maître 30 contient un code classique pour amorcer l'ordinateur 10 et définir les autres partitions du disque dur 16. La partition utilitaire 32 contient un secteur d'amorçage 50 et un ou plusieurs morceaux de logiciel in- cluant un programme EBTS 52 contenant un contrat de li- cence. Lors d'une utilisation normale, la partition uti- litaire 32 ne sera utilisée que durant des circonstances spéciales, telles que lorsque l'ordinateur est lancé pour la première fois par un utilisateur. La partition pri- maire 34 contient aussi un secteur d'amorçage 60 et un ou plusieurs morceaux de logiciel, tel qu'un programme 62 qui est protégé par le contrat de licence du programme EBTS 52. Lors d'une utilisation normale, la partition primaire 34 sera facilement accessible à l'utilisateur. Un but du présent mode de réalisation est d'obtenir qu'un utilisateur accepte les conditions du contrat de licence du programme EBTS 52 avant que ne lui soit consenti l'ac- cès au programme 62. En se reportant à la figure 3, une routine 100 est utilisée afin de permettre d'accéder au programme 62 lorsque les conditions du contrat de licence du programme EBTS 52 ont été acceptées par l'utilisateur. Lorsque l'ordinateur 10 est expédié hors de l'usine, la partition utilitaire 32 est initialement marquée comme active (et, par conséquent, la partition primaire 34 est inactive). De plus, le type de partition de la partition utilitaire 32 est établi à DEh (hex) et le type de partition de la partition primaire 34 est établi à 06h. Dans le mode pré- féré de réalisation, le type 06 est un code de type de partition valide, mais le type DE ne l'est pas et ne peut être par conséquent reconnu par le DOS. A l'étape 110, le processeur 12 s'amorce en exécutant le code d'amorçage 40. A l'étape 112, le pro- cesseur 12 exécute le secteur d'amorçage de la partition active, qui est présentement le secteur d'amorçage 50 de la partition utilitaire 32. A l'étape 114, le secteur d'amorçage 50 établit son type de partition à 06h, (c'est-à-dire un type valide) et actualise correctement la table de partition maîtresse 42. A l'étape 116, le fi- chier IO.SYS (une partie du code du système d'exploita,- tion DOS) est chargé. Lorsque le fichier IO.SYS est char- gé, il "voit" le type de partition 06h, puis passe à l'exécution d'un processus de lancement du système d'ex- ploitation. A l'étape 118, une fois terminé le processus de lancement du système d'exploitation, le programme EBTS 52 est exécuté. A l'étape 120, le programme EBTS 52 éta- blit son type de partition à DEh (c'est-à-dire, un type invalide) et actualise correctement la table de partition maîtresse 42. A l'étape 122, le programme EBTS 52 invite l'utilisateur, via l'interface-utilisateur 18, à accepter ou non le contrat de licence. Si l'utilisateur indique son acceptation, tel qu'en sélectionnant une option "ACCEPTER" sur l'inter- face-utilisateur 18, l'étape exécutée ensuite est l'étape 124. A l'étape 124, la partition primaire 34 est marquée comme active (et, par conséquent, la partition utilitaire 32 est inactive) et l'ordinateur 10 se réamorce. Si, ce- pendant, l'utilisateur indique un refus, l'étape exécutée ensuite est l'étape 126. A l'étape 126, l'utilisateur se voit notifier du fait qu'il ne peut accéder au programme 62 et la routine 100 est interrompue. En variante, l'uti- lisateur peut être réinvité à accepter le contrat de li- cence ou peut se voir fournir des informations addition- nelles. En résultat, lorsque l'ordinateur 10 se ré- amorce, il est maintenant capable d'accéder à la parti- tion primaire 34 et de lancer le programme 62. En outre, si un système d'exploitation, tel que Microsoft Windows, est chargé sur la partition primaire 34, du fait que le programme EBTS 52 a déjà été exécuté, l'environnement "Windows" dans lequel évolue l'utilisateur n'est pas af- fecté par le programme EBTS. En outre, la partition uti- litaire 32 peut contenir des programmes additionnels, tels que des programmes de maintenance et de diagnostic qui devraient ne pas être facilement disponibles pour l'utilisateur. Cependant, un technicien peut réactiver la partie utilitaire et accéder ainsi aux programmes de maintenance et de diagnostic. Bien que des modes de réalisation illustratifs de la présente invention aient été représentés et dé- crits, une certaine latitude est laissée quant à des mo- difications, des changements et des remplacements dans la description qui précède et, dans certains cas, certaines caractéristiques de la présente invention seront utili- sées sans l'utilisation correspondante d'autres caracté- ristiques. Par exemple, le disque dur 16 peut être rem- placé par une mémoire à bande, un dispositif de mémorisa- tion optique, ou un autre type de mémorisation. En outre, des tampons, des gestionnaires, des circuits à retard ad- ditionnels, ainsi que d'autres circuits, peuvent être ajoutés au mode de réalisation illustratif, sans modifier la portée de la présente invention. REVENDICATIONS 1. Ordinateur (10) caractérisé en ce qu'il comporte: au moins un processeur (12) pour charger et exécuter un code d'amorçage (40) et un code d'exploita- tion, au moins un 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 (30, 32, 34), la première partition (32) étant initialement désignée comme active et étant d'un type qui n'est pas reconnu par le code d'exploitation, et en ce que, lorsque le processeur (12) exécute le code d'amorçage (40) et la première partition (32) est active, le processeur lance une routine de changement de type, et en ce que la routine de changement de type ordonne au processeur (12) de convertir le type de la première par- tition (32) en un type qui est reconnaissable par le code d'exploitation, de sorte que, lorsque le code d'exploita- tion est exécuté, le code d'exploitation reconnaisse la première partition (32). 2. Ordinateur (10) selon la revendication 1, caractérisé en ce que la routine de changement de type est mémorisée dans la première partition (32) sur le dis- positif de mémorisation (16)). 3. Ordinateur (10) selon la revendication 1, caractérisé en ce que le code d'exploitation est mémorisé dans la première partition (32) sur le dispositif de mé- morisation (16). 4. Ordinateur (10) selon la revendication 1, caractérisé en ce que, après que le code d'exploitation a reconnu la première partition (32), la routine de change- ment de type ordonne au processeur (12) de convertir le type de la première partition (32) en un type qui n'est pas reconnaissable par le code d'exploitation. 5. Ordinateur (10) selon la revendication 4, caractérisé en outre en ce qu'il comporte un programme mémorisé dans la première partition (32) sur le disposi- tif de mémorisation (16), et en ce que, si un utilisateur interagit avec le programme d'une manière prédéterminée, la routine de changement de type désigne la seconde par- tition (34) comme active. 6. Ordinateur (10) selon la revendication 5, caractérisé en ce que le programme est un programme EBTS destiné à permettre de contracter une licence d'utilisa- tion d'un logiciel mémorisé dans la seconde partition (34). 7. Ordinateur (10) selon la revendication 5, caractérisé en ce qu'il comporte en outre une inter- face-utilisateur (18) reliée au processeur (12) et en ce que l'interaction d'un utilisateur est reçue via l'inter- face-utilisateur (18). 8. Ordinateur (10) selon la revendication 1, caractérisé en ce que le dispositif de mémorisation (16) comporte aussi une table de partition maîtresse (42) pour mémoriser le type de la première partition (32). 9. Ordinateur (10) selon la revendication 4, caractérisé en ce qu'il comporte en outre un programme (62) mémorisé dans la seconde partition (34) sur le dis- positif de mémorisation (16), et en ce que, si un utili- sateur interagit avec la routine de changement de type d'une manière prédéterminée, la routine de changement de type ordonne que la seconde partition (34) soit désignée comme active, de sorte que l'utilisateur peut accéder au programme (62). 10. Ordinateur (10) selon la revendication 9, caractérisé en ce que, si l'utilisateur n'interagit pas avec la routine de changement de type de la manière pré- déterminée, la routine de changement de type n'ordonne pas que la seconde partition (34) soit désignée comme ac- tive, ce qui fait que l'utilisateur ne peut accéder au programme (62). 11. Dans un ordinateur (10) comportant un pro- cesseur (12) destiné à lancer un système d'exploitation et une mémorisation (16) accessible au processeur, procé- dé pour gérer l'accès à un logiciel (62) situé sur la mé- morisation (16), le procédé étant caractérisé en ce qu'il consiste à: (a) avant que l'ordinateur (10) ne soit amor- cé: (i) séparer la mémorisation en au moins deux partitions (32, 34), la première partition (32) étant active, (ii) mémoriser le logiciel (62) dans la se- conde partition (34), (iii) désigner la première partition (32) comme étant d'un type non-visible, et (b) lorsque l'ordinateur est amorcé: (i) faire accéder le processeur (12) à la partition active (32), (ii) redésigner la partition active (32) comme étant d'un type visible, (iii) charger le système d'exploitation, (iv) reconvertir la partition active (32) en une partition du type non- visible, (v) déterminer s'il est possible d'accéder au logiciel, (vi) s'il est possible d'accéder au logi- ciel, désigner la seconde partition (34) comme active. 12. Procédé selon la revendication 11, caracté- risé en ce que l'étape (b) (v) est exécutée en invitant un utilisateur à accepter une licence d'utilisation de logiciel et en déterminant si l'utilisateur a répondu à l'invitation d'une manière prédéterminée. 13. Procédé selon la revendication 11, caracté- risé en ce que le dispositif de mémorisation (16) com- porte une table de partition maîtresse (42) pour mémori- ser le type de la première partition (32). 14. Procédé selon la revendication 11, caracté- risé en ce que le dispositif de mémorisation (16) com- porte un code d'amorçage (40) pour amorcer l'ordinateur (10). 15. Procédé selon la revendication 11, caracté- risé en ce que l'étape (a) consiste en outre à: (iv) mémoriser au moins une partie du sys- tème d'exploitation dans la première partition (32). 16. Procédé selon la revendication 11, caracté- risé en ce que l'étape (a) consiste en outre à: (iv) mémoriser au moins une partie du sys- tème d'exploitation dans la seconde partition (34). 17. Dans un ordinateur (10) comportant un pro- cesseur (12) pour lancer un système d'exploitation et un dispositif de mémorisation (16), accessible au processeur (12) et séparé en au moins deux partitions (32, 34), la première partition (32) étant active et étant d'un type non-reconnaissable et la seconde partition (34) contenant un morceau de logiciel, système pour permettre à un uti- lisateur d'avoir un accès contrôlé au morceau de logi- ciel, le système étant caractérisé en ce qu'il comporte: des moyens pour permettre au processeur (12) d'accéder à la partition active, des moyens pour convertir le type de la parti- tion active en un type qui est reconnaissable par le sys- tème d'exploitation avant que le processeur ne charge le système d'exploitation, des moyens pour charger le système d'exploita- tion, des moyens pour convertir le type associé à la partition active en un type non-reconnaissable après le chargement du système d'exploitation, des moyens pour déterminer si l'utilisateur peut accéder au morceau de logiciel, des moyens pour désigner la seconde partition (34) comme active s'il est déterminé que l'utilisateur peut accéder au morceau de logiciel. 18. Système selon la revendication 17, caracté- risé en ce que les moyens pour déterminer invitent l'uti- lisateur à accepter une licence d'utilisation de logiciel et déterminent si l'utilisateur a répondu d'une manière prédéterminée à l'invitation. 19. Système selon la revendication 17, caracté- risé en ce que le dispositif de mémorisation (16) com- porte une table de partition maîtresse (42) pour mémori- ser le type de la première partition (32). 20. Système selon la revendication 17, caracté- risé en ce que au moins une partie du système d'exploita- tion est mémorisée dans la première partition (32). 21. Système selon la revendication 17, caracté- risé en ce que au moins une partie du système d'exploita- tion est mémorisé dans la seconde partition (34).