Als «dynamic-linking» getaggte Fragen

Beim Rechnen ist eine dynamische Verknüpfung der Prozess eines Betriebssystems (OS), das die gemeinsam genutzten Bibliotheken, die zur Laufzeit von einer ausführbaren Datei benötigt werden, lädt (Kopien vom persistenten Speicher in den RAM) und verknüpft (Sprungtabellen füllt und Zeiger verschiebt). wenn es ausgeführt wird.

2
Wie kann der Dynamic Linker / Loader selbst dynamisch verknüpft werden, wie von "file" gemeldet?
Betrachten wir die gemeinsame Objekt Abhängigkeiten /bin/bash, die umfaßt /lib64/ld-linux-x86-64.so.2(dynamische Linker / loader): ldd /bin/bash linux-vdso.so.1 (0x00007fffd0887000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f57a04e3000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f57a04de000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f57a031d000) /lib64/ld-linux-x86-64.so.2 (0x00007f57a0652000) Inspektion /lib64/ld-linux-x86-64.so.2zeigt, dass es sich um einen Symlink handelt zu /lib/x86_64-linux-gnu/ld-2.28.so: ls -la /lib64/ld-linux-x86-64.so.2 lrwxrwxrwx 1 root root 32 …

3
Finden Sie heraus, ob sich die Bibliothek im Pfad befindet
Angenommen, ich möchte testen, ob eine Bibliothek installiert und von einem Programm verwendbar ist. Ich kann verwenden ldconfig -p | grep mylib, um herauszufinden, ob es auf dem System installiert ist. aber was ist, wenn die Bibliothek nur über die Einstellung bekannt ist LD_LIBRARY_PATH? In diesem Fall kann das Programm …


2
Binärdatei kann in NixOS nicht ausgeführt werden - Keine solche Datei oder kein solches Verzeichnis
Ich habe versucht, das aktuelle Oracle JRE auf einer VM unter NixOS zu installieren. Nun passiert folgendes: [michas@cc:~]$ tar xvzf jre-7u40-linux-x64.tar.gz |grep bin/java jre1.7.0_40/bin/javaws jre1.7.0_40/bin/java_vm jre1.7.0_40/bin/java [michas@cc:~]$ ls -l ./jre1.7.0_40/bin/java -rwxr-xr-x 1 michas nogroup 7750 Aug 27 09:17 ./jre1.7.0_40/bin/java [michas@cc:~]$ ./jre1.7.0_40/bin/java bash: ./jre1.7.0_40/bin/java: No such file or directory WTF? Die …

2
ELF Shared Libraries - Motivation für das PLT
Könnte selbstmodifizierender Code verwendet werden, um den Funktionsaufruf in dynamisch verknüpften Bibliotheken zu beschleunigen? Soweit ich weiß, verwenden gemeinsam genutzte ELF-Bibliotheken eine Art indirekte Sprungtabelle (die Prozedurverknüpfungstabelle oder PLT), um eine verzögerte Bindung von Bibliotheksfunktionen zu ermöglichen. Der Zweck scheint darin zu bestehen, zu vermeiden, dass die Tabelle im Codesegment …


1
Welche Teile einer ausführbaren ELF-Datei werden wo in den Speicher geladen?
Was ich schon weiß: Eine ausführbare ELF-Datei besteht aus mehreren Abschnitten. Offensichtlich werden die Abschnitte .text und .data in den Speicher geladen, da dies die Hauptteile des Programms sind. Damit ein Programm funktioniert, benötigt es jedoch mehr Informationen, insbesondere wenn es dynamisch verknüpft ist. Was mich interessiert, sind Abschnitte wie …



2
Identifizieren laufender Programme, die die alte Version einer Bibliothek verwenden, die ich gerade ersetzt habe
Nachdem ich Updates installiert hatte, um CVE-2014-0160 (den OpenSSL Heartbleed- Fehler) zu beheben , musste ich darauf achten, alles neu zu starten, was möglicherweise libssl verwendet - viele Dienste wie Apache und meine VPN-Software hatten immer noch das alte anfällige libssl geladen und mein Paketmanager machte keinen Versuch, dies zu …




7
Wie kann man Umgebungsvariablen zwischen Shells wie Globals teilen, die mit einer Master-PID zusammenhängen?
Daher muss ich Umgebungsvariablen zwischen Shells austauschen und sicherstellen, dass die Änderungen an den Variablen von allen Shells wie globalen Variablen sofort erkannt werden. Sie müssen sich jedoch auf eine Master-PID beziehen, damit zwei Shell-Skripte ausgeführt werden können, von denen jedes ein Master mit demselben globalen Variablennamen ist. Untergeordnete Elemente …

2
gcc - unbekannte Schalter (auch in der Manpage nicht vorhanden)
Ich versuche mit gemeinsam genutzten Objekten zu experimentieren und habe das folgende Snippet auf http://www.gambas-it.org/wiki/index.php?title=Creare_una_Libreria_condivisa_(Shared_Library)_.so gefunden gcc -g -shared -Wl,-soname,libprimo.so.0 -o libprimo.so.0.0 primo.o -lc Ich habe mich in den Manpages und online umgesehen, aber ich habe nicht gefunden, was der -lcSchalter bewirkt. Kann mir jemand sagen?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.