Was sind ld-linux.so.2 und linux-gate.so.1?
Wenn ich ldd program
ich erhalte eine Ausgabe der form
linux-gate.so.1 => (0xb77ae000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0xb76bc000)
libm.so.6 => /lib/libm.so.6 (0xb7691000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7674000)
libc.so.6 => /lib/libc.so.6 (0xb74c2000)
/lib/ld-linux.so.2 (0xb77af000)
Können Sie erklären, die Ausgabe und der Grund linux-gate.so.1
und ld-linux.so.2
zeigen, anders als die anderen Einträge? Was sind Ihre Rollen?
InformationsquelleAutor der Frage e271p314 | 2013-11-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hoffe, dass Sie nicht, Fragen über die wichtigsten Einträge, die besagt, dass für die angeforderte Bibliothek
libm.so.6
es wurde gefunden in der Datei/lib/libm.so.6
zum Beispiel, aber Fragen Sie die beiden Ausreißer.Warum sind Sie unterschiedlich angezeigt? für
linux-gate.so.1
es ist, weil es nicht tatsächlich eine Datei auf der Festplatte - ausgesetzt ist, die vom kernel als der Mechanismus, Systemaufrufe. Für/lib/ld-linux.so.2
es ist, denn dies ist die Programm - interpreter, der verwendet wird, für die eigentlich die Anwendung ausgeführt wird.Es ist eine ziemlich gute Blogeintrag Beschreibung der linux-gate.so, und es erklärt es ziemlich gut.
Für
/lib/ld-linux.so.2
haben Sie wenig zu verstehen, was passiert, wenn Sie zum Start ein ELF-Binärdatei. Die kurze Antwort ist, dass der kernel-handler für diese Arten von Binärdateien verwendet diese Datei für die Zwecke der Start der Anwendung.Der Hauptzweck dieses Programms ist die Karte der binary in den Speicher zu laden, werden alle referenzierten Bibliotheken in das Programm (z.B. der libm.so.6 bereits erwähnt), und dann von hand aus-Steuerung, um die Startadresse der binären ausgeführt wird.
Dieses Programm ist definiert als Teil der Aufbau der ELF-Datei, in der
INTERP
Abschnitt der Programm-header. Für 32bit-linux-binaries, das ist der typische name der 32-bit-interpreter. Für 64-bit-binaries, werden Sie feststellen, es ist in der Regel genanntld-linux-x86_64.so.2
(für 64-bit-x86-Plattformen).Können Sie bestimmen, welche dieser Informationen sich mit
readelf -l
und die INTERP Abschnitt:InformationsquelleAutor der Antwort Petesh