Brevet FR2801692A1 — publié le 20010601

DEMARRAGE D'UN SYSTEME D'EXPLOITATION SELECTIONNE A DISTANCE La présente invention se rapporte à des systèmes informatiques et plus particulièrement au démarrage d'un système d'exploitation sélectionné à distance. En d'autres termes, il est décrit un procédé, un système et des équipements, permettant à l'utilisateur d'un ordinateur personnel de demander à un serveur un parmi une pluralité de systèmes d'exploitation. Un ordinateur personnel nécessite d'abord le chargement d'un système d'exploitation de façon à permettre à un utilisateur d'exécuter des programmes d'application. La façon la plus facile et la plus classique de procéder à une telle opération de chargement est de mémoriser ce système d'exploitation dans l'ordinateur et de procéder à ce que l'on appelle un démarrage local. Conformément au procédé de démarrage local, lorsque l'ordinateur personnel est mis sous tension, il exécute un programme BIOS mémorisé dans une ROM, ROM signifiant "Read Only Memory" (mémoire morte), BIOS signifiant "Basic Input Output Support" (système de base d'entrée/sortie). Ce programme BIOS vérifie que tous les composants de l'ordinateur sont opérationnels. Ensuite, le programme BIOS recherche un enregistrement d'un programme de démarrage pour charger le système d'exploitation. Le BIOS identifie l'emplacement de l'enregistrement du programme de démarrage. Celui-ci est déclaré dans le premier secteur soit d'une unité de disquette, soit d'une unité de disque dur. Le BIOS charge ensuite cet enregistrement dans un emplacement spécifique dans la RAM de l'ordinateur, RAM signifiant 'Random Access Memory" (mémoire vive). Le programme BIOS se branche ensuite sur le programme démarrage qui contient un programme spécifique pour charger successivement tous les fichiers du système d'exploitation. L'ordinateur est maintenant à la disposition de l'utilisateur. Le démarrage local est une technique efficace mais le système d'exploitation doit être mémorisé localement, ce qui signifie que l'ordinateur a besoin de posséder au moins une unité de disque. En outre, une partie de la mémoire de cette unité est occupée par le système d'exploitation. Une autre technique a été ensuite utilisée : le démarrage à distance. Cette technique est utilisée lorsque l'ordinateur personnel est connecté à un serveur, au travers un réseau. Dans ce cas, la mémoire morte (Read Only Memory) contenant le BIOS est située dans un composant de l'ordinateur personnel, l'adaptateur LAN, (carte de réseau local), LAN signifiant "Local Area Network". Cette carte permet les communications entre l'ordinateur et tout autre équipement relié au réseau. Conformément à la technique de démarrage à distance, lorsque l'ordinateur personnel est mis sous tension, il exécute le programme BIOS comme précédemment, mais maintenant, au lieu de chercher l'enregistrement du programme de démarrage, le BIOS diffuse une requête de démarrage sur le réseau de façon à obtenir des informations à partir de tout serveur approprié. Un tel serveur retourne son identification, normalement son adresse sur le réseau, de façon à ce que l'ordinateur puisse communiquer avec lui. Il retourne également le nom d'un fichier spécifié à partir duquel démarrer. L'ordinateur peut maintenant mettre en place ce fichier spécifié qui est une réplique de l'enregistrement du programme de démarrage tel que mémorisé sur une disquette ou une unité de disque dur. La procédure de démarrage est ensuite similaire à celle mentionnée précédemment. Le démarrage à distance permet ensuite de charger le système d'exploitation lorsqu'il n'est pas mémorisé dans l'ordinateur. Ceci présente un intérêt particulier pour les stations sans disque. Par ailleurs, comme chaque système d'exploitation disponible présente ses propres spécificités, il est maintenant très courant qu'un utilisateur ait besoin d'exécuter des programmes d'application adaptés à différents systèmes d'exploitation. Jusqu'à maintenant, le démarrage à distance permettait de charger seulement un système, celui configuré pour l'ordinateur personnel. Une technique de démarrage multiple a ainsi apparu afin de permettre à l'utilisateur de démarrer dans différents systèmes d'exploitation. Tous les fichiers nécessaires pour démarrer dans ces systèmes résident dans une mémoire locale de l'ordinateur personnel sous une identité appropriée. En outre, un secteur de démarrage est défini pour chaque système. Pendant la procédure de démarrage, le programme BIOS pointe vers le secteur de démarrage correspondant au système d'exploitation qui a été sélectionné. Cependant, il apparaît que le démarrage multiple souffre des mêmes limitations que le démarrage local, rendant obligatoire une mémorisation locale des fichiers nécessaires au démarrage. D'autre part, il convient de noter que de plus en plus de systèmes d'exploitation sont disponibles. En conséquence de quoi, l'utilisateur d'un ordinateur personnel qui quitte son bureau pour un autre endroit est généralement obligé d'emporter avec lui son ordinateur portable car il n'est pas sûr d'avoir les programmes appropriés à sa disposition dans cet autre endroit. D'une façon générale, un des buts de la présente invention est de procurer une technique qui permette de démarrer dans différents systèmes d'exploitation, tout en évitant de mémoriser les fichiers nécessaires dans l'ordinateur personnel. Conformément à l'invention, un procédé pour effectuer un démarrage à distance dans un système d'exploitation comprend des étapes consistant à # diffuser une requête de démarrage sur un réseau, # recevoir en retour l'identification d'un serveur, # recevoir le nom d'un fichier de démarrage mémorisé dans ce serveur, # télécharger le fichier de démarrage du serveur vers l'ordinateur personnel. Une pluralité de systèmes d'exploitation est mémorisée dans le serveur ainsi qu'un fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés (login file). Avant de recevoir le nom du fichier de démarrage, le présent procédé comprend en outre des étapes consistant à # recevoir et exécuter le fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés, et # réacheminer l'identification du système d'exploitation sélectionné. De préférence, lorsqu'il est utilisé dans un ordinateur personnel, le procédé comprend en outre une étape pour spécifier le type de station de l'ordinateur personnel avant de recevoir le fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés. Dans un mode de réalisation préféré, lorsque le procédé est commandé par un utilisateur, celui-ci comprend une étape pour spécifier l'identité de cet utilisateur avant de recevoir le fichier de démarrage. De plus, le procédé comprend une étape pour spécifier un mot de passe. Ce procédé peut être mis à exécution dans un ordinateur qui comprend de façon avantageuse un analyseur de requête. La présente invention divulgue également un procédé pour fournir un système d'exploitation à un ordinateur personnel. Ce procédé comprend les étapes suivantes # recevoir une requête de démarrage à partir d'un réseau, # réacheminer en retour une identification vers l'ordinateur, # réacheminer également le nom d'un fichier de démarrage; Une pluralité de systèmes d'exploitation étant disponible, avant de réacheminer le nom du fichier de démarrage, le procédé comprend en outre les étapes consistant à . # réacheminer un fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés, et # recevoir l'identification du système d'exploitation sélectionné. De préférence, lorsque la requête de démarrage émane d'un ordinateur personnel, ce procédé comprend en outre une étape pour recevoir le type de station de l'ordinateur personnel, avant de réacheminer le fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés conformément à ce type de station. Dans un mode de réalisation préféré, lorsque ladite requête de démarrage émane d'un utilisateur, ce procédé comprend en outre une étape pour recevoir et vérifier l'identité de cet utilisateur avant de réacheminer le nom du fichier de démarrage. De plus, le procédé comprend une étape pour recevoir et vérifier un mot de passe avant de réacheminer le nom du fichier de démarrage. Le procédé peut être mis à exécution dans un serveur qui comprend de façon avantageuse un analyseur de requête. Le serveur comprend un tableau des stations afin d'associer le type de station avec le fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés. De la même manière, ce serveur comprend un tableau des clients pour associer l'identité de l'utilisateur et éventuellement un mot de passe avec le fichier de démarrage. On décrira ci-dessous des modes de réalisation de la présente invention à titre d'exemple seulement en se référant aux dessins annexés: La figure 1 est une vue générale du client, du serveur et du réseau utilisé pour connecter les deux équipements, La figure 2 représente les composants principaux d'un serveur, La figure 3 représente les composants principaux d'un ordinateur personnel, et La figure 4 est un schéma représentant l'échange des messages entre la station client et le serveur. Telles que représentées sur la figure 1, les entités principales impliquées dans la présente invention sont les suivantes: un ordinateur personnel ou station client 100, un serveur 101 et un réseau 102 pour connecter les deux équipements. En se référant à la figure 2, comme il se doit, le serveur comprend un premier adaptateur au réseau LAN, LA1, LAN signifiant "Local Area Network" (réseau local d'entreprise). Cette carte est utilisée pour transmettre et recevoir des messages sur le réseau, en particulier avec la station client. Le serveur comprend également un contrôleur de disque dur DC tel qu'un adaptateur SCSI (SCSI pour "Small Computer System Interface")(carte d'interface pour petits systèmes informatiques) ou un adaptateur RAID (RAID pour "Redundant Array of Inexpensive Disks") (disques en grappe protégés par contrôle de parité). Le serveur comprend aussi un premier processeur UP1 pour exécuter le procédé qui sera davantage décrit plus loin. Conformément à l'invention, le serveur comprend en plus un premier analyseur de requête RD1 dont la fonction sera également détaillée plus loin. Par ailleurs, dans un mode de réalisation préféré, la première mémoire RAM1 du serveur inclut deux tableaux spécifiques, le tableau des clients CT et le tableau des stations ST. En se référant à la figure 3, l'ordinateur personnel ou station client comprend un deuxième adaptateur de réseau local LA2, un deuxième processeur UP2, une deuxième mémoire RAM2 et finalement un deuxième analyseur de requête RD2. Comme le montre la figure 4, lorsque l'ordinateur personnel 400 est mis sous tension, il exécute d'abord le programme BIOS 402 mémorisé dans une mémoire morte (ROM, Read Only Memory) située dans le deuxième adaptateur de réseau local LA2. Le client demande une connexion 403 au serveur 401. Le programme BIOS accède au réseau juste comme peut le faire un demarrage a distance, en utilisant un protocole quelconque tel que DHCP ("Dynamic Host Configuration Protocol") (protocole de configuration dynamique de l'hôte) ou BOOTP ("Bootstrap Protocol") (protocole de démarrage). On trouvera des informations supplémentaires sur les protocoles Internet dans une publication de la Compagnie IBM Corporation intitulée "TCP/IP tutorial and technical overview GG24-3376-05", octobre 1998, éditée par International Technical Support Organization. En retour, au moyen du premier analyseur de requête RDl, le serveur 401 renvoie son identification 404, en particulier son adresse. Ensuite, l'adaptateur LA2 de réseau local de l'ordinateur personnel 400 utilise un protocole de transfert de fichier tel que TFTP ("Trivial File Transfer Protocol"), FTP ("File Transfer Protocol") ou CIFS ("Common Investment File System") pour télécharger un fichier d'entrée en communication 405 à partir du serveur (401) dans la mémoire RAM2. Enfin, l'adaptateur de réseau local spécifie le type de station de l'ordinateur personnel 400 qui peut être mémorisé dans le deuxième analyseur de requête RD2. Par exemple, cette opération de téléchargement est effectuée au moyen d'une pile de protocole TCP/IP présente dans l'adaptateur de réseau local, TCP/IP signifiant "Transport Control Protocol / Internet Protocol" (protocole de contrôle de transport/protocole Internet), ou, enfin, au moyen du deuxième analyseur de requête RD2. L'ordinateur personnel exécute maintenant le fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés. L'exécution de ce fichier invite l'utilisateur de cet ordinateur à introduire un système d'exploitation. Un message contenant le système d'exploitation sélectionné, l'identité de l'utilisateur et un mot de passe est envoyé 406 en tant que requête au serveur. Le serveur valide l'identité du client ainsi que le mot de passe associé 407. Lorsque le type de station est mémorisé, il est également transmis. En retour, lorsqu'il est transmis, le type de station est détecté par le premier analyseur de requête RD1 et dirigé vers le premier processeur UP1. Le premier processeur UP1 met à jour le tableau des clients CT et le tableau des stations ST. Le serveur 401 réachemine ensuite vers l'ordinateur personnel 400 le nom du fichier spécifié à partir de 408, exactement comme dans la procédure de démarrage à distance connue. Naturellement, le fichier spécifié correspond au système d'exploitation sélectionné. L'ordinateur personnel exécute ensuite ce fichier spécifié sur le serveur et le démarrage commence 409. Il existe une variante où ce fichier est téléchargé vers l'ordinateur personnel de façon à être exécuté directement. Conformément au mode de réalisation préféré, le tableau des station ST du serveur associe le type de station à l'adresse de l'ordinateur personnel. Le fait est que le même code binaire ne peut pas fonctionner sur des stations munies de processeurs différents. Ainsi, le serveur peut adapter le fichier spécifié à démarrer au type de station. Les paramètres caractérisant le type de station peuvent être par exemple les suivants # type de processeur, # mémoire disponible (pour charger le code correspondant), # type d'affichage (par exemple UGA, SVGA, XGA) et type de vidéo, # liste d'entrées / sorties. En outre, le tableau des clients CT du serveur associe les systèmes d'exploitation autorisés et éventuellement un mot de passe à l'identité de l'utilisateur. Dans ce cas, le serveur vérifie si le système d'exploitation sélectionné est autorisé, et éventuellement contrôle le mot de passe, avant de réacheminer le nom du fichier spécifié à partir duquel démarrer. La portée de la présente invention n'est en aucune façon limitée aux modes de réalisation détaillés ci-dessus. En particulier, tout moyen ou étape peut être remplacé par un moyen équivalent, ou des étapes équivalentes, respectivement. REVENDICATIONS 1. Procédé pour effectuer un démarrage à distance dans un système d'exploitation comprenant des étapes consistant à # diffuser une requête de démarrage sur un réseau, # recevoir en retour l'identification d'un serveur, # recevoir le nom d'un fichier de démarrage, ledit fichier de démarrage, une pluralité de systèmes d'exploitation et un fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés étant mémorisé dans ledit serveur, # télécharger ledit fichier de démarrage; avant de recevoir le nom dudit fichier de démarrage, ledit procédé comprend en outre des étapes consistant à # recevoir et exécuter ledit fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés, et # réacheminer l'identification du système d'exploitation sélectionné. 2. Procédé selon la revendication 1 utilisé dans un ordinateur personnel, comprenant en outre une étape pour spécifier le type de station dudit ordinateur personnel avant de recevoir ledit fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés. 3. Procédé selon la revendication 1 commandé par un utilisateur, comprenant en outre une étape pour spécifier l'identité dudit utilisateur avant de recevoir ledit fichier de démarrage. 4. Procédé selon la revendication 3, comprenant en outre une étape pour spécifier un mot de passe avant de recevoir ledit fichier de démarrage. 5. Procédé pour procurer à un ordinateur personnel un système d'exploitation, comprenant des étapes consistant à # recevoir une requête de démarrage à partir d'un réseau, # réacheminer en retour une identification audit ordinateur personnel; avant de réacheminer le nom dudit fichier de démarrage, ledit procédé comprend en outre des étapes consistant à # réacheminer un fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés pour demander lequel parmi ces systèmes d'exploitation doit être sélectionné, et # recevoir l'identification du système d'exploitation sélectionné. 6. Procédé selon la revendication 5, dans lequel ladite requête de démarrage provenant d'un ordinateur personnel, le procédé comprend en outre une étape pour recevoir le type de station dudit ordinateur personnel, avant de réacheminer ledit fichier comprenant la liste des systèmes d'exploitation pouvant être sélectionnés conformément audit type de station. 7. Procédé selon la revendication 5, dans lequel ladite requête de démarrage provenant d'un utilisateur, il comprend en outre une étape pour recevoir et vérifier l'identité dudit utilisateur avant de réacheminer le nom dudit fichier de démarrage. 8. Procédé selon la revendication 7, comprenant en outre une étape pour recevoir et vérifier un mot de passe avant de réacheminer le nom dudit fichier de démarrage. 9. Ordinateur personnel comprenant un moyen pour mettre à exécution les étapes du procédé selon l'une quelconque des revendications 1 à 4. 10. Ordinateur personnel selon la revendication 9, comprenant un analyseur de requête (RD2). 11. Serveur comprenant un moyen pour mettre à exécution les étapes du procédé selon l'une quelconque des revendications 5 à 8. 12. Serveur selon la revendication 11 comprenant un analyseur de requête (RDl). 13. Serveur comprenant un moyen pour mettre à exécution les étapes du procédé selon l'une quelconque des revendications 6 à 8, comprenant en outre un tableau des stations (ST) pour associer ledit type de station audit fichier d'entrée en communication. 14. Serveur comprenant un moyen pour mettre à exécution les étapes du procédé selon la revendication 7, comprenant en outre un tableau des clients (CT) pour associer ledit type d'identification de l'utilisateur audit fichier de démarrage. 15. Serveur selon la revendication 14, ledit procédé comprenant en outre une étape pour recevoir et vérifier un mot de passe avant de réacheminer le nom dudit fichier de démarrage, dans lequel ledit tableau des clients (CT) associe également ledit mot de passe audit fichier de démarrage.