Linux Chargeur de démarrage de deuxième niveau
Les chargeurs de démarrage de deuxième niveau, tels que GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR ou iBoot, ne sont pas eux-mêmes des systèmes d'exploitation, mais sont capables de charger correctement un système d'exploitation et de lui transférer l'exécution ; le système d'exploitation s'initialise ensuite et peut charger des pilotes de périphériques supplémentaires. Le chargeur de démarrage de deuxième niveau n'a pas besoin de pilotes pour son propre fonctionnement, mais peut utiliser des méthodes génériques d'accès au stockage fournies par le micrologiciel du système, comme le BIOS ou l'Open Firmware, bien qu'en général avec une fonctionnalité matérielle restreinte et des performances moindres.

De nombreux chargeurs d'amorçage peuvent être configurés pour offrir à l'utilisateur plusieurs choix de démarrage. Ces choix peuvent inclure différents systèmes d'exploitation (pour un double ou un multi-démarrage à partir de différentes partitions ou lecteurs), différentes versions du même système d'exploitation (au cas où une nouvelle version présenterait des problèmes inattendus), différentes options de chargement du système d'exploitation (par exemple, le démarrage en mode de secours ou en mode sans échec), démarrage en mode de secours ou en mode sans échec), et certains programmes autonomes qui peuvent fonctionner sans système d'exploitation, tels que des testeurs de mémoire (par exemple, memtest86+), un shell de base (comme dans GNU GRUB), ou même des jeux (voir Liste des jeux PC Booter).Certains chargeurs de démarrage peuvent également charger d'autres chargeurs de démarrage ; par exemple, GRUB charge BOOTMGR au lieu de charger Windows directement. En général, un choix par défaut est présélectionné avec un délai pendant lequel l'utilisateur peut appuyer sur une touche pour changer de choix ; après ce délai, le choix par défaut est automatiquement exécuté afin que le démarrage normal puisse se faire sans interaction.

Le processus de démarrage peut être considéré comme terminé lorsque l'ordinateur est prêt à interagir avec l'utilisateur ou que le système d'exploitation est capable d'exécuter des programmes système ou des programmes d'application.

De nombreux systèmes intégrés doivent démarrer immédiatement. Par exemple, il est généralement inacceptable d'attendre une minute pour qu'un téléviseur numérique ou un appareil de navigation GPS démarre. C'est pourquoi ces appareils sont dotés de systèmes logiciels en ROM ou en mémoire flash, afin que l'appareil puisse commencer à fonctionner immédiatement ; peu ou pas de chargement est nécessaire, car le chargement peut être précalculé et stocké sur la ROM lors de la fabrication de l'appareil.

Les systèmes complexes et de grande taille peuvent avoir des procédures de démarrage qui se déroulent en plusieurs phases jusqu'à ce que le système d'exploitation et les autres programmes soient chargés et prêts à être exécutés. Les systèmes d'exploitation étant conçus comme s'ils ne démarraient ni ne s'arrêtaient jamais, un chargeur d'amorçage peut charger le système d'exploitation, se configurer comme un simple processus au sein de ce système, puis transférer irrévocablement le contrôle au système d'exploitation. Le chargeur d'amorçage se termine alors normalement comme n'importe quel autre processus.
Un bootloader en deux étapes consiste en fait en deux bootloaders l'un après l'autre. Le premier est réduit dans le seul but de charger le second. Ce dernier peut alors contenir tout le code nécessaire au chargement du noyau. GRUB utilise deux (ou plutôt trois) étapes.
Linux Second-stage boot loader
Second-stage boot loaders, such as GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR or iBoot, are not themselves operating systems, but are able to load an operating system properly and transfer execution to it; the operating system subsequently initializes itself and may load extra device drivers. The second-stage boot loader does not need drivers for its own operation, but may instead use generic storage access methods provided by system firmware such as the BIOS or Open Firmware, though typically with restricted hardware functionality and lower performance.

Many boot loaders can be configured to give the user multiple booting choices. These choices can include different operating systems (for dual or multi-booting from different partitions or drives), different versions of the same operating system (in case a new version has unexpected problems), different operating system loading options (e.g., booting into a rescue or safe mode), and some standalone programs that can function without an operating system, such as memory testers (e.g., memtest86+), a basic shell (as in GNU GRUB), or even games (see List of PC Booter games).Some boot loaders can also load other boot loaders; for example, GRUB loads BOOTMGR instead of loading Windows directly. Usually, a default choice is preselected with a time delay during which a user can press a key to change the choice; after this delay, the default choice is automatically run so normal booting can occur without interaction.

The boot process can be considered complete when the computer is ready to interact with the user, or the operating system is capable of running system programs or application programs.

Many embedded systems must boot immediately. For example, waiting a minute for a digital television or a GPS navigation device to start is generally unacceptable. Therefore, such devices have software systems in ROM or flash memory so the device can begin functioning immediately; little or no loading is necessary, because the loading can be precomputed and stored on the ROM when the device is made.

Large and complex systems may have boot procedures that proceed in multiple phases until finally the operating system and other programs are loaded and ready to execute. Because operating systems are designed as if they never start or stop, a boot loader might load the operating system, configure itself as a mere process within that system, and then irrevocably transfer control to the operating system. The boot loader then terminates normally as any other process would.
A two-stage bootloader actually consists of two bootloaders after each other. The first being small with the sole purpose of loading the second one. The second one can then contain all the code needed for loading the kernel. GRUB uses two (or arguably, three) stages.