Die vier Datensätze haben unterschiedliche Berechtigungen, sodass sie nicht zusammengeführt werden können.
- Der
r-xp
Eintrag beschreibt einen Block des ausführbaren Speichers ( x
Berechtigungsflag). Das ist der Code.
- Der
r--p
Eintrag beschreibt einen Speicherblock, der nur lesbar ist ( r
Berechtigungsflag). Das sind statische Daten (Konstanten).
- Der
rw-p
Eintrag beschreibt einen beschreibbaren Speicherblock ( w
Berechtigungsflag). Dies gilt für globale Variablen der Bibliothek.
- Der
---p
Eintrag beschreibt einen Teil des Adressraums, für den keine Berechtigungen (oder ein ihm zugeordneter Speicher) vorhanden sind.
Alle sind privat ( p
Flag). Wenn also ein Prozess eine Seite ändert (was nur für den beschreibbaren Teil möglich ist), wird diese Seite kopiert (Copy-on-Write) und andere Prozesse werden nicht geändert.
Dieser letzte Eintrag ist eine Lücke zwischen dem Codesegment und dem Datensegment, die vom GNU-Linker unter bestimmten Umständen explizit eingefügt wird. Mit dieser Lücke soll sichergestellt werden, dass sich der Code (gemeinsam nutzbar zwischen Prozessen, die dieselbe Bibliothek verwenden) und die beschreibbaren Daten (nicht gemeinsam nutzbar) niemals auf derselben Seite befinden. Die Größe der Lücke beträgt 2 MB, da dies die größte Seitengröße¹ ist, die Linux für Ihre Architektur verwendet (amd64). Siehe Was ist der Zweck von scheinbar unbrauchbaren Speicherzuordnungen unter Linux? für mehr Details.
¹ Die meisten Seiten haben eine Größe von 4 KB, was der „normalen“ Seitengröße entspricht. Es kann jedoch Seiten geben, die weniger MMU-Indirektionen verwenden. Dies ist etwas schneller, verschwendet jedoch viel Speicherplatz, es sei denn, die Anwendung verwendet tatsächlich sehr große Speicherblöcke. Linux nennt diese riesigen Seiten .
Quelle und weitere Informationen für die nicht zugeordnete Lücke: Warum verwendet das Gnome-Panel 290 MB? von RJK. Siehe auch den Eintrag /proc/PID/maps
in der Linux - Kernel - Dokumentation , Grundlegendes zu Linux / proc / id / Karten und / proc / $ pid / Karten zeigen Seiten ohne rwx Berechtigungen für x86_64 Linux auf Stack - Überlauf.
Gilles 'SO - hör auf böse zu sein'
quelle