Leçon 13 : Espace d'adressage virtuel
Chaque processus Linux voit son propre espace d'adressage virtuel — l'illusion d'une mémoire privée. Cette leçon explique la disposition du VAS (text/data/heap/stack/mmap), montre comment lire /proc/self/maps, et explique pourquoi l'ASLR est importante pour la sécurité.
Un espace d'adressage virtuel, c'est comme une maison de numéros : chaque processus pense avoir une immense maison rien qu'à lui, mais l'OS traduit ces numéros en véritables adresses physiques.
- espace d'adressage virtuel (VAS)
- L'espace d'adressage privé que reçoit chaque processus. Les adresses virtuelles sont traduites en adresses physiques par le MMU.
- stack
- Une région mémoire qui croît vers le bas (vers des adresses plus basses). Elle contient les variables locales, les adresses de retour et les frames de fonctions. Sa taille est limitée.
- heap
- Région mémoire dynamique qui croît vers le haut. Gérée par malloc/new. Nécessite une libération explicite ou un garbage collection.
- région mmap
- Une région créée par l'appel système mmap() — elle contient les bibliothèques partagées (.so), les fichiers mappés en mémoire et les mappings anonymes.
- ASLR
- Address Space Layout Randomisation — l'OS randomise les adresses de chargement de stack/heap/mmap à chaque exécution pour rendre l'exploitation des vulnérabilités plus difficile.