Les coulisses de nos ordinateurs – Ep1 – L’ABC du Booting
Le Co-Labs, laboratoire d’innovation de l’ETNA, joue un rôle clé dans la formation et l’acquisition de connaissances de nos étudiants en les accompagnant et en les encadrant dans leurs projets d’innovation. Shayman Salomon, étudiante en 1re année et alternante au sein du Co-Labs, vous dévoile dans cette série les coulisses de nos ordinateurs.
Comme projet de fin d’année j’ai décidé de faire un OS, l’écrire complètement afin de comprendre tout le fonctionnement d’un système d’exploitation, ce qu’est un Kernel, ou encore à quoi sert le BIOS. Mais la première question que je me suis posée lorsque j’ai décidé d’entreprendre ce projet était : que se passe-t-il lorsque l’on allume notre ordinateur ?
Qu’est ce qui fait que mon PC démarre pour que je puisse ensuite l’utiliser pour travailler ? Pour répondre à cette interrogation, il a fallu que je m’intéresse à différentes notions que l’on va aborder dans cet article.
L’OS ou Operating System
Tout d’abord, pour comprendre le processus de démarrage de notre ordinateur, il est essentiel de saisir le rôle crucial du système d’exploitation ( Operating System en anglais). En termes simples, un OS est un ensemble complexe de programmes conçus pour gérer les ressources matérielles et permettre l’interaction avec un appareil informatique. Les systèmes d’exploitations sont omniprésents, des systèmes les plus répandus tels que Windows ou Linux, à des variantes plus spécialisées adaptées à des besoins spécifiques.
Pour ne citer qu’un exemple, nous pouvons parler de Linux Mint, une distribution populaire de Linux. Elle repose sur le noyau (Kernel) Linux, qui constitue le cœur de tout système Linux. Penser au Kernel comme au chef cuisinier dans une cuisine bien organisée : il gère les ingrédients (ressources matérielles) et coordonne les processus (cuisson des plats) pour garantir un repas (exécution du système d’exploitation) parfaitement réalisé. Mais nous reviendrons un peu plus tard sur son fonctionnement.
![Illustration du Kernel Linux et de différentes distributions Linux](https://etna.io/wp-content/uploads/coulisses-ordinateur-linux.jpg)
L’interaction complexe entre l’OS et le matériel informatique commence dès le moment où nous appuyons sur le bouton d’alimentation de notre PC. Mais avant même que notre OS puisse prendre le contrôle, un composant crucial appelé BIOS entre en jeu. Il agit comme un maître de cérémonie, orchestrant les premières étapes du processus de démarrage pour préparer le terrain à l’OS à venir. Jetons un coup d’œil de plus près à ce que représente le BIOS et à son rôle vital dans le démarrage de nos machines.
BIOS et UEFI
Le BIOS, ou Basic Input/Output System, est un logiciel intégré dans la carte mère de l’ordinateur. Le BIOS, ou Basic Input/Output System, est un logiciel intégré dans la carte mère de l’ordinateur. Il joue un rôle fondamental en initialisant et en vérifiant les composants matériels essentiels lors du démarrage, ainsi qu’en lançant le processus de chargement de l’OS.
Mais qu’est-ce qui distingue le BIOS de son successeur moderne, l’UEFI ?
Le BIOS, en tant que système intégré dans la carte mère de l’ordinateur, a longtemps été le principal logiciel responsable du processus de démarrage. Cependant, avec l’évolution technologique, il a été remplacé par une version plus avancée appelée UEFI, ou Unified Extensible Firmware Interface.
L’une des principales différences entre le BIOS et l’UEFI réside dans leur conception et leurs capacités. Le BIOS est un logiciel plus ancien et plus limité, offrant une interface utilisateur textuelle et des fonctionnalités de démarrage de base. En revanche, l’UEFI est plus moderne et plus souple, offrant une interface utilisateur graphique conviviale, ainsi que des fonctionnalités avancées telles que la prise en charge des disques de grande capacité, le démarrage sécurisé et la compatibilité avec les systèmes d’exploitation modernes.
Une autre distinction majeure entre le BIOS et l’UEFI réside dans leur manière de démarrer le système d’exploitation. Alors que le BIOS charge le système d’exploitation à partir du MBR (Master Boot Record) situé sur le disque dur, l’UEFI peut démarrer le système d’exploitation à partir d’un fichier EFI (Extensible Firmware Interface) stocké sur une partition spéciale appelée ESP (EFI System Partition). Cela permet une gestion plus flexible du démarrage et une meilleure compatibilité avec les systèmes modernes.
Le processus de chargement avant d’arriver à l’OS (programme qui se passe la main) sera abordé dans un autre article.
![Représentation graphique des différences entre BIOS et UEFI](https://etna.io/wp-content/uploads/coulisses-ordinateur-bios-uefi.jpg)
La ROM
La ROM, ou Read-Only Memory, est un type de mémoire non volatile, ce qui signifie qu’elle conserve ses données même lorsque l’alimentation électrique est coupée.
Contrairement à la mémoire vive (RAM) qui perd ses données lorsque l’ordinateur est éteint, la ROM maintient ses informations de manière permanente.
La ROM est en lecture seule, ce qui signifie que ses données ne peuvent généralement pas être modifiées après leur enregistrement. Cela la rend idéale pour stocker des instructions essentielles comme le BIOS ou l’UEFI, qui doivent être accessibles dès que l’ordinateur est mis sous tension.
Le Kernel
Le Noyau, appelé “Kernel” en anglais, est le cœur du système d’exploitation. Il agit comme un pont entre le logiciel et le matériel de l’ordinateur, assurant une communication fluide et efficace entre les deux. Mais qu’est-ce que le Kernel exactement ?
Le Kernel est une collection de programmes informatiques essentiels qui fournissent des services fondamentaux au système d’exploitation. Ces services comprennent la gestion des processus, la gestion de la mémoire, la gestion des périphériques, la gestion du système de fichiers et bien plus encore. En substance, le Kernel est responsable de la gestion des ressources matérielles de l’ordinateur et de la coordination de l’interaction entre les logiciels et le matériel.
Une fois que le Kernel est extrait de l’OS et chargé en mémoire, il prend le contrôle total de l’ordinateur. Il initialise les périphériques matériels, configure la mémoire système et lance les premiers processus système. Le Kernel est responsable de la gestion de ces processus tout au long de l’exécution du système d’exploitation. Il coordonne les différents instruments (composants matériels) pour produire une symphonie harmonieuse (exécution du système d’exploitation). Le Kernel donne les instructions finales pour démarrer l’exécution du système d’exploitation, permettant ainsi à l’ordinateur de passer de l’état de veille à celui de l’activité.
![Schéma des liens fait par le Kernel](https://etna.io/wp-content/uploads/coulisses-ordinateur-kernel.jpg)
Après avoir exploré le fonctionnement de nos ordinateurs, depuis le BIOS jusqu’au Kernel, nous avons une meilleure compréhension du processus de démarrage. Chaque étape, du chargement initial du BIOS à l’exécution orchestrée par le Kernel, illustre l’interconnexion complexe entre les logiciels et le matériel qui rendent possible l’utilisation de nos machines.
Cette première exploration ne fait que gratter la surface de la vaste étendue de savoirs que renferme la création et le fonctionnement d’un système d’exploitation. Ce n’est que le début d’une série d’articles destinés à démystifier davantage ces aspects complexes.
Dans le prochain article, nous plongerons dans les détails du Master Boot Record (MBR), explorant son rôle crucial dans le démarrage d’un système d’exploitation et la manière dont il interagit avec les autres composants du système pour permettre à votre ordinateur de fonctionner.
Glossaire
Système d’Exploitation (OS) : Un ensemble de programmes conçus pour gérer les ressources matérielles d’un ordinateur et permettre l’interaction avec celui-ci.
Kernel : Le noyau d’un système d’exploitation, responsable de la gestion des ressources matérielles et de la coordination entre le logiciel et le matériel.
BIOS : Basic Input/Output System, un logiciel intégré dans la carte mère de l’ordinateur, responsable de l’initialisation et de la vérification des composants matériels lors du démarrage.
UEFI : Unified Extensible Firmware Interface, le successeur moderne du BIOS, offrant des fonctionnalités avancées telles que le démarrage sécurisé et la compatibilité avec les systèmes d’exploitation modernes.
MBR : Master Boot Record, une section située dans le premier secteur d’un disque dur, fournissant des instructions essentielles sur la façon de charger le système d’exploitation.
Bootloader : Un petit programme contenu dans le MBR ou dans un secteur de démarrage spécial, chargé de charger le système d’exploitation en mémoire et de lui transférer le contrôle pour son exécution.
ROM : Read-Only Memory, une mémoire informatique non volatile utilisée pour stocker des instructions et des données essentielles nécessaires au fonctionnement de l’ordinateur, telles que le BIOS.
CPU : Central Processing Unit, l’unité centrale de traitement de l’ordinateur, responsable de l’exécution des instructions et du traitement des données.
Carte mère : Composant principal d’un ordinateur, fournissant les connexions électriques entre les différents composants matériels, tels que le processeur, la mémoire, les cartes d’extension et les périphériques de stockage.
EFI (Extensible Firmware Interface) : Interface de firmware extensible, utilisée par les ordinateurs modernes pour démarrer le système d’exploitation à partir d’un fichier EFI stocké sur une partition spéciale appelée ESP (EFI System Partition).
ESP (EFI System Partition) : Partition spéciale sur un disque dur, utilisée pour stocker les fichiers EFI nécessaires au démarrage du système d’exploitation via l’UEFI.
Firmware : Ensemble de logiciels intégrés dans un matériel informatique ou électronique, qui fournissent des instructions de bas niveau pour contrôler le fonctionnement du matériel. Contrairement aux logiciels qui sont stockés sur un support de stockage et chargés en mémoire pour être exécutés, le firmware est directement intégré dans le matériel et est généralement non modifiable par l’utilisateur après son installation. Le firmware est essentiel pour initialiser, contrôler et interagir avec les composants matériels d’un système, tels que les cartes mères, les périphériques de stockage, les cartes réseau, etc.
Script écrit par Shayman Salomon et relu par Kévin Ansard, membres du Co-Labs de l’ETNA.