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.
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 #
| Famille | Distributions | Paquets | Usage typique |
|---|---|---|---|
| Debian | Debian, Ubuntu | .deb, apt | Serveurs web, cloud, postes de travail |
| Red Hat | RHEL, Rocky Linux, AlmaLinux, Fedora | .rpm, dnf | Entreprise, support long, certifications |
| SUSE | SLES, openSUSE | .rpm, zypper | Entreprise, SAP |
| Légères | Alpine | apk | Images 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, disques2. Le démarrage #
Du firmware au prompt de connexion.
Les étapes #
- Le firmware (UEFI) initialise le matériel et lance le chargeur depuis la partition EFI.
- GRUB propose les noyaux installés et leur passe des options (
/proc/cmdline). - 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).
- La racine est montée et le noyau lance systemd, le processus n°1 (PID 1).
- systemd atteint la cible par défaut :
multi-user.targetsur un serveur,graphical.targetsur 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 noyauMode secours : Pour réparer un serveur qui ne démarre plus, on ajoutesystemd.unit=rescue.target(ouemergency.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 #
| Répertoire | Contenu |
|---|---|
/etc | Configuration du système et des services (texte) |
/var | Données variables : /var/log (journaux), /var/lib (bases, état), /var/cache |
/home, /root | Répertoires personnels des utilisateurs et de root |
/usr | Programmes et bibliothèques installés par les paquets (/usr/bin, /usr/lib) |
/opt, /usr/local | Logiciels installés hors gestionnaire de paquets |
/tmp | Fichiers temporaires, souvent vidés au redémarrage |
/boot | Noyaux, initramfs, configuration de GRUB |
/dev | Fichiers de périphériques (/dev/sda, /dev/null) |
/proc, /sys | Systèmes de fichiers virtuels exposés par le noyau |
/srv | Données servies (sites web, FTP) |
Bonne Pratique : Sauvegardez au minimum/etc,/home,/root,/srvet 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 courant4. 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 man | Contenu |
|---|---|
| 1 | Commandes utilisateur |
| 5 | Fichiers de configuration |
| 8 | Commandes d'administration |
