Ce guide vous donne le vocabulaire et les repères essentiels pour travailler sur un système Linux. Il s’adresse aux débutants qui découvrent l’administration serveur. Vous y apprendrez ce qu’est Linux, comment il est organisé en couches, comment est structuré son système de fichiers, et comment il démarre. Ces notions sont le socle du parcours Fondamentaux — elles reviendront dans chaque guide de la section.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »À la fin de ce guide, vous serez capable de :
- expliquer en quoi Linux est un noyau et ce que les distributions ajoutent autour de lui,
- décrire comment une commande simple comme
lsvoyage des couches utilisateur jusqu’au noyau, - nommer les 7 étapes du démarrage d’un serveur Linux moderne, de l’UEFI à systemd,
- vous repérer dans l’arborescence
/sans hésiter sur la destination d’un fichier de configuration, d’un journal ou d’un script.
Qu’est-ce que Linux ?
Section intitulée « Qu’est-ce que Linux ? »Au sens strict, Linux désigne uniquement le noyau — le programme central créé en 1991 par Linus Torvalds, distribué sous licence GPL. C’est lui qui gère le matériel, la mémoire, les processus et les fichiers.
Dans l’usage courant, on dit souvent « Linux » pour parler d’un système complet. Ce système est en réalité fourni par une distribution, qui assemble :
- le noyau Linux,
- des bibliothèques système (dont la libc),
- des utilitaires GNU et d’autres outils,
- un système d’initialisation (le plus souvent systemd),
- un gestionnaire de paquets (APT, DNF, APK…),
- et des applications supplémentaires.
Exemples de distributions courantes en administration serveur : Ubuntu Server, Debian, RHEL/Rocky Linux, Alpine Linux.
Les composants d’un système Linux
Section intitulée « Les composants d’un système Linux »| Composant | Rôle | Exemple |
|---|---|---|
| Noyau | Gère matériel, mémoire, processus | Linux 6.x |
| Bibliothèques | Interface entre programmes et noyau | glibc, musl |
| Shell | Interprète les commandes | bash, zsh, sh |
| Outils système | Manipulation fichiers, réseau, processus | coreutils, util-linux |
| Gestionnaire de paquets | Installation et mises à jour | apt, dnf, apk |
| Init / PID 1 | Démarre et supervise les services | systemd |
Architecture du système Linux
Section intitulée « Architecture du système Linux »Plutôt qu’une liste de couches abstraites, partons d’un exemple concret.
Vous tapez ls /etc dans un terminal :
- Le shell (bash, zsh…) analyse la ligne et localise le programme
ls. - Le shell lance
lscomme un nouveau processus. lsappelle des fonctions de la bibliothèque C (glibc) pour lire le répertoire.- La libc traduit ces appels en appels système (
openat,getdents64…). - Le noyau reçoit ces appels, interroge le système de fichiers, lit les entrées sur le disque.
- Les données remontent à travers les couches jusqu’à l’affichage dans votre terminal.
Ce trajet illustre la règle fondamentale : le shell n’est pas Linux. C’est un programme utilisateur ordinaire. Linux, c’est le noyau qui arbitre l’accès aux ressources.
Mode noyau / mode utilisateur
Section intitulée « Mode noyau / mode utilisateur »Linux distingue en permanence deux zones :
- Mode noyau : le noyau s’exécute avec un accès total au matériel. Un bug ici peut paralyser le système.
- Mode utilisateur : tous vos processus (shell, services, applications) tournent avec des privilèges restreints. Un crash dans cet espace ne touche pas le reste.
La frontière entre les deux est franchie uniquement par les appels système — c’est le mécanisme de sécurité central de l’architecture Linux.
Le processus de démarrage
Section intitulée « Le processus de démarrage »Sur un serveur Linux moderne, le démarrage suit une séquence précise de 7 étapes. La connaître vous permet de diagnostiquer un serveur qui ne démarre pas, ou de comprendre pourquoi un service ne se lance pas.
-
Firmware (BIOS / UEFI)
À l’allumage, le firmware initialise le matériel (CPU, RAM, disques, cartes réseau). Sur les systèmes UEFI modernes, il peut charger directement un noyau signé : c’est le Secure Boot. Sinon, il passe la main à un chargeur de démarrage.
-
Chargeur de démarrage (GRUB2 / systemd-boot)
Le chargeur affiche un menu, permet de choisir un noyau ou de passer des paramètres. Il charge en mémoire deux éléments : le noyau Linux compressé (vmlinuz) et une image initramfs.
-
Décompression et initialisation du noyau
Le noyau se décompresse, détecte le matériel disponible et prend le contrôle du CPU. Il ne monte pas encore la vraie racine du système.
-
Initramfs / initrd
L’initramfs (Initial RAM Filesystem) est une archive compressée chargée en mémoire. Elle contient un environnement minimal — pilotes, scripts, outils — qui permet au noyau de :
- charger les pilotes nécessaires (RAID, LVM, chiffrement…),
- trouver et préparer la vraie partition racine,
- déchiffrer le volume si nécessaire.
C’est l’étape souvent oubliée, mais critique : sans initramfs, le noyau ne saurait pas accéder à un disque LVM ou chiffré.
-
Switch-root vers la vraie racine
Une fois la vraie partition
/accessible, le noyau effectue un switch-root : il quitte l’environnement initramfs et bascule vers le système de fichiers réel installé sur disque. -
PID 1 — systemd (ou autre)
Le premier processus lancé par le noyau sur la vraie racine est le PID 1. Sur la quasi-totalité des distributions serveur modernes, c’est systemd. C’est lui qui gère tout ce qui suit.
-
Services et cible par défaut
systemd lit ses unités (
.service,.target,.socket…) et démarre les services en tenant compte des dépendances. La cible par défaut (multi-user.targetsur un serveur sans interface graphique) détermine l’ensemble de services actifs au terme du démarrage.
La hiérarchie du système de fichiers (FHS)
Section intitulée « La hiérarchie du système de fichiers (FHS) »Linux organise toutes ses données dans une arborescence unique, définie par le Filesystem Hierarchy Standard (FHS). Tout part de la racine /. Voici les répertoires principaux à connaître :
Répertoire/ (racine — point de départ de toute l’arborescence)
Répertoireetc/ fichiers de configuration du système et des services
- …
Répertoirevar/ données variables persistantes (journaux, état des services…)
- …
Répertoireusr/ programmes, bibliothèques et documentation
- …
Répertoirehome/ répertoires personnels des utilisateurs
- …
Répertoireboot/ noyau, initramfs, chargeur de démarrage
- …
Répertoiretmp/ fichiers temporaires — ne supposez pas leur persistance
- …
Répertoirerun/ données d’exécution volatiles (réinitialisé au boot)
- …
Répertoireproc/ vue virtuelle sur le noyau et les processus
- …
Répertoiredev/ représentation des périphériques
- …
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- Linux au sens strict est un noyau. Une distribution assemble ce noyau avec des bibliothèques, des outils et un système d’init pour former un système utilisable.
- Le shell est un programme utilisateur ordinaire. La frontière noyau / espace utilisateur est franchie uniquement par les appels système.
- Le démarrage moderne suit : firmware → chargeur → noyau → initramfs → switch-root → PID 1 / systemd → services.
- L’initramfs est indispensable pour préparer la vraie racine, surtout sur LVM, RAID ou volume chiffré.
- Le FHS définit une arborescence standard :
/etcpour la configuration,/varpour les données variables,/usrpour les programmes,/bootpour le démarrage. Le guide Arborescence FHS détaille chaque zone.
Prochaines étapes
Section intitulée « Prochaines étapes »Vous avez le vocabulaire. Passez au terminal :
FAQ : Questions Fréquentes
Section intitulée « FAQ : Questions Fréquentes »Définition
- À l'origine : uniquement le noyau (kernel)
- Aujourd'hui : désigne l'ensemble du système (noyau + outils GNU)
Caractéristiques clés
- Libre et gratuit : code source accessible à tous
- Multi-utilisateur et multi-tâches
- Portable : fonctionne sur serveurs, PC, mobiles, embarqué
- Sécurisé : gestion fine des permissions
Exemples d'utilisation
- 90%+ des serveurs web dans le monde
- Android (basé sur le noyau Linux)
- Supercalculateurs (100% du Top 500)
Architecture en couches
| Composant | Rôle |
|---|---|
| Noyau (Kernel) | Gère matériel, mémoire, processus |
| Shell | Interface ligne de commande (Bash, Zsh) |
| Outils CLI | Commandes système (ls, cp, grep...) |
| Applications | Logiciels utilisateur |
Le Noyau
uname -r # Affiche la version du noyau
Gère : processus, mémoire, périphériques, système de fichiers, réseau.Le Shell
- Bash : le plus répandu
- Zsh : moderne, autocomplétion avancée
- Fish : convivial pour débutants
Composition
- Noyau Linux
- Utilitaires GNU
- Gestionnaire de paquets (
apt,dnf,pacman) - Système d'init (
systemd) - Interface graphique (optionnel)
Distributions populaires
| Distro | Usage | Gestionnaire |
|---|---|---|
| Ubuntu | Desktop/Serveur | apt |
| Debian | Serveur stable | apt |
| RHEL/Rocky | Entreprise | dnf |
| Arch | Utilisateurs avancés | pacman |
| Alpine | Conteneurs | apk |
Choisir sa distribution
- Débutant : Ubuntu, Linux Mint
- Serveur : Debian, Rocky Linux
- DevOps : Ubuntu Server, Alpine
Modèle en couches
┌─────────────────────────┐
│ Applications │ Mode utilisateur
├─────────────────────────┤
│ Shell / Interface │
├─────────────────────────┤
│ Appels système (API) │
├─────────────────────────┤
│ Noyau Linux │ Mode noyau
├─────────────────────────┤
│ Matériel │
└─────────────────────────┘
Deux modes d'exécution
- Mode noyau : accès complet au matériel (privilégié)
- Mode utilisateur : accès restreint (sécurisé)
Communication
Les applications utilisent des appels système (syscalls) pour demander des services au noyau :strace ls # Trace les appels système
Séquence de boot
- BIOS/UEFI : Initialisation matériel, POST
- Bootloader (GRUB) :
/etc/default/grub # Configuration
/boot/grub/grub.cfg # Fichier généré
- Noyau Linux : Chargement en mémoire, initialisation pilotes, montage racine
- systemd (PID 1) :
systemctl list-units --type=target
Lance les services et atteint la cible (graphical.target, multi-user.target)Diagnostic
dmesg | less # Messages du noyau
journalctl -b # Logs du boot actuel
systemd-analyze blame # Temps de démarrage
Concepts clés
- PID : identifiant unique du processus
- PPID : PID du processus parent
- États : Running, Sleeping, Stopped, Zombie
Commandes essentielles
# Lister les processus
ps aux # Tous les processus
ps -ef --forest # Arborescence
# Surveillance temps réel
top # Vue classique
htop # Vue améliorée
# Gestion des processus
kill PID # Signal SIGTERM
kill -9 PID # Signal SIGKILL (force)
killall nginx # Par nom
# Priorité
nice -n 10 commande # Lancer avec priorité basse
renice -n 5 -p PID # Modifier la priorité
Processus en arrière-plan
commande & # Lancer en background
jobs # Lister les jobs
fg %1 # Ramener au premier plan
systemd : le gestionnaire moderne
systemctl est la commande principale :# État d'un service
systemctl status nginx
# Démarrer / Arrêter
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx # Recharge config
# Activation au boot
systemctl enable nginx
systemctl disable nginx
# Lister les services
systemctl list-units --type=service
systemctl list-units --failed
Fichiers unités
/etc/systemd/system/ # Personnalisés (priorité)
/lib/systemd/system/ # Fournis par les paquets
systemctl daemon-reload # Recharger après modif
Journaux
journalctl -u nginx # Logs d'un service
journalctl -f # Suivre en temps réel
Types d'utilisateurs
- root (UID 0) : super-utilisateur, tous les droits
- Utilisateurs système (UID 1-999) : services
- Utilisateurs normaux (UID 1000+) : humains
Commandes de gestion
# Créer un utilisateur
sudo useradd -m -s /bin/bash jean
sudo passwd jean
# Modifier
sudo usermod -aG docker jean # Ajouter au groupe
sudo usermod -l nouveau ancien
# Supprimer
sudo userdel -r jean # -r supprime le home
# Groupes
sudo groupadd devops
sudo gpasswd -a jean devops
Fichiers importants
| Fichier | Contenu |
|---|---|
/etc/passwd |
Comptes utilisateurs |
/etc/shadow |
Mots de passe (hashés) |
/etc/group |
Groupes |
sudo
sudo commande # Exécuter en root
sudo -u user commande # En tant que user
visudo # Éditer /etc/sudoers
Arborescence standard (FHS)
/
├── bin/ → Binaires essentiels
├── boot/ → Fichiers de démarrage
├── dev/ → Périphériques
├── etc/ → Configuration système
├── home/ → Répertoires utilisateurs
├── lib/ → Bibliothèques partagées
├── opt/ → Logiciels optionnels
├── proc/ → Infos processus (virtuel)
├── root/ → Home de root
├── tmp/ → Fichiers temporaires
├── usr/ → Programmes utilisateur
└── var/ → Données variables (logs)
Permissions
ls -la fichier
# -rwxr-xr-- user group fichier
# ^^^ ^^^ ^^^
# | | └── Autres (r-x)
# | └────── Groupe (r-x)
# └────────── Propriétaire (rwx)
chmod 755 fichier # rwxr-xr-x
chmod u+x script.sh # Ajouter exécution
chown user:group fichier # Changer propriétaire
Types de systèmes de fichiers
- ext4 : standard Linux
- XFS : hautes performances
- Btrfs : snapshots, compression