Amorce (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Boot (homonymie).

Le boot (ou bootstrap), l’amorce[1], ou encore l’amorçage, est la procédure de démarrage d’un ordinateur, qui comporte notamment le chargement du programme initial.

On distingue :

  • le « démarrage à froid » (cold boot), obtenu en allumant la machine, ou en l’éteignant puis en la rallumant ;
  • du « démarrage à chaud » (warm boot), ou « re-boot », obtenu en rechargeant le programme initial ; il ne s’agit pas d’un redémarrage au sens strict (coupure puis remise de l’alimentation électrique) ; l’option est présente au niveau du système d’exploitation.

Termes utilisés[modifier | modifier le code]

Le terme « amorçage » est dérivé du verbe amorcer ; le terme « boot » est un apocope du mot anglais « bootstrap », nom qui désigne la languette des chaussures pour pouvoir les enfiler plus facilement (voir la section Historique).

L’origine du mot « boot » viendrait de la plaisanterie suivante : la gageure posée par le programme boot est de faire démarrer un ordinateur et lui faire charger un programme alors que, a priori, il ne possède encore aucun programme dans sa mémoire.

Quelqu’un a donc défini le nom bootstrap par analogie avec la plaisanterie suivante[citation nécessaire] :

« Comment faire pour traverser un lac sans se mouiller ?
Réponse : tirez suffisamment fort sur les languettes de vos bottes vers le haut pour marcher sur l’eau sans couler. »

Ce terme vient de l’expression, « to pull oneself up by one’s bootstrap », qui trouve son origine dans le livre de Erich Raspe publié en 1785 : Les aventures du Baron de Münchhausen. Au cours de l’une de ses innombrables aventures, le Baron se sauve par ses propres moyens de la noyade à laquelle il était promis en s’agrippant à ses lacets, se halant ainsi progressivement vers le bord.

Principe[modifier | modifier le code]

L’ordinateur exploite un programme réduit, le chargeur d'amorçage, permettant d’extraire un programme accessible via un périphérique de stockage permanent ou amovible. Ce dernier est typiquement le noyau du système d’exploitation, qui s’installera en RAM (la mémoire vive) et appellera lui-même des programmes applicatifs.

Sur PC, le BIOS se charge de lire le master boot record (ou MBR), d’une taille de 512 octets, à partir d'un espace de stockage (un disque dur, une disquette, un CD-ROM, une clé USB…) et le place en RAM à l'adresse 0x7C00 puis passe la main à ce code machine pour la suite.

Les machines totalement autonomes (calculatrices programmables, petits ordinateurs portatifs sans disques durs, PDA, machines de contrôle industriel…), disposent en général de programmes applicatifs écrits en permanence en ROM ou en mémoire flash. Dans ce cas, le boot peut consister à lancer directement l’initialisation du système d’exploitation.

Historique[modifier | modifier le code]

Initialement lorsque les micro-ordinateurs n’avaient pas encore de disque dur le boot nécessitait l’usage d’une disquette. Depuis leur désuétude d’autres médias peuvent être utilisés, comme un CD, un DVD, une clef USB, ou encore un accès réseau.

Les premiers ordinateurs ne possédant pas de ROM, les chargeurs d'amorçage étaient entrés de la façon suivante : le processeur était mis en état d’attente. Un opérateur positionnait un certain nombre de clés (interrupteurs) pour écrire en binaire le contenu de la première instruction. Puis, il déclenchait une opération électrique provoquant l’écriture dans la première case mémoire (en RAM). Ensuite, il repositionnait les clés pour l’écriture de la deuxième instruction, et ainsi de suite. Une fois le programme codé, le processeur était « lâché » et exécutait le code ainsi écrit qui lui permettait d’accéder aux périphériques, etc.


Séquence d'amorce standard[modifier | modifier le code]

Un démarrage standard de PC s’effectue normalement par les étapes suivantes.

Exécution du Power Good[modifier | modifier le code]

Le BIOS vérifie que la tension fournie par le transformateur est adéquate et stable. Dans le but d’éviter tout bris de la carte-mère ou du CPU. Si les paramètres de stabilité ne sont pas conformes aux besoins, il avortera le démarrage de l’ordinateur évitant ainsi de griller les circuits ou le(s) processeur(s).

Exécution du POST[modifier | modifier le code]

Article détaillé : Power-On Self-Test.

Le POST ou Power-on self test est effectué. Il y a une vérification de tous les composants matériels pour s'assurer qu’ils fonctionnent correctement.

Exécution des ROM d'extension des périphériques[modifier | modifier le code]

Une ROM d'extension est un exécutable embarqué pour des périphériques qui demandent une initialisation particulière (par ex. un contrôleur de bus qui doit énumérer ses périphériques, ou un contrôleur de stockage qui doit vérifier et initialiser une grappe RAID).

Pour les périphériques PCI/PCI express, l'adresse de la ROM d'extension associée au périphérique est stockée dans les registres de configuration du périphérique[2].

Le processus d'exécution d'une ROM d'extension est décrit ci-dessous pour un périphérique PCI [3]:

  1. Le BIOS copie la ROM d'extension dans une zone réservée de la mémoire vive (0xC0000 à 0xDFFFF[réf. souhaitée]).
  2. Le BIOS saute à l'adresse relative 0x03 de la ROM copiée pour l'exécuter.
  3. Une fois son travail terminé, la ROM d'extension rend la main au BIOS.

Affichage des configurations à l'écran[modifier | modifier le code]

Le BIOS envoie vers l’écran les informations qu’il est programmé pour afficher. Il s'agit habituellement de l’état du système et d'informations sommaires sur les périphériques amorcés, ainsi que d'instructions permettant de communiquer avec le BIOS lui-même (par exemple « press DEL to enter setup »). Le BIOS affiche également des informations matérielles comme le modèle du disque dur, la tension du processeur, la température de la carte-mère, ... Il sert aussi à paramétrer certains composants comme le processeur afin qu'il puisse accélérer sa fréquence.

Chargement du système d'exploitation[modifier | modifier le code]

Le BIOS lance la zone amorce (Master boot record ou MBR, équipant la quasi-totalité des PC, mais qui commence à être remplacée par la GPT), qui elle-même lance le chargeur d’amorçage (les plus utilisés étant NTLDR, LILO et GRUB), ce dernier lançant le système d’exploitation en usage sur l’ordinateur. Ce dernier prend le relais des opérations de gestion de mémoire de cache et autres.

Séquence d'amorce rapide (Fastboot)[modifier | modifier le code]

L'inconvénient majeur de l'architecture PC x86 est le temps que prend le BIOS à s'exécuter. De plus, le temps d'exécution dépend majoritairement de la configuration matérielle.

La procédure d'amorce rapide "fastboot" a été créée pour que l'architecture x86 soit plus adaptée à des systèmes embarqués où la configuration matérielle est prédéfinie et figée (pc industriels, tablettes, netbook, etc.)[4]

Sur ce type de systèmes, sont inutiles:

  1. Le support d'une configuration matérielle variable
  2. La recherche de périphérique et l'assignation d'interruptions
  3. La détection des fonctionnalités des processeurs et de la quantité de RAM

Le développeur peut également accélérer le processus d'amorçage:

  1. en démarrant depuis un périphérique de stockage linéaire (EEPROM ou mémoire flash).
  2. en déférer l'allocation de ressources

Fastboot peut s'appuyer sur des "mini-pilotes" qui permettent de communiquer avec des périphériques avant que le système soit totalement initialisé. Ainsi, il est possible d'initialiser un périphérique en un temps restreint.

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]