La gestion de la mémoire d'un exécutable sur GNU/Linux
Table des matières
- Introduction
- Segment texte
- Segment de données et le segement bss
- Segment tas
- Segment pile
- Schéma de la mémoire
- Voir les variables en mémoire
Introduction
Cette partie permet de configurer l'environnement DSL pour avoir un meilleur confort au niveau de la francisation et d'obtenir un compte utilisateur normal.
Segment texte
Le segment texte qui est en lecture seul, il permet de stocker du code (instruction principale pour le fonctionnement du programme), une modification dans cette zone provoque un plantage.
Segement de données et le segment bss
Le segment de données et bss servent à stocker des variables globales et statiques.
Les variables globales et statiques initialisées sont stockées dans le segment de données.
Les variables non initialisées sont stockées dans le segment bss.
L'écriture est autorisée, les segments ont une taille figée.
Segment tas
Permet d'allouer des blocs mémoire, sa taille n'est pas figée, donc il peut diminuer ou grandir suivant les besoins.
L'allocation ou la suppression de blocs mémoire s'effectue par le programmeur.
Les tas diminue ou augmente suivant la réservation de la mémoire.
L'augmentation du tas se fait vers le bas, vers les adresses de mémoire haute (voire le schéma).
Segment pile
Le segment pile à aussi une taille variable. Il sert de zone de stockage pour les variables local des fonctions.
Les variables sont empilées et dépilées en mode FIFO (first-in, last out), le premier entré est le premier sorti.
Schéma de la mémoire
Voici le schéma de la mémoire
Voire les variables en mémoire
Je vous donne les codes source d'un programme qui permet de voir ou se trouve les différentes variable me mémoire.
segmentmemoire.c