<?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=A.out</id>
	<title>A.out - 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=A.out"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=A.out&amp;action=history"/>
	<updated>2026-06-02T07:04:18Z</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=A.out&amp;diff=71484&amp;oldid=prev</id>
		<title>imported&gt;Aka: Tippfehler entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=A.out&amp;diff=71484&amp;oldid=prev"/>
		<updated>2022-06-22T14:28:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=Benutzer:Aka/Tippfehler_entfernt&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:Aka/Tippfehler entfernt (Seite nicht vorhanden)&quot;&gt;Tippfehler entfernt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SEITENTITEL:a.out}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;a.out&amp;#039;&amp;#039;&amp;#039; ist das ursprüngliche [[Dateiformat]] für [[ausführbare Datei]]en und [[Objektdatei]]en von [[Unixoides System|Unix-ähnlichen]] [[Betriebssystem]]en. In der Praxis wurde dieses Format weitgehend durch seine Nachfolger [[Common Object File Format]] (COFF) und [[Executable and Linking Format]] (ELF) verdrängt, obwohl es auch heute noch teilweise unterstützt wird.&amp;lt;ref&amp;gt;{{Webarchiv |url=http://www.freebsd.org/doc/de/books/handbook/binary-formats.html |text=Binärformate |wayback=20150924040037 |archive-today=}}, Das FreeBSD-Handbuch, aufgerufen am 4. April 2019&amp;lt;/ref&amp;gt; Vom [[Linux (Kernel)|Linux-Kernel]] wurde das Format von Version 1.1.52 (August 1994)&amp;lt;ref&amp;gt;[https://lkml.org/lkml/2019/3/5/281 LKML: a.out coredumping: fix or delete?]&amp;lt;/ref&amp;gt; bis einschließlich Version 5.0 (März 2019)&amp;lt;ref&amp;gt;[https://lkml.org/lkml/2019/3/5/499 LKML: x86: Deprecate a.out support (Linus Torvalds)]&amp;lt;/ref&amp;gt; unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Viele [[unixoid]]e [[C (Programmiersprache)|C]]-[[Compiler]] bzw. die diesen normalerweise automatisch nachgeschalteten [[Assembler (Informatik)|Assembler]] erzeugen eine [[Ausführbare Datei|ausführbare]] Ausgabedatei mit dem [[Voreinstellung|voreingestellten]] [[Dateiname]]n &amp;#039;&amp;#039;a.out&amp;#039;&amp;#039; (Abkürzung für &amp;#039;&amp;#039;Assembler Output&amp;#039;&amp;#039;), sofern der Benutzer nicht ausdrücklich einen anderen Namen wählt; davon erhielt das zunächst namenlose Format seine Bezeichnung, sobald sich die Notwendigkeit ergab, mehrere verschiedene Formate zu unterscheiden&amp;lt;ref&amp;gt;[https://www.bell-labs.com/usr/dmr/www/man51.pdf a.out -- assembler and link editor output] Dennis Ritchie, Bell Labs, 3. November 1971. Aufgerufen am 11. März 2014&amp;lt;/ref&amp;gt;. Mit der Weiterentwicklung von UNIX wurden die Mängel von &amp;#039;&amp;#039;a.out&amp;#039;&amp;#039; immer offensichtlicher, unterstützt das Format doch weder [[Debugging]]-Informationen (die deshalb in der Symboltabelle untergebracht werden mussten) noch [[dynamische Bibliothek]]en. Mit der Einführung von [[Unix System V]] Release 3 wurde es deshalb durch das neue, flexiblere [[Common Object File Format]] (COFF) abgelöst.&amp;lt;ref&amp;gt;Gintaras Gircys: &amp;#039;&amp;#039;Understanding and Using COFF&amp;#039;&amp;#039;, 1988&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter [[Linux]] war &amp;#039;&amp;#039;a.out&amp;#039;&amp;#039; bis [[1995]] das Standardformat. Aufgrund der Limitierungen des Formates wurde es unter Linux zunehmend schwerer, moderne Techniken wie z.&amp;amp;nbsp;B. [[Dynamisches Linken]] zu unterstützen&amp;lt;ref&amp;gt;[https://akkadia.org/drepper/dsohowto.pdf How to write shared libraries], Ulrich Drepper, abgerufen am 12. März 2014&amp;lt;/ref&amp;gt;. Deshalb wurde mit der Veröffentlichung der [[Linux (Kernel)|Kernel]] Version 1.2 Unterstützung für das [[Executable and Linking Format]] (ELF) eingeführt.&amp;lt;ref&amp;gt;[https://zim.uni-wuppertal.de/fileadmin/zim/ueber_uns/zim_info/hrz-info-9506/node8.html Linux 1.2 und 1.3] Uni Wuppertal, abgerufen am 12. März 2014&amp;lt;/ref&amp;gt; Der Linux Loader &amp;#039;&amp;#039;ld.so&amp;#039;&amp;#039; unterstützt das &amp;#039;&amp;#039;a.out&amp;#039;&amp;#039; Format jedoch bis heute&amp;lt;ref&amp;gt;[https://man7.org/linux/man-pages/man8/ld.so.8.html Manpage von ld.so] Linux Programmer&amp;#039;s Manual, abgerufen am 12. März 2014&amp;lt;/ref&amp;gt;. Da [[Berkeley Software Distribution|BSD]] eine flexiblere Variante von &amp;#039;&amp;#039;a.out&amp;#039;&amp;#039; implementierte, war der Wechsel nicht so dringend. FreeBSD stellte im Jahr [[1998]] mit Version 3.0 auf ELF um.&amp;lt;ref&amp;gt;[https://www.freebsd.org/releases/3.0R/notes.html FreeBSD 3.0 Release Notes], FreeBSD Project, abgerufen am 11. März 2014&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ausgabedatei eines Unix-Compilers bzw. Assemblers trägt auch heute noch dann standardmäßig den Dateinamen &amp;#039;&amp;#039;a.out&amp;#039;&amp;#039;, wenn sie nicht im Dateiformat &amp;#039;&amp;#039;a.out&amp;#039;&amp;#039;, sondern in einem der neueren Dateiformate erzeugt wird.&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
Ein Programm im a.out-Format besteht aus mehreren Teilen:&lt;br /&gt;
* Der [[Kopfdaten]]bereich enthält [[Metainformation]]en über die Datei, wie zum Beispiel die Größe der folgenden Segmente.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Text&amp;#039;&amp;#039;&amp;#039;: Das eigentliche Programm als [[Maschinencode]] (nicht zu verwechseln mit dem [[Quelltext]] des Programms)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Datensegment|Data]]&amp;#039;&amp;#039;&amp;#039;: Initialisierte [[Daten#Informatik|Daten]], wie [[Konstante (Programmierung)|Konstanten]] und [[Variable (Programmierung)|Variable]]n, die beim Programmstart bereits einen definierten Anfangswert haben.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Block Started by Symbol|BSS]]&amp;#039;&amp;#039;&amp;#039;: Uninitialisierte Daten. Das [[Akronym]] BSS steht für &amp;#039;&amp;#039;&amp;#039;Block Started by Symbol&amp;#039;&amp;#039;&amp;#039; und ist auf den gleichnamigen Pseudo-Operator zurückzuführen, mit dem in der [[Assemblersprache]] des [[Großrechner]]s [[IBM 700/7000 series|IBM 7090]] Speicherplatz für uninitialisierte Daten reserviert wurde.&amp;lt;ref&amp;gt;Maurice J. Bach: &amp;#039;&amp;#039;The Design of the UNIX Operating System&amp;#039;&amp;#039;, Prentice-Hall International, Englewood Cliffs, NJ 1986, ISBN 0-13-201757-1. Seite 25&lt;br /&gt;
&amp;lt;!-- &amp;#039;&amp;#039;The name bss comes from an assembly pseudo-operator on the [[IBM 7090]] machine, which stood for &amp;quot;block started by symbol&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
BSS ist vmtl. noch älter, der Artikel .bss in der englischen Wikipedia verweist auf IBM 704, aber ich habe keine zitierfähige Quelle gefunden.--&amp;gt;&amp;lt;/ref&amp;gt; Während die Text- und Data-Segmente aus der Datei in den Speicher kopiert werden, ist das BSS-Segment nur als Größenangabe in den Kopfdaten der Datei vorhanden. Der [[Lader (Programmierung)|Programmlader]] legt das Segment in der gewünschten Größe an und initialisiert es meist byteweise mit dem Wert 0.&lt;br /&gt;
* Weitere optionale Informationen wie [[Symboltabelle]] und, wenn nötig, [[Relokation]]stabelle.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* [[Brian W. Kernighan]], M. D. McIlroy: &amp;#039;&amp;#039;UNIX Programmer&amp;#039;s Manual, Seventh Edition&amp;#039;&amp;#039;, [[Bell Laboratories|Bell Telephone Laboratories, Incorporated]], Murray Hill, NJ 1979&amp;lt;!-- besonders Volume 1: as(1), cc(1), ld(1), a.out(5); Volume 2B: Assembler, UNIX Implementation --&amp;gt;&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;Aka</name></author>
	</entry>
</feed>