Après avoir exploré quelques composants clés de Linux, voyons maintenant comment ils s'assemblent lors du démarrage du système. La séquence complète, depuis l'appui sur le bouton d'alimentation jusqu'à l'affichage de l'invite de connexion, est connue sous le nom de processus de démarrage Linux. C'est un voyage fascinant qui transforme une machine éteinte en un système d'exploitation entièrement fonctionnel.
Le processus de démarrage du système d'exploitation Linux peut être simplifié en quatre étapes principales.
Étape 1 BIOS
Le BIOS (Basic Input/Output System) ou son successeur moderne, l'UEFI (Unified Extensible Firmware Interface), est le premier logiciel à s'exécuter lorsque vous mettez votre ordinateur sous tension. Il effectue un autotest de démarrage (POST) pour initialiser et vérifier le matériel du système, tel que le CPU, la mémoire et les périphériques de stockage. Une fois que le matériel est validé, la tâche principale du BIOS est de localiser et de charger le chargeur de démarrage à partir d'un périphérique de stockage.
Étape 2 Chargeur de démarrage (Bootloader)
Le chargeur de démarrage prend le relais du BIOS. Sa responsabilité principale est de charger le noyau Linux en mémoire. Un chargeur de démarrage courant pour Linux est GRUB (GRand Unified Bootloader). GRUB présente souvent un menu, vous permettant de choisir quel système d'exploitation ou quelle version du noyau démarrer. Après avoir fait une sélection (ou après un délai d'attente), il charge le noyau sélectionné et un disque RAM initial (initrd) en mémoire, puis transfère le contrôle au noyau.
Étape 3 Noyau (Kernel)
Une fois que le noyau est chargé en mémoire, il prend le contrôle du système. Il commence par se décompresser et initialiser le matériel de base et la gestion de la mémoire. Le noyau monte ensuite le système de fichiers racine, qui contient tous les fichiers système. Sa tâche finale et la plus critique dans le processus de démarrage linux repose sur l'exécution du premier programme de l'espace utilisateur : le processus init.
Étape 4 Init
Le processus init est le premier processus démarré par le noyau et est l'ancêtre de tous les autres processus du système. Sa tâche principale est de mettre le système dans un état utilisable en démarrant les services essentiels et les processus d'arrière-plan (démons) conformément à sa configuration. Il existe plusieurs implémentations d'init, telles que le traditionnel System V init, Upstart, et systemd, désormais largement adopté.
Ceci fournit un aperçu de haut niveau du processus de démarrage linux suivi. Nous approfondirons chacune de ces étapes dans les leçons à venir.