<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Executable_and_Linking_Format</id>
	<title>Executable and Linking Format - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Executable_and_Linking_Format"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Executable_and_Linking_Format&amp;action=history"/>
	<updated>2026-05-18T09:00:05Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Executable_and_Linking_Format&amp;diff=97705&amp;oldid=prev</id>
		<title>imported&gt;Eriosw: Parameter language</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Executable_and_Linking_Format&amp;diff=97705&amp;oldid=prev"/>
		<updated>2026-02-01T09:56:33Z</updated>

		<summary type="html">&lt;p&gt;Parameter language&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das &amp;#039;&amp;#039;&amp;#039;Executable and Linking Format&amp;#039;&amp;#039;&amp;#039; (kurz: &amp;#039;&amp;#039;&amp;#039;ELF&amp;#039;&amp;#039;&amp;#039;) beschreibt das Standard-[[Binärdatei|Binärformat]] [[Ausführbare Datei|ausführbarer Programme]], [[Programmbibliothek|Bibliotheken]] und von [[Dump|Speicherauszügen]] unter vielen [[Unixoides System|UNIX-ähnlichen]] [[Betriebssystem]]en wie beispielsweise [[Linux]] oder [[FreeBSD]]; es wird aber mittlerweile auch von anderen Systemen verwendet.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
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 [[Common Object File Format|COFF]] war.&lt;br /&gt;
&lt;br /&gt;
== Technische Eigenschaften ==&lt;br /&gt;
Besonderheiten dieses Formats sind unter anderem das dynamische Linken und Laden, die problemlose Kontrolle von bereits laufenden Programmen und die einfache Möglichkeit, [[Bibliothek (Programmierung)|dynamische Bibliotheken]] zu erzeugen. Dabei ist die Repräsentation der Kontrolldaten im Gegensatz zu anderen [[proprietär]]en Formaten in einer ELF-Datei stets [[plattformunabhängig]]. Es bietet ferner die Möglichkeit, [[Objektdatei]]en zu identifizieren, zu [[Parser|parsen]] und sie gleichzeitig zu interpretieren, also auszuführen.&lt;br /&gt;
&lt;br /&gt;
Das ELF-Format bietet nicht die Möglichkeit von [[Fat binary|Fat Binaries]], d.&amp;amp;nbsp;h. Code für mehr als eine Zielplattform (etwa x86 und ARM) in derselben Binärdatei zu speichern. Eine ELF-Erweiterung namens [[#FatELF: Universal Binaries for Linux|FatELF]], die diese Fähigkeit nachrüstet, hat sich bis heute nicht durchsetzen können.&amp;lt;ref name=&amp;quot;kernel2&amp;quot;/&amp;gt;&amp;lt;ref name=selfanatomy/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Laufzeitbibliothek &amp;#039;&amp;#039;libelf&amp;#039;&amp;#039; ist ein nützlicher Helfer, um ELF-Dateien zu handhaben, beispielsweise Informationen auszulesen.&lt;br /&gt;
&lt;br /&gt;
=== Aufbau ===&lt;br /&gt;
Eine ELF-Datei besteht üblicherweise aus folgenden Teilen:&lt;br /&gt;
&lt;br /&gt;
* Kopfinformationen (ELF header)&lt;br /&gt;
* Programmkopf-Tabelle (program header table) mit der Beschreibung der zu ladenden Segmente&lt;br /&gt;
* die Sektionen (ELF sections), welche unter anderem Code und Daten beinhalten&lt;br /&gt;
* Sektionskopf-Tabelle (section header table)&lt;br /&gt;
&lt;br /&gt;
=== Dateitypen ===&lt;br /&gt;
Die drei Hauptarten von ELF-[[Datei]]en sind&lt;br /&gt;
&lt;br /&gt;
* executable&lt;br /&gt;
* relocatable&lt;br /&gt;
* [[Programmbibliothek|shared object]]&lt;br /&gt;
&lt;br /&gt;
Alle Dateitypen beinhalten den Code, die Daten und Informationen über das Programm, sowie die [[Prozessorarchitektur|Zielarchitektur]] und -[[betriebssystem]].&lt;br /&gt;
&lt;br /&gt;
==== Executable ====&lt;br /&gt;
Dieser Dateityp enthält ein Programm und liefert die nötigen Informationen für das Betriebssystem, um es im virtuellen Adressraum eines [[Prozess (Informatik)|Prozess]]es richtig zu platzieren.&lt;br /&gt;
&lt;br /&gt;
==== Relocatable ====&lt;br /&gt;
Dieser Dateityp beschreibt, wie er mit anderen Objektdateien verlinkt werden muss, damit daraus eine ausführbare Datei oder eine dynamische Bibliothek produziert werden kann.&lt;br /&gt;
&lt;br /&gt;
==== Shared object ====&lt;br /&gt;
Dieser Dateityp beinhaltet Informationen, die für das [[Dynamisches Linken|dynamische Linken]] von [[Programmbibliothek|Bibliotheken]] (&amp;#039;&amp;#039;shared libraries&amp;#039;&amp;#039;) notwendig sind, wird aber auch für Executables mit [[Position-independent Code|positionsunabhängigem Code]] verwendet.&lt;br /&gt;
&lt;br /&gt;
== FatELF: Universal Binaries for Linux ==&lt;br /&gt;
[[Datei:FatELF-logo.png|mini|hochkant=0.4|Logo der Linux-Fat-Binary-Implementier&amp;amp;shy;ung &amp;#039;&amp;#039;FatELF&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
FatELF ist eine ELF-Binärformat-Erweiterung, entwickelt von [[Ryan C. Gordon]], welche [[Fat binary|Fat-binary]]-Fähigkeiten hinzufügt.&amp;lt;ref name=&amp;quot;fatelfspec&amp;quot;&amp;gt;{{cite web|publisher=icculus.org| title=fatelf-specification v1| url=https://hg.icculus.org/icculus/fatelf/raw-file/tip/docs/fatelf-specification.txt| date= |language=en | accessdate=2010-07-25|last=Gordon| first=Ryan}}&amp;lt;/ref&amp;gt; Neben verschiedenen [[CPU#Verschiedene Architekturen|CPU-Architekturen]] mit variierenden [[Datenwort]]größen (beispielsweise 32-Bit- oder 64-Bit-Systeme) oder [[Byte-Reihenfolge|Byte-order]] können auch [[Plattform (Computer)|Software-Plattformvariationen]] unterstützt werden, wie verschiedene OS-[[Binärschnittstelle|ABIs]] (oder Versionen). Eine Beispielimplementierung für [[Ubuntu (Betriebssystem)|Ubuntu 9.04]] ist verfügbar. Eine Integration in den [[Linux (Kernel)|Linuxkernel]] steht noch aus.&amp;lt;ref name=&amp;quot;kernel2&amp;quot;&amp;gt;{{cite web|publisher=osnews.com| title=Ryan Gordon Halts FatELF Project| url=http://www.osnews.com/comments/22446|date=2009-11-03 |language=en |accessdate=2010-07-05|last=Holwerda|first=Thom}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=selfanatomy&amp;gt;{{cite web|url=https://lwn.net/Articles/392862/ |title=SELF: Anatomy of an (alleged) failure|publisher= Linux Weekly News|date= 2010-06-23|first=Joe|last=Brockmeier |language=en |access-date=2011-02-6}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;kernel1&amp;quot;&amp;gt;{{cite web|publisher=icculus.org| title=FatELF: Turns out I liked the uncertainty better.| url=http://icculus.org/cgi-bin/finger/finger.pl?user=icculus&amp;amp;date=2009-11-03&amp;amp;time=19-08-04|date= |language=en |access-date=2010-07-13|last=Gordon|first=Ryan}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Ryan O’Neill: &amp;#039;&amp;#039;Learning Linux Binary Analysis.&amp;#039;&amp;#039; Packt Publishing, Birmingham 2016, ISBN 978-1-78216-710-5.&lt;br /&gt;
* Dennis Andriesse: &amp;#039;&amp;#039;Practical Binary Analysis.&amp;#039;&amp;#039; No Starch Press, San Francisco 2019, ISBN 978-1-59327-912-7.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://directory.fsf.org/wiki/libelf.html libelf Eintrag im Free Software Directory]&lt;br /&gt;
* [https://refspecs.linuxfoundation.org/elf/elf.pdf Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification Version 1.2] (PDF-Datei; 337 kB)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Binärformat für ausführbare Programme, Bibliotheken und/oder Objektcode]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Eriosw</name></author>
	</entry>
</feed>