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 [04/09/2013 19:48] mytux [Le BIOS] |
||
---|---|---|---|
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 Personal Computer 5150, avec un firmware connu sous le nom de BIOS ((Basic Input/Output System)). |
- | 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érielle et le logiciel à un niveau très basique. Il fournit le niveau d’interface le plus bas aux pilotes et périphériques. |
- | Le Bios est écrits en assembleur et contient une suites de routines d' interruption que le processeur exécute. | + | Le BIOS est présent sur une mémoire EEPROM((Electric Erasable Programmable Read-Only Memory)) de l’ordinateur. Quand l’ ordinateur est électriquement allumé, ou lors d’un //reset//, un signal ((Power Good))est envoyé au microprocesseur. Celui-ci déclenche alors l’exécution du BIOS. |
- | ==Power Good== | + | Le BIOS effectue un auto-test de l’ allumage (POST((Power On Self Test)) puis recherche les périphériques, notamment ceux utilisés pour démarrer. Les informations sur le matériel sont stockées de manière permanente dans une petite mémoire CMOS alimentée par une batterie. A la fin du processus, le périphérique de démarrage est sélectionné. |
- | 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)== | + | Le BIOS lit et exécute le premier secteur physique du média de démarrage. Il s’agit généralement des 512 premiers octets du premier disque dur (le MBR((Master Boot Record))) ou de la partition active (le PBR((Partition Boot Record))). |
- | 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. | + | |
+ | =====EFI et UEFI===== | ||
- | ==Bootsrap Loader== | + | J'utilise le terme EFI pour se référer à EFI 1.X et l'UEFI. |
- | + | ||
- | 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//. | + | |
- | 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//. | + | 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. |
- | + | ||
- | Ces instructions sont inscrites dans le MBR par les chargeurs de démarrage. | + | |
- | + | ||
- | + | ||
- | =====EFI et UEFI===== | + | |
- | J'utilise le terme EFI pour se référer soit à EFI 1.X et l'UEFI. | + | EFI, a été développé par Intel pour son nouveau processeur Intel-HP Itanium. |
- | 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 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. | 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) COMMAND.COM//. L'exécution du programme au standard UEFI lit leur contenu à 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. | ||