Chapitre 1.4 - Architecture de Haut Niveau
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre la structure d'un système Linux
- Identifier les composants du Kernel
- Identifier les composants de l'Espace Utilisateur
- Comprendre la communication entre les composants
Introduction
Un système Linux est organisé en plusieurs couches qui travaillent ensemble. Comprendre cette architecture est essentiel pour maîtriser Linux.
Vue d'Ensemble d'un Système
Structure de Base
Deux espaces principaux:
- Espace Utilisateur: Applications et programmes utilisateur
- Espace Kernel: Gestion système et matériel
Espace Utilisateur (User Space)
Applications
Programmes que vous utilisez:
- Navigateurs web
- Éditeurs de texte
- Outils de développement
- Jeux, etc.
Shell
Interface ligne de commande:
- Bash: Shell par défaut sur la plupart des distributions
- Zsh: Shell moderne et puissant
- Fish: Shell convivial
Bibliothèques
Fonctions partagées:
- libc: Bibliothèque C standard
- Autres: Bibliothèques spécialisées
Services
Programmes en arrière-plan:
- systemd: Gestionnaire de services
- cron: Planification de tâches
- sshd: Serveur SSH
Espace Kernel (Kernel Space)
Kernel Linux
Le cœur du système:
- Gestion Processus: Création, planification, terminaison
- Gestion Mémoire: Allocation, swap, protection
- Système Fichiers: VFS, gestion des fichiers
- Gestion Réseau: Stack TCP/IP, interfaces
- Gestion Périphériques: Pilotes matériel
Appels Système (Syscalls)
Interface entre User Space et Kernel Space:
open(),read(),write(): Fichiersfork(),exec(): Processussocket(),bind(): Réseaummap(): Mémoire
Communication Entre Couches
Flux Typique
Composants Matériel
CPU
- Exécution des instructions
- Gestion des processus
- Planification (scheduler)
Mémoire RAM
- Stockage temporaire
- Données et code en cours d'exécution
- Cache système
Disque Dur
- Stockage persistant
- Système de fichiers
- Swap (extension RAM)
Réseau
- Interfaces réseau
- Communication avec autres systèmes
- Protocoles réseau
Séparation User/Kernel Space
Pourquoi cette Séparation?
Sécurité:
- Applications ne peuvent pas accéder directement au matériel
- Protection contre les erreurs
- Isolation des processus
Stabilité:
- Erreur dans une application n'affecte pas le kernel
- Système reste stable même si une app plante
Performance:
- Kernel optimisé pour le matériel
- Applications peuvent être moins optimisées
Résumé
Dans ce chapitre, vous avez appris:
Architecture: User Space + Kernel Space + Matériel
User Space: Applications, Shell, Bibliothèques, Services
Kernel Space: Kernel Linux, Appels Système, Gestion ressources
Communication: Via appels système (syscalls)
Séparation: Sécurité, stabilité, performance
Matériel: CPU, RAM, Disque, Réseau
Prochaines Étapes
Chapitre 1.5: Concepts Fondamentaux
Chapitre 1.6: Installation et Première Utilisation
Chapitre créé le: Décembre 2024