Introduction à Linux — Système d'exploitation & Virtualisation
Linux est le système d'exploitation dominant pour les serveurs, le cloud et l'automatisation DevOps. Comprendre ses bases est fondamental pour tout ingénieur DevOps.
1. Qu'est-ce qu'un Système d'Exploitation (OS) ?
L'OS est le logiciel intermédiaire entre le matériel et les applications.
Applications (navigateur, éditeur, Docker...)
│
▼
Système d'exploitation (OS)
│
▼
Matériel (CPU, RAM, Disque, Réseau...)
Rôles principaux de l'OS
| Rôle | Description |
|---|---|
| Gestion des processus | Alloue le CPU aux programmes en cours d'exécution |
| Gestion de la mémoire | Alloue et libère la RAM |
| Gestion du stockage | Accès aux fichiers sur disque dur |
| Gestion des fichiers | Organise les données en fichiers et dossiers |
| Gestion des périphériques | Communication avec clavier, souris, imprimante |
| Sécurité | Gestion des utilisateurs et des permissions |
| Réseau | Gestion des connexions réseau |
Composants d'un OS
OS
├── Noyau (Kernel) — le cœur de l'OS
│ ├── Pilotes matériels (drivers)
│ ├── Gestion mémoire
│ └── Appels système
└── Couche Application
├── Interface graphique (GUI) — optionnelle
└── Outils en ligne de commande (CLI)
Kernel = le composant qui communique directement avec le matériel. Les applications ne parlent JAMAIS directement au matériel — elles passent par le kernel.
2. Linux vs UNIX vs Windows vs macOS
| UNIX | Linux | Windows | macOS | |
|---|---|---|---|---|
| Création | 1970 (Bell Labs) | 1991 (Linus Torvalds) | 1985 (Microsoft) | 2001 (Apple) |
| Open source | ❌ | ✅ | ❌ | ❌ (partiellement) |
| POSIX | Référence | ✅ Compatible | Partiel | ✅ Compatible |
| Usage serveur | Rare | Dominant | Minoritaire | Rare |
Pourquoi Linux domine les serveurs ?
- Gratuit et open source — pas de coût de licence
- Stable et fiable — conçu pour tourner 24/7
- Léger — fonctionne sans interface graphique
- Sécurisé — modèle de permissions strict
- Technologies cloud-native — Docker, Kubernetes, Terraform fonctionnent nativement sur Linux
3. Distributions Linux
Le kernel Linux est commun à toutes les distributions. Une distribution (distro) = kernel + outils + gestionnaire de paquets + interface.
Les deux grandes familles
Debian-based Red Hat-based
───────────────────── ─────────────────────
Ubuntu ──► APT / apt-get RHEL ──► YUM / DNF
Debian ──► APT CentOS ──► YUM
Mint ──► APT Fedora ──► DNF
Les distros de la même famille utilisent le même gestionnaire de paquets. À l'intérieur d'une famille, les différences sont minimes.
Choix de la distribution
- Ubuntu → recommandé pour débuter, vaste communauté, LTS (Long Term Support)
- CentOS/RHEL → environnements d'entreprise
- Debian → stabilité maximale
- Fedora → fonctionnalités récentes (version "lab" de Red Hat)
4. Virtualisation et Machines Virtuelles
Qu'est-ce qu'une VM ?
Une machine virtuelle (VM) = un ordinateur virtuel qui s'exécute sur un ordinateur physique réel.
Ordinateur physique (Host)
├── OS hôte (ou bare metal)
└── Hyperviseur
├── VM 1 (Guest OS: Ubuntu)
├── VM 2 (Guest OS: CentOS)
└── VM 3 (Guest OS: Windows Server)
Types d'hyperviseurs
| Type | Description | Exemples |
|---|---|---|
| Type 1 — Bare Metal | Installé directement sur le matériel, pas d'OS hôte | VMware ESXi, Microsoft Hyper-V |
| Type 2 — Hosted | S'exécute sur un OS hôte existant | VirtualBox, VMware Workstation |
Type 1 (Bare Metal) Type 2 (Hosted)
──────────────────── ────────────────────
VM1 VM2 VM3 VM1 VM2
│ │
Hyperviseur Hyperviseur
│ │
Matériel OS Hôte (Windows/Mac)
│
Matériel
Avantages de la virtualisation
| Avantage | Détail |
|---|---|
| Isolation | Chaque VM est isolée — une panne n'affecte pas les autres |
| Agilité | Créer/démarrer/arrêter une VM en quelques secondes |
| Économies | Plusieurs VMs sur un seul serveur physique |
| Portabilité | Image VM (VMI) déplaçable entre machines |
| Tests | Tester sans risquer le système de production |
5. Pourquoi apprendre Linux pour DevOps ?
DevOps ──► Serveurs ──► 90% tournent sous Linux
│
├── Installation de logiciels (Docker, Kubernetes, Java...)
├── Configuration (fichiers de config, services)
├── Gestion des processus et services
├── Surveillance (logs, métriques)
└── Scripts d'automatisation (Bash)
- Docker = utilise le kernel Linux directement (namespaces, cgroups)
- Kubernetes = orchestration sur clusters Linux
- CI/CD (Jenkins, GitLab CI) = exécute des pipelines sur des agents Linux
- AWS/Azure/GCP = toutes les VMs cloud tournent par défaut sur Linux
À retenir
- Linux = 1991, Linus Torvalds, noyau open source, compatible POSIX
- OS = couche d'abstraction entre matériel et applications
- Kernel = cœur de l'OS qui pilote le matériel via des drivers
- GUI = optionnel sur Linux ; les serveurs n'en ont pas besoin
- Distro = kernel Linux + outils + gestionnaire de paquets
- Debian-based → APT ; Red Hat-based → YUM/DNF
- Hyperviseur Type 1 = bare metal (VMware ESXi) ; Type 2 = hosted (VirtualBox)
- VM = isolation, agilité, économies, portabilité