14.01.2015 Aufrufe

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.2 Modularisierung<br />

PECOFF Das Portable Executable kurz PE oder PECOFF [Mic06] ist ebenfalls e<strong>in</strong>e Erweiterung<br />

des COFF-Formats. Es wurde von Microsoft entwickelt und mit W<strong>in</strong>dows NT 3.1 e<strong>in</strong>geführt. PECOFF<br />

wurde speziell für W<strong>in</strong>dows Betriebssysteme angepasst. So enthalten ausführbare Dateien e<strong>in</strong>en zusätzlichen<br />

PECOFF Header, um die Abwärtskompatibilität zu MS-DOS zu gewährleisten. Außerdem<br />

wurde e<strong>in</strong>e Reihe neuer Sektionstypen e<strong>in</strong>geführt, um zum Beispiel die sogenannten W<strong>in</strong>dows Ressourcen<br />

abzulegen oder um Informationen über exportierte Schnittstellen bei Bibliotheken zu speichern.<br />

E<strong>in</strong>ige der Sektionen werden jedoch anhand ihres Namens anstatt des Typs identifiziert. Der Name<br />

von Sektionen <strong>in</strong> Objektdateien kann bei PECOFF auch länger als acht Zeichen se<strong>in</strong>, <strong>in</strong>dem auf e<strong>in</strong>e<br />

Str<strong>in</strong>gtabelle verwiesen wird.<br />

Auch für Debug<strong>in</strong>formationen wird <strong>in</strong> PECOFF e<strong>in</strong>e spezielle Sektion angelegt. Microsoft entwickelte<br />

dafür e<strong>in</strong> eigenes Format für den gleichnamigen Debugger CodeView [SS + 96, TIS93], der später <strong>in</strong><br />

das Visual Studio <strong>in</strong>tegriert wurde. Aktuelle Microsoft Compiler erstellen jedoch ke<strong>in</strong>e <strong>in</strong>tegrierten<br />

Debug<strong>in</strong>formationen mehr, sondern legen diese Informationen <strong>in</strong> e<strong>in</strong>er separaten Datei ab (Programm<br />

Database siehe Abschnitt 4.2.6.1).<br />

ELF<br />

Das Executable and L<strong>in</strong>k<strong>in</strong>g Format (ELF) [TIS95] ist e<strong>in</strong> Standard-B<strong>in</strong>ärformat für ausführbare Dateien<br />

und geme<strong>in</strong>sam benutzte Bibliotheken. Es wurde ursprünglich von den Unix System Laboratories<br />

(USL) als Teil des Application B<strong>in</strong>ary Interfaces (ABI) von UNIX-Systemen entwickelt und erstmals im<br />

System V Release 4 UNIX-System (SVR4) e<strong>in</strong>gesetzt, um COFF zu ersetzen. Später wurde es vom Tool<br />

Interface Standards Komitee (TIS) weiterentwickelt, um als portables B<strong>in</strong>ärformat für Betriebssysteme<br />

auf 32-bit-Intel Architekturen zu dienen. Heute wird das ELF-Format von den meisten UNIX ähnlichen<br />

Betriebssystemen und für fast alle gängigen Prozessoren e<strong>in</strong>gesetzt.<br />

In ELF-Dateien s<strong>in</strong>d die Daten, ähnlich wie <strong>in</strong> COFF, <strong>in</strong> Sektionen unterteilt. Im Gegensatz zu COFF<br />

werden zusätzliche beschreibende Daten, wie beispielsweise die Symbol- oder die Relokationstabelle,<br />

<strong>in</strong> normalen Sektionen mit entsprechendem Typ abgelegt. Dadurch kann e<strong>in</strong>e ELF-Datei zum Beispiel<br />

mehrere Symboltabellen enthalten. In ELF ist ke<strong>in</strong> Format zur Speicherung von Debug<strong>in</strong>formationen<br />

def<strong>in</strong>iert. Üblicherweise wird jedoch zusammen mit ELF das DWARF-Debugformat (Abschnitt 4.2.6.1)<br />

e<strong>in</strong>gesetzt, welches die benötigten Daten <strong>in</strong> mehreren benutzerdef<strong>in</strong>ierten Sektionen ablegt.<br />

Mach-O<br />

Das Mach Object Dateiformat (Mach-O) wurde, wie der Name schon andeutet, ursprünglich für Mach<br />

Betriebssysteme entwickelt. Heute wird es hauptsächlich von Mac OS X e<strong>in</strong>gesetzt [App06]. Auch<br />

Mach-O wurde nur als Format zur Speicherung von Objektdateien und ausführbaren Programmen<br />

entwickelt. Im Laufe der Zeit wurde jedoch auch hier Unterstützung für dynamisches B<strong>in</strong>den h<strong>in</strong>zugefügt.<br />

Der Inhalt von Mach-O Dateien ist <strong>in</strong> sogenannte Segmente aufgeteilt, die jeweils <strong>in</strong> Sektionen<br />

unterteilt s<strong>in</strong>d. E<strong>in</strong>e Datenstruktur am Anfang der Datei (load commands) beschreibt den Inhalt der<br />

Segmente und Sektionen und wie sie <strong>in</strong> den Speicher geladen werden sollen bzw. wie der L<strong>in</strong>ker sie zu<br />

e<strong>in</strong>em lauffähigen Programm zusammenfügen muss.<br />

Da es Mac OS sowohl für PowerPC (32-bit und 64-bit) als auch für Intel x86 basierende Systeme<br />

gibt, entwickelte Apple e<strong>in</strong> e<strong>in</strong>faches Archivformat als Erweiterung, welches es ermöglicht, B<strong>in</strong>ärdaten<br />

für verschiedene Architekturen <strong>in</strong> e<strong>in</strong>er Datei abzulegen. Diese sogenannten PPC/PPC64b<strong>in</strong>aries<br />

bzw. universal b<strong>in</strong>aries enthalten die kompletten Mach-O Daten für verschiedene Architekturen. E<strong>in</strong>e<br />

Tabelle am Anfang der Datei gibt über die enthaltenen Mach-O Daten Aufschluss. Das Betriebssystem<br />

ist somit <strong>in</strong> der Lage, den entsprechenden Code <strong>in</strong> Abhängigkeit der Architektur auszuwählen.<br />

47

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!