www.wikidata.de-de.nina.az
Das Executable and Linking Format kurz ELF beschreibt das Standard Binarformat ausfuhrbarer Programme Bibliotheken und von Speicherauszugen unter vielen UNIX ahnlichen Betriebssystemen wie beispielsweise Linux oder FreeBSD es wird aber mittlerweile auch von anderen Systemen verwendet Inhaltsverzeichnis 1 Geschichte 2 Technische Eigenschaften 2 1 Aufbau 2 2 Dateitypen 2 2 1 Executable 2 2 2 Relocatable 2 2 3 Shared object 3 FatELF Universal Binaries for Linux 4 Literatur 5 Weblinks 6 EinzelnachweiseGeschichte BearbeitenDas Format wurde ursprunglich von den Unix System Laboratories entwickelt und wurde 1993 vom Tool Interface Standard Committee im Rahmen des Tool Interface Standard TIS als Standard fur ausfuhrbare Programme akzeptiert 1995 wurde das Format in Linux eingefuhrt da es schneller und flexibler als die fruher verwendeten Formate a out und COFF war Technische Eigenschaften BearbeitenBesonderheiten dieses Formats sind unter anderem das dynamische Linken und Laden die problemlose Kontrolle von bereits laufenden Programmen und die einfache Moglichkeit dynamische Bibliotheken zu erzeugen Dabei ist die Reprasentation der Kontrolldaten im Gegensatz zu anderen proprietaren Formaten in einer ELF Datei stets plattformunabhangig Es bietet ferner die Moglichkeit Objektdateien zu identifizieren zu parsen und sie gleichzeitig zu interpretieren also auszufuhren Das ELF Format bietet nicht die Moglichkeit von Fat Binaries d h Code fur mehr als eine Zielplattform etwa x86 und ARM in derselben Binardatei zu speichern Eine ELF Erweiterung namens FatELF die diese Fahigkeit nachrustet hat sich bis heute nicht durchsetzen konnen 1 2 Die Laufzeitbibliothek libelf ist ein nutzlicher Helfer um ELF Dateien zu handhaben beispielsweise Informationen auszulesen Aufbau Bearbeiten Eine ELF Datei kann aus bis zu funf Teilen bestehen Kopfinformationen ELF header Programmkopf Tabelle program header table Sektionskopf Tabelle section header table die Sektionen ELF sections die Segmente ELF segment Dateitypen Bearbeiten Die drei Hauptarten von ELF Dateien sind executable relocatable shared objectAlle Dateitypen beinhalten den Code die Daten und Informationen uber das Programm das Betriebssystem und uber den Linker der zur Laufzeit benotigt wird Executable Bearbeiten Dieser Dateityp enthalt ein Programm und liefert die notigen Informationen fur das Betriebssystem um es im virtuellen Adressraum eines Prozesses richtig zu platzieren Relocatable Bearbeiten Dieser Dateityp beschreibt wie er mit anderen Objektdateien verlinkt werden muss damit daraus eine ausfuhrbare Datei oder eine dynamische Bibliothek produziert werden kann Shared object Bearbeiten Dieser Dateityp beinhaltet Informationen die fur das statische und dynamische Linken von Bedeutung sind wird aber auch fur Executables mit positionsunabhangigem Code verwendet FatELF Universal Binaries for Linux Bearbeiten nbsp Logo der Linux Fat Binary Implementier ung FatELFFatELF ist eine ELF Binarformat Erweiterung entwickelt von Ryan C Gordon welche Fat binary Fahigkeiten hinzufugt 3 Neben verschiedenen CPU Architekturen mit variierenden Datenwortgrossen beispielsweise 32 Bit oder 64 Bit Systeme oder Byte order konnen auch Software Plattformvariationen unterstutzt werden wie verschiedene OS ABIs oder Versionen Eine Beispielimplementierung fur Ubuntu 9 04 ist verfugbar Eine Integration in den Linuxkernel steht noch aus 1 2 4 Literatur BearbeitenRyan O Neill Learning Linux Binary Analysis Packt Publishing Birmingham 2016 ISBN 978 1 78216 710 5 Dennis Andriesse Practical Binary Analysis No Starch Press San Francisco 2019 ISBN 978 1 59327 912 7 Weblinks Bearbeitenlibelf Eintrag im Free Software Directory Tool Interface Standard TIS Executable and Linking Format ELF Specification Version 1 2 PDF Datei 337 kB Einzelnachweise Bearbeiten a b Thom Holwerda Ryan Gordon Halts FatELF Project osnews com 3 November 2009 abgerufen am 5 Juli 2010 a b Joe Brockmeier SELF Anatomy of an alleged failure Linux Weekly News 23 Juni 2010 abgerufen am 6 Februar 2011 Ryan Gordon fatelf specification v1 icculus org abgerufen am 25 Juli 2010 Ryan Gordon FatELF Turns out I liked the uncertainty better icculus org abgerufen am 13 Juli 2010 Abgerufen von https de wikipedia org w index php title Executable and Linking Format amp oldid 206226227