Linux : Concepts Fondamentaux
Qu’est-ce que Linux ?
Linux est un noyau de système d’exploitation (kernel) open source, créé en 1991 par Linus Torvalds, alors étudiant finlandais. Inspiré d’Unix, il forme la base de nombreuses distributions utilisées aussi bien sur les serveurs, les ordinateurs personnels, les smartphones (Android) que les systèmes embarqués.
“Linux is only free if your time has no value.” — Jamie Zawinski
Histoire
| Année | Événement |
|---|---|
| 1969 | Naissance d’Unix (Bell Labs) |
| 1983 | Projet GNU lancé par Richard Stallman |
| 1991 | Linus Torvalds publie le noyau Linux 0.01 |
| 1994 | Linux 1.0 — première version stable |
| 2003 | Linux intègre le noyau Android (plus tard) |
| 2023 | Linux 6.x — utilisé sur 96% des serveurs web mondiaux |
Architecture du système
Linux repose sur une architecture en couches :
┌─────────────────────────────┐
│ Applications │ ← Espace utilisateur
├─────────────────────────────┤
│ Bibliothèques système │ (glibc, libm…)
├─────────────────────────────┤
│ Appels système │ (syscalls)
├─────────────────────────────┤
│ Noyau Linux │ ← Kernel space
│ (gestion mémoire, FS, │
│ réseau, pilotes…) │
├─────────────────────────────┤
│ Matériel │ (CPU, RAM, disques…)
└─────────────────────────────┘
Composants clés du noyau
- Gestion des processus : ordonnancement, création, communication inter-processus (IPC)
- Gestion de la mémoire : mémoire virtuelle, pagination, swap
- Système de fichiers : ext4, btrfs, xfs, tmpfs…
- Pile réseau : TCP/IP, sockets, pare-feu (netfilter)
- Pilotes de périphériques : interface entre matériel et logiciel
Concepts fondamentaux
1. Tout est fichier
Dans Linux, presque tout est représenté comme un fichier : disques, périphériques, processus, connexions réseau. Cela unifie les interfaces et simplifie la programmation système.
/dev/sda # Un disque dur
/proc/1234 # Le processus avec le PID 1234
/dev/null # Le "trou noir" : supprime tout ce qu'on y écrit2. L’arborescence du système de fichiers
/
├── bin/ # Binaires essentiels (ls, cp, mv…)
├── boot/ # Noyau et bootloader
├── dev/ # Périphériques
├── etc/ # Fichiers de configuration
├── home/ # Répertoires utilisateurs
├── lib/ # Bibliothèques partagées
├── proc/ # Informations sur les processus (virtuel)
├── root/ # Répertoire de l'administrateur
├── tmp/ # Fichiers temporaires
├── usr/ # Applications et utilitaires
└── var/ # Données variables (logs, bases de données…)
3. Utilisateurs et permissions
Linux est un système multi-utilisateurs. Chaque fichier possède trois niveaux de permissions :
-rwxr-xr-- 1 alice staff 4096 mars 5 10:00 script.sh
↑↑↑↑↑↑↑↑↑
│└──┬──┘└──┬──┘└──┬──┘
│ owner group others
└── type (- = fichier, d = dossier, l = lien)
- r (read) : lecture
- w (write) : écriture
- x (execute) : exécution
L’utilisateur root (UID 0) est le super-administrateur avec tous les droits.
4. Les processus
Chaque programme en cours d’exécution est un processus, identifié par un PID (Process ID). Le premier processus lancé au démarrage est init (ou systemd), avec le PID 1.
ps aux # Lister les processus
kill -9 1234 # Tuer le processus 1234
top / htop # Moniteur de processus en temps réel5. Le shell
Le shell est l’interface en ligne de commande qui permet d’interagir avec le système. Les plus courants :
| Shell | Description |
|---|---|
bash | Bourne Again Shell — le plus répandu |
zsh | Bash étendu, très populaire (Oh My Zsh) |
fish | Shell interactif moderne |
sh | Shell POSIX historique |
Distributions Linux
Une distribution (distro) combine le noyau Linux avec des logiciels, un gestionnaire de paquets et une interface pour former un système complet.
Principales familles
Linux Kernel
├── Debian
│ ├── Ubuntu
│ │ ├── Linux Mint
│ │ └── Pop!_OS
│ └── Kali Linux
├── Red Hat
│ ├── Fedora
│ ├── RHEL
│ └── CentOS / AlmaLinux
├── Arch Linux
│ └── Manjaro
└── Slackware
└── openSUSE
Commandes essentielles
# Navigation
pwd # Affiche le répertoire courant
ls -la # Liste les fichiers (avec détails et cachés)
cd /var/log # Change de répertoire
# Fichiers
cp src dest # Copier
mv src dest # Déplacer / renommer
rm -rf dir/ # Supprimer (dangereux !)
find / -name "*.conf" # Rechercher des fichiers
# Réseau
ping google.com
curl https://example.com
ssh user@host
# Droits
chmod 755 script.sh
chown alice:staff fichier.txt
sudo commande # Exécuter en tant que root
# Paquets (Debian/Ubuntu)
apt update && apt upgrade
apt install vimPhilosophie Unix/Linux
Linux hérite de la philosophie Unix, résumée ainsi :
- Faire une seule chose, mais bien la faire
- Les programmes communiquent via des flux de texte
- Composer des outils simples pour des tâches complexes
Cette philosophie favorise la modularité, la réutilisabilité et la puissance du shell via les pipes (|) :
cat access.log | grep "ERROR" | sort | uniq -c | sort -rn | head -10Linux aujourd’hui
- Serveurs : ~96% des serveurs web dans le monde
- Cloud : AWS, GCP, Azure reposent massivement sur Linux
- Smartphones : Android est basé sur le noyau Linux
- Supercalculateurs : 100% des 500 plus puissants tournent sous Linux
- Embarqué : routeurs, télévisions, voitures, IoT
Ressources pour aller plus loin
- kernel.org — Sources officielles du noyau
- The Linux Command Line — Livre gratuit en ligne
- Arch Wiki — Documentation de référence
- https://www.youtube.com/watch?v=5u0XIeRhnV8&list=PLn6POgpklwWp1yRsq3-PyyisSIDg94ct9&index=4 — le sytème d’exploitation dans son fonctionnement
man <commande>— Manuel intégré dans tout système Linux