# Chargeur d'amorçage

Un chargeur d'amorçage (ou bootloader) est un logiciel permettant de lancer un ou plusieurs systèmes d'exploitation (multiboot), c'est-à-dire qu'il permet d'utiliser plusieurs systèmes, à des moments différents, sur la même machine. Il est généralement lancé immédiatement après le démarrage de l'appareil, puis recherche dans le firmware de l'ordinateur des informations sur l'emplacement du bootloader. Ce processus est communément appelé « amorçage ».

## Architecture PC
### Micrologiciel BIOS

Dans le cas le plus simple, il n'y a qu'une seule partition du disque de boot : le micrologiciel BIOS charge les 512 premiers octets de ce disque, ces 512 octets constituant le MBR (master boot record ou zone d'amorçage). À partir des informations du MBR, il détermine l'emplacement du chargeur d'amorçage.
Si le disque de boot a plusieurs partitions, le micrologiciel BIOS lit le MBR du disque, puis le VBR de la partition (Volume Boot Record). À partir de ces informations, il peut déterminer l'emplacement du chargeur d'amorçage et le lancer.
Si le support de boot est une disquette, c'est le VBR de cette disquette qui est utilisé pour déterminer l'emplacement du chargeur d'amorçage.
Pour le format El-Torito de CD-ROM amorçable, voir El Torito.

### Micrologiciel UEFI à la place du BIOS

Sur certains PC actuels, c'est le micrologiciel UEFI (et non pas le BIOS) qui est utilisé pour lancer le chargeur d'amorçage : l'UEFI lit la GPT du disque pour déterminer l'emplacement de la routine d'amorçage.
Sur une carte mère UEFI le mode BIOS est souvent appelé CSM (Compatibility Support Module) mode, il permet de la rendre compatible avec des systèmes d'exploitation anciens tels que Windows XP ou DOS.

### Liste de chargeurs d'amorçage sur PC

Les chargeurs d'amorçage les plus courants sont :
* Open source :
** AiR-Boot (gestionnaire de boot installé uniquement dans le Master Boot Record) (sous licence GPLv3)
** AKeL boot loader (sous licence GPLv2)
** BURG (Brand-new Universal loadeR from GRUB) qui est basé sur GRUB mais qui ajoute une interface graphique.
** Gestor de Arranque Gráfico (gestionnaire de boot installé uniquement dans le Master Boot Record) (sous licence GPL)
** GRUB (GRand Unified Bootloader) (sous licence GNU)
** Gujin (sous licence GPL)
** LILO (Linux loader) pour le BIOS et elilo pour EFI
** Plop peu connu mais très utile car capable de booter sur une clé usb à partir d'un CD
** rEFIt (en) BootLoader graphique gérant uniquement l'EFI (sous licence BSD)
** rEFInd Boot Manager graphique, fork actif de rEFIt
** Syslinux, une suite de chargeurs d'amorçage de faible taille pour Linux, comprenant notamment:
*** IsoLinux pour CD ou DVD ISO 9660
*** PXELinux pour démarrer sur réseau
** Xosl (sous licence GPL)
* Société Microsoft :
** Pour les systèmes d'exploitation Windows XP et antérieurs : NTLDR (NT LoaDeR ou Chargeur d'amorçage de Windows NT) avec le BIOS. Sa configuration est stockée dans le fichier boot.ini.
** Pour les systèmes d'exploitation Windows Vista et ultérieurs : le chargeur d'amorçage est winload.exe et sa configuration est stockée dans une ruche du registre : BCD (Boot Configuration Data)
** IA86ldr.efi et IA64ldr.efi avec l'EFI
* Apple :
** Boot Camp est un outil de partitionnement de disque qui écrit le chargeur d'amorçage utilisé par EFI
Il existe d'autres chargeurs d'amorçage moins connus, pour PC :
* (en) Boot-US, cache "vraiment" les partitions Windows, Linux et autres (mode MBR et GPT, BIOS et UEFI) (toujours maintenu en 2023)
* (en) OSL2000 (version de 2005, plus maintenue)
* Chos (Choose-OS)
* Le très ancien loadlin (en)
* PUPA (en), un dérivé de GRUB
* SC (System Commander (en))
* Pour le système d'exploitation BeOS : Bootman (en)

## Architecture SPARC

* SILO, voir SILO (en)

## Architecture MIPS

* ArcBoot
* Common Firmware Environnement (CFE)
* PMON2000
* Das U-Boot
* Yamon

## Architecture Macintosh m68k

* BSD/mac68k Booter
* EMILE
* Penguin

## Architecture Macintosh PowerPC

* BootX, voir BootX (en)
* Quik, voir quik (en)
* Yaboot, voir yaboot (en)

## Autres types d'architecture

* système d'exploitation Unix BSD : BTX sur freeBSD, utilisant le langage Forth, voir BTX
* DEC Alpha : milo, voir milo (en)
* ECos (temps réel) : RedBoot, voir RedBoot (en)
* IBM (mainframe et AS/400) : IPL (Amorce (informatique))
* Différentes architectures : Das U-Boot, projet GNU, voir Das U-Boot