Un programme constituant
En apprenant le développement d'applications Linux, rencontrent souvent les concepts suivants: segment de code, segment de données, le segment BSS et ainsi de suite. BSS (bloc de démarrage par symbole, également connu sous le nom: segment de données non initialisées), Heap (tas), pile (stack), qui font également partie d'une partie importante des applications Linux.
En second lieu, la mise en page de mémoire
Lorsque les applications en cours d'exécution Linux dans la mémoire, plus d'un composant dans le plan de la mémoire pour le mode de réalisation selon la Fig.
De bas à des adresses plus élevées sont les suivants: un segment de code, le segment de données, le segment BSS, tas, pile,
Stack pousse vers une plus grande adresse mémoire
La croissance de l'adresse de mémoire de pile faible
En troisième lieu, écrire du code pour afficher le programme chaque adresse de segment
Modifier le code suivant: addr.c
Grab informations sur la mémoire:
-
Snippet situé 400000--401000
-
segments de données sont situés 600000 à -601000
-
le segment situé BSS 601000--602000
-
espace situé Heap 6ab000 - 6cc000
-
espace de pile d'adresses est très élevé
Quatrièmement, la section de stockage variable de supplément
section .data:
-
Global, initialisé
-
Global, statique et initialisé
-
initialisation locale, statique
Section .bss:
-
Mondial, non initialisé
-
Global, statique, non initialisée
-
Local, statique, non initialisé
le segment .code:
-
La constante globale (const)
-
constante de chaîne
Section .stack:
-
initialisation locale
-
Local, non initialisé
-
Topique, constante (const)
le segment .heap:
-
allocation malloc des variables locales
Remarque:
les procédures d'allocation de mémoire peuvent être lues par les commandes suivantes:
les données de répartition peuvent être analysées par la section de sortie.