FR 2682786 A1 19930423 FR 9112837 A 19911017 TELECHARGEMENT D'UN SYSTEME D'EXPLOITATION PAR UN RESEAU. La présente invention concerne un procédé et un dispositif de téléchargement d'un système d'exploitation à travers un réseau Il est connu par la demande de brevet britannique 2 231 180 d'effectuer le chargement d'un premier calculateur relié à travers un réseau à un deuxième calculateur en chargeant un sous-ensemble du système d'exploitation dans la mémoire du premier calculateur le sous-ensemble comprenant les commandes permettant la copie de fichiers, la création d'un répertoire, le formatage du disque ainsi que le fonctionnement d'une connexion à travers le réseau pour ensuite utiliser ce premier sous- ensemble pour transférer du second calculateur l'ensemble des fichiers de système d'exploitation sur le disque du premier calculateur La méthode de cette demande de brevet, présente l'inconvénient de nécessiter un premier chargement dans la mémoire d'un sous- ensemble du système d'exploitation et ensuite la présence d'un périphérique20 magnétique tel qu'un disque dur ou un lecteur de disquette sur le premier calculateur dans lequel on va charger le système d'exploitation Ce type de procédure est incompatible notamment avec le téléchargement de terminaux qui doit s'effectuer dans un temps très court. Il est également connu par le brevet américain 4 958 278, une méthode de chargement de données ou de programmes dans une pluralité de terminaux Ces terminaux ne sont pas pourvus de lecteur de disque Dès qu'une requête de chargement est émise par une des stations qui vient d'être allumée, le serveur envoie la première trame, attend l'acquittement et dès réception de l'acquittement, envoie les trames suivantes Si un autre terminal émet une requête de chargement en cours d'émission des trames correspondant au chargement d'une première station, la deuxième station va prendre en compte les trames émises à destination de la première station, en notant dans une table le fait qu'il manque les premières trames reçues par la première station. Chaque station doit envoyer son acquittement après l'émission d'une trame Lorsque toutes les trames ont été émises à destination de la première station, les stations qui sont venues se connecter au réseau ultérieurement, reçoivent les premières trames qu'elles n'avaient pas pu prendre en compte du fait de leur connexion ultérieure. Dans cette méthode, c'est le serveur qui mémorise au moment de l'apparition d'une deuxième station sur le réseau le numéro de la première trame que cette station reçoit et qui en fin de chargement de la première station connectée envoie à l'autre station les trames qu'elles n'avaient pas pu recevoir Cette méthode oblige chaque station à émettre son acquittement, ce qui nécessite d'avoir des temps d'émission des acquittements différents pour chaque station de façon à éviter les collisions Ceci introduit un délai entre la fin d'émission d'une trame et l'émission de la trame suivante Ce délai doit soit être variable en fonction du nombre de station connectée, soit calculé pour correspondre à la configuration maximale. Toutefois ce dispositif et cette méthode ne permettent qu'un fonctionnement figé selon un programme de téléchargement déterminé effectuant le "chargement d'une application fixée une fois pour toute. Un but de l'invention est de proposer une méthode de chargement de terminaux pouvant ne pas comporter d'unité de disque ou de disquette et qui permette pour une architecture de terminaux standards fonctionnant selon le système d'exploitation standard des PC (MSDOS) de charger ultérieurement toutes les applications ou fichiers souhaitables. Ce but est atteint par le fait que le procédé de téléchargement par un serveur d'au moins un terminal comprenant, une mémoire volatile (RAM) au moins un processeur, une carte de télécommunication permettant la connexion au serveur par un réseau, le dit serveur étant pourvu de moyen de télécommunication et de moyen de mémorisation de capacité suffisante pour stocker le protocole de communication, le système d'exploitation des terminaux recopié dans un fichier image, son propre système d'exploitation et les programmes d'application est caractérisé en ce qu'il comporte une procédure de téléchargement d'un programme d'amorçage, consistant à transformer la première interruption produite par un terminal à la suite de sa mise sous tension en une demande de lecture d'un fichier image mémorisé sur le serveur. Selon une autre particularité, l'étape de téléchargement du programme d'amorçage consiste à charger dans la mémoire volatile RAM le secteur d'amorçage (BOOT) à lancer l'exécution de ce fichier d'amorçage, à transformer les interruptions de demande d'accès à des fichiers des périphériques magnétiques inexistants sur le terminal en demandes de lecture du fichier image correspondant sur le serveur par une procédure de transformation des coordonnées. Selon une autre particularité, la procédure de transformation des coordonnées consiste à transformer les coordonnées des secteurs physiques des fichiers des périphériques magnétiques en une numérotation logique de chapitre du fichier image correspondant au secteur du fichier appelé par une table de correspondance secteur, à transmettre vers le serveur la demande de lecture de chapitre à émettre vers l'ensemble des terminaux les chapitres des fichiers images. Selon une autre particularité, la mémoire volatile RAM du terminal contient après le premier téléchargement du programme d'amorçage, une table d'allocation des fichiers (FAT) établissant une correspondance entre le numéro de disquette, le numéro de tête, le numéro de piste, le numéro de secteur de piste et le nom du fichier ainsi qu'une table de description des secteurs (SDT) établissant une correspondance entre le numéro de disquette, le numéro de piste, le numéro de secteur de piste et le numéro de chapitre du fichier image du serveur. Selon une autre caractéristique, le programme de transformation des interruptions (EMUL INT) est mémorisé dans une mémoire non volatile (PROM) de la carte de télécommunication. Selon une autre caractéristique, le procédé permet le téléchargement des fichiers du système d'exploitation constitué par les fichiers IO SYS, MSDOS SYS CONFIG SYS et COMMAND COM. Selon une autre caractéristique la table d'allocation des fichiers (FAT) est mémorisée avec le status éternel (KEEP FOR EVER) dans la mémoire vive RAM, ce status étant indiqué par un bit du mot d'état de la carte de description des secteurs. Un autre but est de proposer un procédé -de téléchargement de plusieurs terminaux limitant le temps d'attente des terminaux. Ce but est atteint par le fait que lorsqu'un terminal émet une demande de premier chapitre à destination du serveur celui-ci attend un temps Tl avant de répondre pour s'assurer que d'autres terminaux ne vont pas avoir la même demande. Selon une autre caractéristique, une demande de premier chapitre par une autre station arrivant avant l'écoulement d'un temps T 2 suivant la demande du même premier chapitre par une première station est prise en compte immédiatement et la procédure de téléchargement de l'ensemble des stations ayant émis les demandes est reprise à zéro pour ces stations. Selon une autre particularité, le serveur ferme la session au bout d'un temps T 3 entre l'émission de chaque chapitre et un temps T 5 entre chaque émission de trame. Selon une autre particularité, le serveur émet une trame de fin de chargement lorsqu'un temps T 4 après l'émission d'une trame de fin de chapitre, sans qu'aucune autre station n'ait émis une requête. Selon une autre particularité, les temps Tl à T 5 sont paramétrables. Un autre but de l'invention est de proposer un procédé de téléchargement qui Après la fin du téléchargement d'un premier ensemble de système d'exploitation puisse également télécharger des applications diverses, soit sur requête du terminal, soit sur envoi multi-destinataires (Multicast). Ce but est atteint par le fait que le procédé comporte une étape d'envoi de trames de données >spécifiques aux chapitres qui incluent l'adresse Ethernet de la station réceptrice. Un autre but est de permettre l'accès au fichier chargé sur le terminal et pour les fichiers inexistants leur téléchargement. Ce but est atteint par le fait que le terminal lors de l'exécution d'une instruction d'ouverture de fichier, lit la table d'allocation des fichiers; détermine ainsi le secteur puis lit la table de description des secteurs pour déterminer le chapitre à rechercher, exécute le chapitre si le chapitre réside dans la RAM exécutée; émet une requête de téléchargement à destination du serveur, si le chapitre est absent. Selon une autre particularité, la table de description des secteurs comprend un octet d'état indiquant par un bit la réception du chapitre, par un autre bit son utilisation, par un troisième bit le statut "à conserver toujours", par un quatrième bit le numéro du segment, par un cinquième bit la présence d'une valeur de remplissage et par un sixième bit un secteur spécifique de donnée. Selon une autre particularité le terminal comporte un registre d'état de la fonction d'interruption émulée permettant dans le cas de la réception d'une trame de fin de téléchargement de déterminer par lecture des registres DL et AL du microprocesseur ( 213) du terminal s'il faut effectuer une fonction de "chargement de segment de donnée" ou une fonction de clôture ("Shutdown"). D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description ci-après faite en référence aux dessins annexés dans lesquels: La Figure 1 est une vue schématique de l'ensemble du réseau permettant la mise en oeuvre du procédé de téléchargement; La Figure 2 est une représentation schématique du diagramme temporel des échanges entre le serveur et une ou plusieurs stations; La Figure 3 est une vue schématique représentant l'état du réseau après chargement du système d'exploitation. Les Figures 4 A à 4 C représentent la constitution des différentes trames utilisées dans la procédure de téléchargement. La Figure 1 représente un serveur ( 1) relié par une carte de télécommunication ( 10) à un réseau Ethernet ( 3) et à travers ce réseau Ethernet ( 3) à au moins un premier (ST 1) et deuxième (ST 2) terminal Chaque terminal ST 1 ( 21), ST 2 ( 22) est constitué de manière identique par une carte de communication avec le réseau Ethernet ( 211) sur laquelle figure un processeur ( 2110) et une PROM de gestion du boîtier processeur ( 2110) Cette PROM ( 2110) outre le programme de gestion du boîtier comporte soit un programme d'établissement de connexion multi-destinataires UDP avec le serveur, soit un programme d'établissement de connexion uni-destinataire (IP) avec le serveur La PROM contient également un programme d'émulation de l'interruption 13 et de l'interruption 19 La carte 211 communiquée a le bus du terminal Le terminal quant à lui comporte un microprocesseur ( 213) et une mémoire vive RAM d'au moins 1 Méga-octet de capacité reliée au microprocesseur par le bus Le microprocesseur ( 213) communique par le bus avec la carte de télécommunication ( 211) et le programme d'initialisation contenu dans la mémoire morte (ROM) de la station permet lors d'une réinitialisation de générer une interruption ( 19) qui se trouve émulée par le programme stocké dans la mémoire PROM ( 2110) Cette émulation permet d'établir à l'aide des programmes UDP ou IP une connexion avec le serveur La mémoire ( 2110) contient également un protocole de téléchargement PROTCHG et un driver NDIS Dès la mise sous tension de la station, le programme d'émulation de l'interruption (IT 19) provoque l'envoi d'une trame à destination du serveur par le protocole de communication UDP ou IP et le protocole de téléchargement du serveur TCHG répond à cette trame en renvoyant les tables d'allocation de fichiers (FAT)et les tables de description des secteurs (SDT) qui sont stockées dans le cache disquette CD de la mémoire vive RAM ( 212) Après ce transfert et après que le serveur ait envoyé un programme BOOT d'initialisation de la station, celle-ci exécute ce programme, et dès qu'elle rencontre une demande de lecture de fichier inexistant dans sa mémoire vive, génère une interruption (IT 13) de demande d'accès aux périphériques magnétiques qui sont inexistants sur la station Cette demande d'accès aux périphériques magnétiques (INT 13) provoque l'exécution d'un programme d'émulation qui provoque l'établissement d'une liaison avec le serveur ( 1) en demandant à ce dernier d'émettre un chapitre correspondant au nom du fichier dont l'ouverture a été demandée La table d'allocation des fichiers (FAT) permet d'établir une correspondance entre le nom du fichier et le numéro de disquette, le numéro de tête, le numéro de piste et le numéro de secteur de piste o se trouverait le fichier sur une station disposant d'une disquette ou d'un disque et la table (SDT) permet d'établir une correspondance entre le numéro de secteur et le numéro de chapitre à demander au serveur Suite à cette requête, le programme administrateur du serveur (ADM) prépare dans un fichier image (IMA) le chapitre demandé par la station Sur la Figure 1, le fichier image comporte les fichiers du système d'exploitation MS-DOS qui sont constitués par les fichiers IO SYS, MS-DOS SYS, CONFIG SYS, COMMAND COM A chaque exécution du système d'exploitation MS-DOS, la station va demander l'ouverture des fichiers nécessaires à son fonctionnement, et cette ouverture de fichier va provoquer une requête de chapitre jusqu'à ce que l'ensemble des fichiers nécessaires au fonctionnement du système aient été chargés pour permettre un fonctionnement normal du terminal A ce moment là, la configuration du système, en supposant que seul le terminal ST 1 est en fonctionnement, correspond à celle représentée à la figure 3 dans laquelle on constate que la mémoire volatile ( 212) a été chargée avec les programmes IO SYS, MS-DOS SYS, CONFIG SYS, COMMAND COM, NETFLOP DOS, ce dernier programme ayant pour intérêt de prendre en main la gestion de la carte de communication de façon à permettre éventuellement des téléchargements ultérieurs sur des requêtes spécifiques de secteur ou de chapitre Le protocole de téléchargement mis en oeuvre est représenté plus en détail à la figure 2, dans lequel on voit que la station ( 1) émet une requête d'initialisation (BD) à laquelle le serveur répond par un message "BOOT REPLY"I (BR) Suite à cette réponse la station émet la demande de chapitre en l'occurrence du premier chapitre, en envoyant une trame "start chapitre 1 " (S Cl) à laquelle le serveur répond par la demande (ARPD) d'adresse sur le réseau Ethernet dans le cas d'une communication multidestinataires et la station fournit cette information par la réponse (ARPR) Suite à cette réponse, le serveur émet une trame (SDT Cl) table de description du secteur du chapitre 1, puis au bout d'un temps T 5 émet les données du chapitre 1 (DC 1) qui peuvent être envoyées en plusieurs trames avec toujours un intervalle de temps T 5 entre chaque trame Le serveur attend un temps Tl entre le message "start chapitre 1 " (SC 1) demandant de commencer le téléchargement et le message de réponse demandant l'adresse Cet intervalle de temps permet à d'autres stations, dont la mise en route se produirait concomitamment, d'émettre également leurs messages "start chapitre 1 " (SC 1), de la faire prendre en compte immédiatement par le serveur A la fin de l'émission du chapitre 1, la station émet si elle constate une erreur un message SDTE d'erreur sur une partie du chapitre 1, et dans ce cas le serveur renvoie la trame SDT du chapitre 1 (SDTC 1) et les données spécifiques à ce chapitre (SDC 1) qui n'ont pas été reçues A la fin le serveur envoie une trame de fin de chapitre 1 "end chapter 1 " (EC 1) et la station exécute ce chapitre 1 reçu, pour au cours de l'exécution découvrir que le fichier correspondant au chapitre reçu nécessite l'appel à un autre fichier Ceci déclenche une demande d'un autre chapitre N par une trame S Cn "start chapter n" Lorsqu'elle reçoit cette demande, le serveur attend un temps T 3 avant de renvoyer la trame SDT Cn constituant la table de description du secteur du chapitre n et la trame D Cn des données de ce chapitre Comme précédemment si la station émet une trame d'erreur sur le chapitre N (SDTE Cn), le serveur va renvoyer la trame de la table de description du secteur du chapitre (SDT Cn) et les données spécifiques à ce chapitre SD Cn qui ont été mal reçues Lorsque la station reçoit la trame fin de chapitre (E Cn),le chapitre reçu est exécuté et en cas d'erreur sur les données, une trame d'erreur de données chapitre n (DE Cn) est émise pour obtenir de la part du serveur l'émission d'une trame de données de chapitre N (D Cn) A nouveau l'émission se termine par une trame fin de chapitre n (Cn) Le serveur attend ensuite un temps T 4 pendant lequel, s'il ne reçoit aucune requête complémentaire, il émet une trame "end remote boots (ERB) fin du chargement à distance Dans le cas o le serveur est relié à plusieurs stations et lorsqu' une deuxième station 2 ST 2 émet une demande d'un premier chapitre SC 1 en se connectant au réseau pendant un intervalle de temps T 2 suivant la connexion d'une première station, la requête de cette deuxième station est immédiatement prise en compte en annulant la procédure de téléchargement de la première station et en recommençant la procédure à zéro pour l'ensemble des deux stations Cette procédure permet d'éviter d'avoir à attendre la fin du téléchargement d'uhe station 1 pour télécharger une station 2 ou également d'éviter d'avoir au niveau du serveur une mémoire gérant les chapitres qui n'ont pas été reçu pour demander en fin de téléchargement les chapitres restant à recevoir, comme dans le cas du brevet US 4 958 278. Chaque trame émise au cours de la séquence de téléchargement représentée à la figure 2 a une35 configuration spécifique correspondant à celle représentée aux figures 4 A à 4 C Ainsi, la trame "start chapitre" (SC) permet par ces deux premiers octets, d'indiquer le type de il trame et de faire savoir au serveur qu'il s'agit d'une trame "start chapitre", demandant l'émission d'un chapitre, par les douze octets suivants de définir le nom du volume dans lequel se trouve le chapitre à envoyer et par les deux octets suivants de définir l'identifieur c'est à dire le numéro du chapitre en code ASCII et par les 2 mots suivants de définir l'adresse "Ethernet" (IP Station) de la station. Dans la suite, les informations identiques et de même format se trouvant dans les autres trames ne seront pas redécrites. La trame SDTC table de description du secteur du chapitre contient en plus des informations: type de trames, nom du volume, identifieur, l'information définissant le masque de la trame formée sur 1 octet et indiquant par les bits Ai le nombre de trame appartenant à cette formation SDTC Un octet supplémentaire définit le masque maximum de la trame en mettant tout les bits à " 1 ", les deux octets suivants définissent le premier segment de données, les deux autres octets suivants le deuxième segment de données, s'il existe Deux octets supplémentaires définissent le décalage o les cartes suivantes de la table de description de secteur sera implantée et deux octets supplémentaires définissent le nombre de cartes suivantes Les cartes sont définies sur 8 octets chacune et comportent comme représenté par la carte SDC sur deux octets le numéro du secteur, sur deux autres octets le pseudonyme du secteur, sur les deux octets suivants le décalage dans le cache disquette, sur un octet la valeur de remplissage et sur un autre octet l'état de la carte défini par le bit 7 à 'l", la valeur logique pour indiquer que le secteur a été reçu, le bit 6 à " 1 ", pour indiquer que le secteur a été utilisé, le bit 5 à " 1 "l pour indiquer que le secteur est à conserver en permanence, le bit 4 à " 1 " pour indiquer le numéro du segment, le bit 3 à " 1 "I pour indiquer une valeur de remplissage, le bit O à " 1 " pour indiquer des données spécifiques au secteur. La trame SDT Erreur (SDTE) est constituée comme les trames suivantes des informations concernant le type de la trame, le nom du volume, l'identifieur, l'adresse "Ethernet" de la station et le masque de la trame SDTC La trame chapitre de données spécifiques (SDC) comporte également les informations, type de trame, nom de volume, identifieur, décalage de la première carte, décalage de la dixième carte, une adresse Ethernet sur 6 octets définissant l'adresse de la station et les données à envoyer sur 512 à 1024 octets. La trame erreur de données (DE) comporte en plus du type de trame, du nom du volume, de l'identifieur, une information sur 2 octets indiquant le nombre de secteur manquant et sur 2 autres octets pour chaque secteur manquant, le numéro du secteur manquant. La trame EC fin de chapitre et la trame fin d'initialisation "End remote boot" (ERB) comportent le type de trame, le nom du volume. La trame SSD demande de secteur spécifique comporte outre le type de trame, le nom du volume, l'identifieur, le numéro du secteur spécifique demandé sur 2 octets. La trame SSR comporte en plus des informations précédentes les données sur 512 octets. Le programme d'émulation de l'interruption 13 va par le biais du registre d'état des fonctions émulées, modifier les informations contenues dans les registres du processeur ( 213) de la station selon le tableau indiqué ci-dessous: remet à zéro le flag "carry" (NY) 0 reset 1 disk_status prélève le status disquette (fonction "read") et reset carry (NY) 2 read voir description ci-dessous 3 write code retour "write protect" et carry en erreur (CY) 4 verify reset carry (NY) format set carry en erreur (CY) 8 parametres prélève les paramètres disquette et reset carry (NY) d special spéciales téléchargement (voir "Status du TCHG Après réception de "end_remote_boot" avec Netflop") Avec les registres DL= 0, AL= O il s'agit de la fonction "change Data Segment" entre la PROM et Netflop Avec les registres DL= 0, AL= 1, il s'agit de la fonction "shutdown" de la PROM read_dasd code retour "changeline avail " et reset carry (NY) 16 change_line code retour "non actif" et reset carry (NY) 17 set_dasd code retour OK et reset carry (NY) 18 set_media code retour "write protect" et carry en erreur (CY) Tous les autres codes fonction retourne un code retour 01 Ainsi on peut constater que dans le cas de la fonction spéciale représentée par le code compris entre 9 et 15, les registres DL et AL du microprocesseur seront à charger avec des valeurs logiques qui indiqueront soit un changement de segment de données, soit la fonction fermeture "shutdown" de la PROM Les autres fonctions émulées permettent la modification des bits (CY) et (NY) du registre d'état du microprocesseur. Lorsque le fichier CONFIG SYS représenté à la Fig. 3 contenant les fichiers PROTMAN DOS, ELNKII DOS, NEMM DOS et TCPDRV DOS assurant respectivement les fonctions de gestion du protocole, de driver de carte, de gestion mémoire et de partie résidante du programme de communication ont été chargées et que l'ensemble du système d'exploitation ainsi que le programme NETBIND EXE ont été chargé, le serveur émet une trame de fin d'utilisation "end remote boot" (ERB) par laquelle il indique à la PROM que l'ensemble des programmes ont été chargé et le protocole de téléchargement contenu dans la mémoire PROM termine ce téléchargement par plusieurs actions qui consistent à lancer l'exécution du programme NETBIND qui utilise le programme ELNKII DOS pour accéder au réseau, ce programme NETBIND lance l'exécution de NETFLOP qui permet de charger le segment de donnée et récupère le contexte de la cession gérée par la PROM NETFLOP effectue également un arrêt normal de la PROM (Shutdown) avec reset de la carte réseau et restauration du vecteur IRQ 5 sur l'ancien vecteur BIOS et une désinstallation du gestionnaire des temporisations programmables du processus de téléchargement Cet arrêt provoque le basculement de la gestion des interruptions et en particulier de l'interruption 13 de la PROM vers le programme NETFLOP Cette nouvelle gestion-permet d'avoir un comportement paramétrable différent de celui figé de la PROM La gestion de l'INT 13 par la PROM est valide tant que l'arrêt n'est pas effectué (Shutdown) Apres l'arrêt l'interruption 13 de la PROM appelle soit le vecteur interruption 13 de NETFLOP, soit l'ancien vecteur BIOS Cet arrêt s'effectue par l'exécution de la séquence suivante écrite pour un microprocesseur ( 213) du type INTEL 386 ou 482 et la transposition à d'autres microprocesseurs est à la portée de l'homme de métier. Floppy proc near push ds envoi dans la pile du registre data segment ds push ax envoi dans la pile des "registres AH et Al constituant ax xor ax,ax ou exclusif sur ax mov ds,ax déplacement de ax -> ds mov ax,word ptr ds:l 4 a 2 hl déplacement du contenu de l'adresse déterminé par le contenu de ds + 4 a 2 h dans ax mov ds,ax déplacement de ax dans ds cmp di,0 comparaison du registre di avec la valeur 0 pop ax extraction du registre ax jne not_ours si di pas égal ZF= O saut à l'étiquette not ours cmp ah,19 h comparaison de 19 h avec la partie haute de ax jae notours saut à "not ours" si ah au- dessus de 19 h => CP= O test bootstate, SHUTDOWN jnz another__story saut à "another story" si pas égal à O => ZF = 0 (si boot-state = SHUTDOWN) push es envoi dans la pile du registre es pusha sauvegarde des 8 registres généraux dans la pile mov bp,sp déplacement de SP -> BP mov si,ax déplacement de AX -> SI shr si,8 shift logical right de 8; get rid of AL shl si,1 décalage à gauche de 1; call cs:Dispatchlsil appel du contenu de Dispatch indexé par si call store_status appel routine store-status popa extraction des 8 registres généraux de la pile pop es extraction du registre es pop ds extraction du registre du data segment iret not_ours: pushf call pop retf another_story pushf call pop retf return form interrupt envoi des drapeaux dans la pile dword ptr save_ 13;ancien vecteur (BIOS) ds extraction data segment 2;because of carry flag dword ptr newit_ 13; vecteur de Netflop ds 2; because of carry flag floppy endp La gestion de l'INT 13 par NETFLOP fait appel à des paramètres "KEEP FLOPPY" et "KEEP CACHE" déclarés dans un fichier PROTOCOL INI qui en fonction de leurs états provoquent le fonctionnement suivant: KEEPCACHE = YES KEEPFLOPPY = YES INIT 13 h Cherche le secteur dans le cache disquette Si le secteur ne s'y trouve plus ou pas, une requête "specific sector" est générée vers le serveur TCHG. Celui-ci accède directement à la disquette (celle dont la FAT et directory principale ont été envoyés à la station doit être impérativement insérée dans le lecteur du serveur) et répond à la station par une trame "specific sector reply" (SSR) adressée en multicast Ethernet mais comportant dans la partie protocole du TCHG, l'adresse IP de la station destinataire Les stations filtrent ce champ sur réception d'une telle trame. Ainsi, une mini gestion de fichier reste disponible pour la station, Après la fin de téléchargement. KEEPCACHE KEEPFLOPPY = YES = NO INIT 13 h Cherche le secteur dans le cache disquette Si lesecteur ne s'y trouve plus ou pas, un code retour "Secteur inaccessible en lecture" est rendu au système.5 Le cache reste actif en mémoire. KEEPCACHE = NO KEEPFLOPPY = YES INIT 13 h Une requête "specific sector" est générée vers le serveur TCHG Celui-ci accède directement à la disquette (celle dont la FAT et directory principale ont été envoyés à la station doit être impérativement insérée dans le lecteur du serveur) et répond à la station par une trame "specific sector reply" adressée en mulicast Ethernet mais comportant dans la partie protocole du TCHG, l'adresse IP de la station destinataire Les stations filtrent ce champ sur réception d'une telle trame. Ainsi, une mini gestion de fichier reste disponible pour la station, Après la fin de téléchargement (voir performances, contraintes lié au changement de disquette). Le cache est inactif, libérant ainsi la mémoire pour les applications. KEEPCACHE = NO KEEPFLOPPY = NO INIT 13 h Un code retour "secteur inaccessible en lecture" est rendu au système. Le cache est inactif, libérant ainsi la mémoire pour les applications. Le paramètre "KEEPCACHE=YES" suppose que la plage mémoire utilisée par le CACHE ne risque pas de rentrer en conflit avec une application DOS. Exemple: Si le choix du segment CACHE est 7000 H, une application utilisant ce segment écrasera les données du sache, entraînant un risque très important de blocage du système. Par contre, les segments ODOO Oh restent disponibles pour le cache, à quelqu'instant que ce soit (en dehors de toute utilisation de gestionnaires de mémoire paginée (EMS) utilisant bien sûr cette même plage mémoire). Note: les segments OD 00 Oh et/ou OE 00 Oh, s'ils sont utilisés, ne sont par libérés Après la réception de "end remote_boot", c'est à dire précisément, que: sur réception de la SDT du chapitre 1, Apres reconnaissance des segments de travail OD 00 Oh et/ou OE 00 Oh, ces mêmes segments sont validés. sur réception de "end_ remote_boot", ces segments ne sont pas dévalidés. D'autres modifications, à la portée de l'homme de métier font également partie de l'esprit de l'invention. REVEND ICAT IONS 1 Procédé de téléchargement par un serveur d'au moins un terminal comprenant, une mémoire volatile (RAM) au moins un processeur, une carte de télécommunication permettant la connexion au serveur par un réseau, le dit serveur étant pourvu de moyen de télécommunication et de moyen de mémorisation de capacité suffisante pour stocker le protocole de communication, le système d'exploitation des terminaux recopié dans un fichier image, son propre système d'exploitation et les programmes d'application caractérisé en ce qu'il comporte une procédure de téléchargement d'un programme d'amorçage, consistant à transformer la première interruption produite par un terminal à la suite de sa mise sous tension en une demande de lecture d'un fichier image mémorisé sur le serveur. 2 Procédé selon la revendication 1 caractérisé en ce que l'étape de téléchargement du programme d'amorçage consiste à charger dans la mémoire volatile RAM le secteur d'amorçage (BOOT) à lancer l'exécution de ce fichier d'amorçage, à transformer les interruptions de demande d'accès à des fichiers des périphériques magnétiques inexistants sur le terminal en demandes de lecture du fichier image correspondant sur le serveur par une procédure de transformation des coordonnées. 3 Procédé selon la revendication 2 caractérisé en ce que la procédure de transformation des coordonnées consiste à transformer les coordonnées des secteurs physiques des fichiers des périphériques magnétiques en une numérotation logique de chapitre du fichier image correspondant au secteur du fichier appelé par une table de correspondance secteur, à transmettre vers le serveur la demande de lecture de chapitre à émettre vers l'ensemble des terminaux les chapitres des fichiers images. 4 Procédé selon une des revendications 1 à 3 caractérisé en ce que la mémoire volatile RAM du terminal contient Après le premier téléchargement du programme d'amorçage, une table d'allocation des fichiers (FAT) établissant une correspondance entre le numéro de disquette, le numéro de tête, le numéro de piste, le numéro de secteur de piste et le nom du fichier ainsi qu'une table de description des secteurs (SDT) établissant une correspondance entre le numéro de disquette, le numéro de piste, le numéro de secteur de piste et le numéro de chapitre du fichier image du serveur. Procédé selon la revendication 2 caractérisé en ce que le programme de transformation des interruptions (EMUL INT) est mémorisé dans une mémoire non volatile (PROM) de la carte de télécommunication. 6 Procédé selon une des revendications précédentes caractérisé en ce qu'il permet le téléchargement des fichiers du système d'exploitation constitué par les fichiers IO SYS, MSDOS SYS CONFIG SYS et COMMAND COM. 7 Procédé selon la revendication 4 caractérisé en ce que la table d'allocation des fichiers (FAT) est mémorisée avec le status éternel (KEEP FOR EVER) dans la mémoire vive RAM, ce status étant indiqué par un bit du mot d'état de la carte de description des secteurs. 8 Procédé selon une des revendications précédentes caractérisé en ce que lorsqu'un terminal émet une demande de premier chapitre à destination du serveur celui-ci attend un temps Tl avant de répondre pour s'assurer que d'autres terminaux ne vont pas avoir la même demande. 9 Procédé selon une des revendications précédentes caractérisé en ce qu'une demande de premier chapitre par une autre station arrivant avant l'écoulement d'un temps T 2 suivant la demande du même premier chapitre par une première station est prise en compte immédiatement et la procédure de téléchargement de l'ensemble des stations ayant émis les demandes est reprise à zéro pour ces stations. Procédé selon une des revendications précédentes caractérisé en ce que le serveur attend un temps T 3 entre l'émission de chaque chapitre et un temps T 5 entre chaque émission de trame. 11 Procédé selon une des revendications précédentes caractérisé en ce que le serveur ferme la session au bout d'un temps T 4 Après l'émission d'une trame de fin de chapitre, sans qu'aucune autre station n'ait émis une requête. 12 Procédé selon une des revendications précédentes caractérisé en ce que les temps Tl à T 5 sont paramétrables. 13 Procédé selon une des revendications 1 à 7 caractérisé en ce qu'il comporte une étape d'envoi de trames de données spécifiques aux chapitres qui incluent l'adresse Ethernet de la station réceptrice. 14 Procédé selon une des revendications précédentes caractérisé en ce que le terminal lors de l'éxécution d'une instruction d'ouverture de fichier, lit la table d'allocation des fichiers; détermine ainsi le secteur puis lit la table de description des secteurs pour déterminer le chapitre à rechercher, exécute le chapitre, si le chapitre réside dans la RAM exécutée; émet une requête de téléchargement à destination du serveur, si le chapitre est absent. Procédé selon la revendication 14 caractérisé en ce que la table de description des secteurs comprend un octet d'état indiquant par un bit la réception du chapitre, par un autre bit son utilisation, par un troisième bit le statut "a conserver toujours", par un quatrième bit le numéro du segment, par un cinquième bit la présence d'une valeur de remplissage et par un sixième bit un secteur spécifique de donnée. 16 Procédé selon une des revendications précédentes caractérisé en ce que le terminal comporte un registre d'état de la fonction d'interruption émulée permettant dans le cas de la réception d'une trame de fin de téléchargement de déterminer par lecture des registres DL et AL du microprocesseur ( 213) du terminal s'il faut effectuer une fonction de "chargement de segment de donnée" ou une fonction de clôture ("Shutdown").