Linux Executables werden in der Regel aus einzelnen Modulen zusammengesetzt und sie sind von abh ngig von Shared Libraries.
Dieses Buch besch ftigt sich mit den verschiedenen Aspekten der Erzeugung all dieser Arten von Bin r-Datei und deren wechselseitigen Zusammenh ngen und Abh ngigkeiten. Insbesondere werden Shared Objects im Detail behandelt, die die Basis f r die meisten Linux Softwarepakete bilden, und die dynamisch, zur Laufzeit, geladen werden k nnen. Dabei werden auch die diversen Suchmechanismen und Methoden zur Versionsverwaltung untersucht.
Als Hauptwerkzeug f r diese Untersuchungen dient dabei der GNU C-Compiler GCC. Neben seiner offensichtlichen Aufgabe, der Erzeugung von Maschinen-Code, erf llt GCC auch die Funktion eines Linkers, der einzelne Object-Module zur Executables oder Shared Objects vereinigt. Dazu geh rt auch die Aufl sung externen Symbole der verschiedenen Objects. Dieser Prozess, der Relocation genannt wird, erweist sich im Detail als recht komplex, gerade wenn Thread lokale Variablen involviert sind.
Da dieser Prozess auf der direkten Modifikation von Maschinen-Code beruht, wird auch ein kurzer Exkurs ber Assembler eingeschoben, um das Verst ndnis dieser Verfahren zu untermauern.
Linux Bin r-Dateien haben ein einheitliches Format: ELF (Executable and Linking Format). Somit sind ELF-Analyse-Tools wichtige Hilfsmittel zur Beobachtung und zum Verst ndnis von Linker Operationen.
In dem Buch werden die angesprochenen Themen stets auf der Basis von Untersuchungen dargestellt, auf vollst ndig durchgef hrten Beispielen basieren, so dass die erl uterten Ph nomene vom Leser stets nachvollzogen werden k nnen.
Um die Darstellung trotzdem nicht ausufern zu lassen, beschr nken sich die Untersuchungen auf die x86-64 Architektur, abgesehen von einem kurzen Ausflug in den 32-Bit Modus.