Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:install:refind-boot-uefi [04/09/2013 16:00] mytux [Le BIOS] |
doc:install:refind-boot-uefi [06/09/2013 18:59] MicP [EFI et UEFI] COMMAND.COM n'était pas un fichier caché |
||
---|---|---|---|
Ligne 15: | Ligne 15: | ||
=====Le BIOS===== | =====Le BIOS===== | ||
- | A l'aube de l'ère du premier PC en 1981, [[wp>IBM]] livrait son [[http://fr.wikipedia.org/wiki/IBM_PC|Personal Computer 5150]], avec un [[wp>firmware]] connu sous le nom de [[wp>BIOS]] (Basic Input/Output System ). \\ | + | A l'aube de l'ère du premier PC en 1981, IBM livrait son **P**ersonal **C**omputer 5150, avec un firmware connu sous le nom de BIOS (**B**asic **I**nput/**O**utput **S**ystem). |
- | Le BIOS était destiné à être une interface entre le matériel et le système d'exploitation [[wp>DOS]] (Disk Operating System) à l'époque. | + | |
- | Son rôle est d' initialiser tous les composants de la carte mère, identifier tous les périphériques internes et externes qui lui sont connectés, définir un ordre de priorité des périphériques d'entrée, démarrer le //bootloader// présent sur le premier périphérique disponible. | + | Le BIOS est l’interface logicielle entre le matériel et le logiciel à un niveau très basique. Il fournit le niveau d’interface le plus bas entre les pilotes de périphériques et le matériel. |
- | Le Bios est écrits en assembleur et contient une suites de routines d' interruption que le processeur exécute. | + | Les routines du BIOS sont inscrites dans une mémoire de type EEPROM (Electric Erasable Programmable Read-Only Memory) implantée sur la carte mère. Ce type de mémoire est donc re-programmable ce qui permet de ré-inscrire son contenu pour effectuer une mise à jour de ces routines ("Flashage" du BIOS). |
- | ==Power Good== | + | Une zone mémoire de type CMOS associée à un circuit d'horloge (RTC), est alimentée par une batterie de manière à pouvoir garder, quand le système est hors tension, les informations sur la configuration matérielle de la machine ainsi que l'heure et la date (RTC) qui sera utilisée par le système. Ces informations seront utilisées par le POST pour l'initialisation du matériel et sont aussi accessibles et modifiables par une interface dont le programme (BIOS Setup) est inscrit dans la mémoire BIOS. |
- | 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). | + | |
- | ==POST (Power On Self Test)== | + | Quand l’ ordinateur est mis sous tension, ou lors d’un //reset//, le signal (Power Good) est transmis au microprocesseur qui va alors lire et exécuter les instructions inscrites dans la mémoire BIOS. |
- | Lors de cette étape, le programme intégré à la carte-mère teste la présence des divers périphériques et tente de leur attribuer les ressources nécessaires à un fonctionnement sans conflit. | + | |
- | Au cours de la phase du POST, le programme du BIOS a déjà listé tous les périphériques de type "mémoire de masse" (disque, disquette, clef USB, carte SD, cdrom etc...) auxquels il pourrait avoir accès. | + | |
- | Il va maintenant essayer de "passer la main" aux programmes susceptibles d'être inscrits dans ces mémoires de masses. | + | |
+ | Le programme du BIOS effectue alors une séquence d'auto-test appelée le POST (**P**ower **O**n **S**elf **T**est) puis recherche, parmi les périphériques de mémoire de masse qui lui sont accessibles, ceux dont le premier secteur est un MBR. | ||
- | ==Bootsrap Loader== | + | Si, dans ce MBR, il ne trouve pas de routine d'amorçage, le programme du BIOS va alors lire le premier secteur de chaque partition pour y chercher un PBR (ou VBR). |
- | + | <note> | |
- | Pour cela, le //bootstrap loader// du BIOS lit le premier secteur du premier périphérique de type //mémoire de masse//, afin de savoir s'il s'agit d'un //secteur bootable//. | + | MBR (Master Boot Record) ou zone d'amorçage. D' une taille de 512 octets il contient dans ces 446 premiers octets une routine (un programme) d' amorçage destiné soit à démarrer le système d' exploitation sur la partition active, soit un chargeur de démarrage (bootloader). Les 6 derniers octets de ce bloc peuvent contenir une signature numérique optionnelle sur 4 octets et 2 octets nuls. Les 64 octets suivant contiennent la table des quatre partitions primaires. Le tout finit par une signature 0xAA55 sur 2 octets. |
- | Si ce premier secteur est marqué par le nombre //AA55h à l'offset 1FEh => 2 dernier octets du secteur//, il va en déduire qu'il s'agit certainement d'un secteur amorçable, et il va copier les instruction contenues dans le //bootstrap code area// de ce //MBR// en mémoire (0000h:7C00h) afin de pour pouvoir lancer l'exécution des instructions de ce //bootstrap code//. | + | PBR (Partiton Boot Record) aussi appellé VBR (Volume Boot Record) ou Partition Boot Sector, est le premier secteur de chaque partition primaire ou logique. Il peut contenir une routine de démarrage d'un système d'exploitation, un chargeur de démarrage, voire rien du tout si la partition n'a pas vocation à être bootée. Quand le BIOS ne contient pas de routine de boot, le BIOS tente de démarrer et d'exécuter la routine de boot inscrite dans le PBR de la partition marquée active. |
+ | </note> | ||
+ | =====EFI et UEFI===== | ||
- | Ces instructions sont inscrites dans le MBR par les chargeurs de démarrage. | + | J'utilise le terme EFI pour se référer à EFI 1.X et l'UEFI. |
+ | L'EFI (Extensible Firmware Interface) et sa variante plus récente [[wp>UEFI]] (Unified EXtensible Firmware Interface), sont des conceptions de firmwares destinés à remplacer le BIOS. | ||
- | =====EFI et UEFI===== | + | EFI, a été développé par Intel pour son nouveau processeur Intel-HP Itanium. |
- | + | ||
- | J'utilise le terme EFI pour se référer soit à EFI 1.X et l'UEFI. | + | |
- | L'EFI (Extensible Firmware Interface) et sa variante plus récente [[wp>UEFI]] (Unified EXtensible Firmware Interface), sont des conceptions de firmwares destinés à remplacer le BIOS. \\ | + | Les capacités de l'EFI sont bien plus grandes que celles du BIOS. |
- | EFI, a été développé par Intel pour son nouveau processeur //Itanium//. | + | |
- | Les capacités de l'EFI sont bien plus grandes que celles du BIOS, \\ | + | En effet un EFI peut lire une table de partitions et accéder aux systèmes de fichiers, il ne prend pas en charge le multitâche mais peut exécuter des applications en C/C++, pour les versions les plus récentes tel que l' UEFI, des applications graphiques avec prise en charge de la souris. |
- | En effet un EFI peut lire une table de partitions et accéder aux systèmes de fichier, il ne prend pas en charge le multitâche mais peut exécuter des applications en C/C++, pour les versions les plus récentes tel que l' UEFI, des applications graphiques avec prise en charge de la souris. | + | |
- | L'amorçage EFI est donc bien plus souple. \\ | + | A l'instar du bios qui utilisait les fichiers cachées //IBMIO.SYS, IBMDOS.SYS (ou IO.SYS, MSDOS.SYS)//. L'exécution du programme au standard UEFI lit le système de fichiers à la recherche d'exécutable UEFI. |
- | Contrairement au bios qui liste simplement les périphériques, l'EFI lit leur contenu à la recherche d'exécutable UEFI. | + | |
- | Cela permet à plusieurs chargeurs de démarrage de coexister sur un même disque dur et d'être accessibles tout en utilisant les mécanismes d'accès aux fichiers normaux. | + | Il est aussi possible de compiler un noyau Linux de sorte à se passer d'un chargeur de démarrage. |
+ | On pourra ensuite créer une entrée dans la NVRAM de notre carte mère à l'aide de **efibootmgr**, du **Shell EFI**, ou d'utiliser un boot manager comme **rEFIND**. | ||
- | Il est aussi possible de compiler un noyau Linux de sorte à le transformer en véritable applications UEFI. \\ | + | [[https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Linux_Kernel_EFISTUB|Voir EFI stub loader sur ArchWiki]] |
- | On pourra ensuite créer une entrée dans la NVRAM de notre carte mère à l'aide de **efibootmgr**, du **Shell EFI**, ou d'utiliser un boot manager comme **rEFIND**. [[https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Linux_Kernel_EFISTUB|Voir EFI stub loader sur ArchWiki]] | + | |
- | Une autre caractéristique de l'EFI est le [[http://fr.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Lancement_s.C3.A9curis.C3.A9_.28secure_boot.29|Secure Boot]]. \\ | + | Une autre caractéristique de l'EFI est le [[http://fr.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Lancement_s.C3.A9curis.C3.A9_.28secure_boot.29|Secure Boot]]. |
Cette fonctionnalité est destinée à améliorer la sécurité, en veillant à ce que seuls les chargeurs de démarrage signés avec une clé de chiffrement puissent s'exécuter. | Cette fonctionnalité est destinée à améliorer la sécurité, en veillant à ce que seuls les chargeurs de démarrage signés avec une clé de chiffrement puissent s'exécuter. | ||