Unterschied zwischen Programm-header und Section-Header in ELF
Q1 Was ist der Unterschied zwischen Programm-header und Section-Header in ELF
Q1.1 Was ist der Unterschied zwischen segment und ein Abschnitt?
Ich glaube pheaders Punkt-zu-Abschnitten nur.
Q2. Was ist der Unterschied zwischen Datei-Header und die Programm-Header
Gemäß gnu ld linker script, Mithilfe Id: GNU Linker:
PHDRS
{
name type [ FILEHDR ] [ PHDRS ] [ AT ( address ) ]
[ FLAGS ( flags ) ] ;
}
Können Sie die FILEHDR und PHDRS keywords angezeigt werden, nachdem die Programm-header-Typ weiter
beschreiben Sie den Inhalt des Segments. Die FILEHDR keyword bedeutet, dass das segment beinhalten sollte
die ELF-le-header. Die PHDRS keyword bedeutet, dass das segment sollte die ELF-Programm
Header selbst
This is a bit confusing
- Abschnitt-vs-segment: stackoverflow.com/questions/14361248/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Ausführbare & Linkable Format Wikiseite hat ein schönes Bild zu erklären, ELF, und der Unterschied zwischen den Programm-header & Abschnitte header. Siehe auch elf(5)
Den [ersten] Programm-header definiert Segmente (die in der Adresse Raum einer Prozess ausgeführt, dass ELF executable) projiziert in virtueller Speicher (die ausführbare Datei point of view) bei execve(2) Zeit. Die [Letzte] Abschnitte header definieren von Abschnitten (das linkable Sicht, für ld(1) etc...). Jeder Abschnitt gehört einem segment (und kann, oder nicht, sichtbar sein, d.h. in den Speicher gemappt sind - zum Zeitpunkt der Ausführung). Die ELF-Datei-header sagt, wo Programm-header-Tabellen & Abschnitt Kopfzeile der Tabelle sind.
Verwenden auch objdump(1) und readelf(1) zu erforschen mehrere ELF-Dateien (ausführbare Dateien, shared objects, verknüpfbare Objekte) bestehenden auf Ihrem Linux-system.
Levine Linkers & Lader Buch hat ein Kapitel zu erklären, dass in details.
Drepper und Papier Wie Schreibt man Shared Libraries hat auch einige gute Erklärung.