Système d'exploitation : concepts fondamentaux
Définition
Un système d'exploitation (OS) est le logiciel principal qui gère le matériel, les ressources et fournit une interface entre l'utilisateur, les applications et le matériel. Il assure l'abstraction du matériel, la gestion des processus, de la mémoire, du stockage, des périphériques et de la sécurité.
Fonctions principales
- Gestion des processus : ordonnancement, création/fin, communication inter-processus, priorités
- Gestion de la mémoire : allocation/libération, mémoire virtuelle, pagination, segmentation, protection
- Gestion du stockage : systèmes de fichiers (NTFS, ext4, APFS, FAT32), répertoires, permissions, quotas
- Gestion des périphériques : pilotes (drivers), entrées/sorties, plug-and-play, gestion d'énergie
- Interface utilisateur : ligne de commande (CLI), interface graphique (GUI), API pour applications
- Sécurité et contrôle d'accès : comptes, groupes, permissions, audit, chiffrement, pare-feu intégré
Types de systèmes d'exploitation
- Monoutilisateur / monotâche : MS-DOS (historique)
- Monoutilisateur / multitâche : Windows 9x, macOS classique
- Multiutilisateur / multitâche : Linux, UNIX, Windows NT/2000/XP/7/10/11, Windows Server, macOS, FreeBSD
- Temps réel (RTOS) : VxWorks, QNX, FreeRTOS (systèmes embarqués, industriels)
- Mobile : Android (Linux), iOS (Darwin/BSD)
- Serveur / cloud : Linux (Ubuntu Server, RHEL, Debian), Windows Server, VMware ESXi, Proxmox
Architecture noyau
- Monolithique : Linux, UNIX traditionnels (tout dans le noyau : pilotes, FS, réseau)
- Micro-noyau : MINIX, QNX, Windows NT (noyau minimal, services en espace utilisateur)
- Hybride : Windows (NT kernel), macOS (XNU = Mach + BSD), DragonFly BSD
Processus, threads et services
- Processus : programme en exécution, espace mémoire isolé, PID, ressources allouées
- Thread : unité d'exécution légère au sein d'un processus, partage mémoire et ressources
- Service / démon : processus en arrière-plan, démarrage au boot, pas d'interface utilisateur (systemd, services Windows, launchd)
Gestion de la mémoire
- Mémoire physique : RAM installée
- Mémoire virtuelle : abstraction, espace d'adressage par processus, pagination (pages 4 Ko typiquement)
- Fichier d'échange / swap : extension sur disque, plus lente, évite les OOM (Out Of Memory)
- Cache disque : RAM inutilisée mise à profit pour accélérer les E/S disque
Systèmes de fichiers courants
| OS principal | FS natif | Caractéristiques |
|---|---|---|
| Windows | NTFS | Journalisé, permissions ACL, chiffrement EFS, compression, quotas |
| Linux | ext4 | Journalisé, étendu, fiable, standard |
| Linux | Btrfs / ZFS | Snapshots, compression, déduplication, RAID natif |
| macOS | APFS | Snapshots, chiffrement natif, optimisé SSD, clones |
| Multi | FAT32 / exFAT | Compatibilité universelle, pas de permissions, limite taille fichier |
Démarrage (boot)
- POST (Power-On Self-Test) : firmware BIOS/UEFI teste le matériel
- Chargeur de démarrage : GRUB (Linux), Windows Boot Manager, rEFInd
- Noyau : initialisation matériel, montage racine, lancement init (systemd, launchd, init SysV)
- Espace utilisateur : services, interface graphique, invite de connexion