RousselTMLEARNING

Systèmes & Linux

Architecture d'un système Linux : noyau, démarrage et arborescence

Comprendre comment fonctionne un serveur Linux : noyau et espace utilisateur, séquence de démarrage UEFI, GRUB, initramfs et systemd, arborescence FHS, /proc et /sys, et principe du « tout est fichier ».

1. Linux, noyau et distributions #

Ce qu'on appelle Linux.

Un noyau et un écosystème #

Linux est à proprement parler un noyau : le programme qui gère le processeur, la mémoire, les disques, le réseau et arbitre l'accès des programmes au matériel. Ce qu'on installe sur un serveur est une distribution : le noyau, plus les outils GNU, un gestionnaire de paquets, systemd et une politique de mises à jour.

Pile d'un système Linux
Les programmes ne parlent jamais directement au matériel : ils passent par les appels système du noyau.

Les programmes s'exécutent en espace utilisateur ; seul le noyau tourne en espace noyau. Ils communiquent par des appels système (open, read, fork, connect...), que l'on peut observer avec strace.

Familles de distributions #

Familles de distributions Linux
Connaître la famille suffit pour savoir quelles commandes utiliser.
FamilleDistributionsPaquetsUsage typique
DebianDebian, Ubuntu.deb, aptServeurs web, cloud, postes de travail
Red HatRHEL, Rocky Linux, AlmaLinux, Fedora.rpm, dnfEntreprise, support long, certifications
SUSESLES, openSUSE.rpm, zypperEntreprise, SAP
LégèresAlpineapkImages de conteneurs
Bonne Pratique : Choisissez une distribution avec un support long (Ubuntu LTS, Debian stable, RHEL ou ses clones) pour un serveur : 5 à 10 ans de correctifs de sécurité.

Identifier le système #

cat /etc/os-release        # distribution et version
uname -r                   # version du noyau
hostnamectl                # nom, OS, noyau, architecture, virtualisation
lscpu ; free -h ; lsblk    # CPU, mémoire, disques

2. Le démarrage #

Du firmware au prompt de connexion.

Les étapes #

Étapes du démarrage Linux
Chaque étape passe la main à la suivante ; systemd démarre ensuite les services en parallèle.
  1. Le firmware (UEFI) initialise le matériel et lance le chargeur depuis la partition EFI.
  2. GRUB propose les noyaux installés et leur passe des options (/proc/cmdline).
  3. Le noyau se décompresse, détecte le matériel et monte l'initramfs, un mini-système qui charge les pilotes nécessaires pour accéder au disque racine (LVM, RAID, chiffrement).
  4. La racine est montée et le noyau lance systemd, le processus n°1 (PID 1).
  5. systemd atteint la cible par défaut : multi-user.target sur un serveur, graphical.target sur un poste.

Inspecter le démarrage #

systemctl get-default                 # cible par défaut
systemd-analyze                       # durée totale du démarrage
systemd-analyze blame | head          # services les plus lents
journalctl -b -p err                  # erreurs du démarrage courant
journalctl --list-boots               # démarrages précédents
dmesg -T | tail                       # messages du noyau
Mode secours : Pour réparer un serveur qui ne démarre plus, on ajoute systemd.unit=rescue.target (ou emergency.target) à la ligne du noyau dans GRUB : on obtient un shell root minimal.

3. L'arborescence (FHS) #

Où se trouve quoi.

Les répertoires à connaître #

Arborescence d'un système Linux
Les disques et partitions se greffent dans cet arbre unique par montage.
RépertoireContenu
/etcConfiguration du système et des services (texte)
/varDonnées variables : /var/log (journaux), /var/lib (bases, état), /var/cache
/home, /rootRépertoires personnels des utilisateurs et de root
/usrProgrammes et bibliothèques installés par les paquets (/usr/bin, /usr/lib)
/opt, /usr/localLogiciels installés hors gestionnaire de paquets
/tmpFichiers temporaires, souvent vidés au redémarrage
/bootNoyaux, initramfs, configuration de GRUB
/devFichiers de périphériques (/dev/sda, /dev/null)
/proc, /sysSystèmes de fichiers virtuels exposés par le noyau
/srvDonnées servies (sites web, FTP)
Bonne Pratique : Sauvegardez au minimum /etc, /home, /root, /srv et les données applicatives de /var/lib : le reste se réinstalle depuis les paquets.

Tout est fichier #

Linux expose presque tout comme des fichiers : périphériques, informations du noyau, paramètres. On lit l'état du système avec cat et on le modifie souvent avec echo ou sysctl.

cat /proc/cpuinfo | grep 'model name' | head -1
cat /proc/meminfo | head -3
cat /proc/loadavg
cat /sys/class/net/eth0/address      # adresse MAC
sysctl net.ipv4.ip_forward           # paramètre noyau
ls -l /proc/$$/fd                    # descripteurs ouverts par le shell courant

4. Se documenter #

Trouver la réponse sur la machine.

Aides intégrées #

man 5 fstab          # section 5 : formats de fichiers
man -k partition     # chercher une page de manuel
ssh --help | less    # aide courte
help cd              # commandes internes de bash
type ls ; which -a python3
apropos firewall
Section manContenu
1Commandes utilisateur
5Fichiers de configuration
8Commandes d'administration

Articles liés

Le shell Bash et les fichiers : navigation, redirections, pipes et traitement de texte

Maîtriser la ligne de commande Linux : chemins, manipulation de fichiers, jokers, redirections, pipes, recher…

Utilisateurs, groupes, sudo et permissions sous Linux

Gérer les comptes Linux (useradd, usermod, passwd, chage), les groupes, sudo et visudo, les permissions rwx e…

Paquets, services systemd, journaux et tâches planifiées

Installer et mettre à jour des logiciels avec apt et dnf, piloter les services avec systemctl, écrire une uni…

Pour aller plus loin