Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Executable and Linking Format – Wikipedia
Executable and Linking Format – Wikipedia
aus Wikipedia, der freien Enzyklopädie

Das Executable and Linking Format (kurz: ELF) beschreibt das Standard-Binärformat ausführbarer Programme, Bibliotheken und von Speicherauszügen unter vielen UNIX-ähnlichen Betriebssystemen wie beispielsweise Linux oder FreeBSD; es wird aber mittlerweile auch von anderen Systemen verwendet.

Geschichte

[Bearbeiten | Quelltext bearbeiten]

Das Format wurde ursprünglich von den Unix System Laboratories entwickelt und wurde 1993 vom Tool Interface Standard Committee im Rahmen des Tool Interface Standard (TIS) als Standard für ausführbare Programme akzeptiert. 1995 wurde das Format in Linux eingeführt, da es schneller und flexibler als die früher verwendeten Formate a.out und COFF war.

Technische Eigenschaften

[Bearbeiten | Quelltext bearbeiten]

Besonderheiten dieses Formats sind unter anderem das dynamische Linken und Laden, die problemlose Kontrolle von bereits laufenden Programmen und die einfache Möglichkeit, dynamische Bibliotheken zu erzeugen. Dabei ist die Repräsentation der Kontrolldaten im Gegensatz zu anderen proprietären Formaten in einer ELF-Datei stets plattformunabhängig. Es bietet ferner die Möglichkeit, Objektdateien zu identifizieren, zu parsen und sie gleichzeitig zu interpretieren, also auszuführen.

Das ELF-Format bietet nicht die Möglichkeit von Fat Binaries, d. h. Code für mehr als eine Zielplattform (etwa x86 und ARM) in derselben Binärdatei zu speichern. Eine ELF-Erweiterung namens FatELF, die diese Fähigkeit nachrüstet, hat sich bis heute nicht durchsetzen können.[1][2]

Die Laufzeitbibliothek libelf ist ein nützlicher Helfer, um ELF-Dateien zu handhaben, beispielsweise Informationen auszulesen.

Aufbau

[Bearbeiten | Quelltext bearbeiten]

Eine ELF-Datei besteht üblicherweise aus folgenden Teilen:

  • Kopfinformationen (ELF header)
  • Programmkopf-Tabelle (program header table) mit der Beschreibung der zu ladenden Segmente
  • die Sektionen (ELF sections), welche unter anderem Code und Daten beinhalten
  • Sektionskopf-Tabelle (section header table)

Dateitypen

[Bearbeiten | Quelltext bearbeiten]

Die drei Hauptarten von ELF-Dateien sind

  • executable
  • relocatable
  • shared object

Alle Dateitypen beinhalten den Code, die Daten und Informationen über das Programm, sowie die Zielarchitektur und -betriebssystem.

Executable

[Bearbeiten | Quelltext bearbeiten]

Dieser Dateityp enthält ein Programm und liefert die nötigen Informationen für das Betriebssystem, um es im virtuellen Adressraum eines Prozesses richtig zu platzieren.

Relocatable

[Bearbeiten | Quelltext bearbeiten]

Dieser Dateityp beschreibt, wie er mit anderen Objektdateien verlinkt werden muss, damit daraus eine ausführbare Datei oder eine dynamische Bibliothek produziert werden kann.

Shared object

[Bearbeiten | Quelltext bearbeiten]

Dieser Dateityp beinhaltet Informationen, die für das dynamische Linken von Bibliotheken (shared libraries) notwendig sind, wird aber auch für Executables mit positionsunabhängigem Code verwendet.

FatELF: Universal Binaries for Linux

[Bearbeiten | Quelltext bearbeiten]
Logo der Linux-Fat-Binary-Implementier­ung FatELF

FatELF ist eine ELF-Binärformat-Erweiterung, entwickelt von Ryan C. Gordon, welche Fat-binary-Fähigkeiten hinzufügt.[3] Neben verschiedenen CPU-Architekturen mit variierenden Datenwortgrößen (beispielsweise 32-Bit- oder 64-Bit-Systeme) oder Byte-order können auch Software-Plattformvariationen unterstützt werden, wie verschiedene OS-ABIs (oder Versionen). Eine Beispielimplementierung für Ubuntu 9.04 ist verfügbar. Eine Integration in den Linuxkernel steht noch aus.[1][2][4]

Literatur

[Bearbeiten | Quelltext bearbeiten]
  • Ryan 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

[Bearbeiten | Quelltext bearbeiten]
  • libelf Eintrag im Free Software Directory
  • Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification Version 1.2 (PDF-Datei; 337 kB)

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ a b Thom Holwerda: Ryan Gordon Halts FatELF Project. osnews.com, 3. November 2009, abgerufen am 5. Juli 2010. 
  2. ↑ a b Joe Brockmeier: SELF: Anatomy of an (alleged) failure. Linux Weekly News, 23. Juni 2010, abgerufen am 6. Februar 2011. 
  3. ↑ Ryan Gordon: fatelf-specification v1. icculus.org, abgerufen am 25. Juli 2010. 
  4. ↑ Ryan Gordon: FatELF: Turns out I liked the uncertainty better. icculus.org, abgerufen am 13. Juli 2010. 
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Executable_and_Linking_Format&oldid=253991230“
Kategorie:
  • Binärformat für ausführbare Programme, Bibliotheken und/oder Objektcode
Versteckte Kategorie:
  • Wikipedia:Vorlagenfehler/Vorlage:Cite web/temporär

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id