Portable Executable
aus Wikipedia, der freien Enzyklopädie
Portable Executable beschreibt ein Binärformat ausführbarer Programme. Es ist ein Dateiformat bei Win32-Systemen, das für ausführbare Dateien verwendet wird.
Mögliche Dateiendungen sind zum Beispiel:
- .exe – executable, ein alleinstehendes Programm oder das Hauptmodul
- .dll - dynamic link library, eine Programmbibliothek
- .sys – system, grundlegende Systemsoftware mit besonderer Behandlung durch das Betriebssystem
- .drv – driver, ein Treiber
Die Dateien sind folgendermaßen aufgebaut: Zuerst kommt der Dateikopf, der allgemeine Informationen über die Anwendung enthält. Danach folgen die Sektionen, die den eigentlichen Code beinhalten. Zusätzlich können sich Daten, Imports, Exports und Ressourcen in den Sektionen befinden. Die Imports sind Verweise auf andere ausführbare Dateien, deren Funktionen von der Anwendung genutzt werden.
DLL-Dateien können beispielsweise Funktionen exportieren, die von anderen Programmen aufgerufen werden. Bei DRV- und SYS-Dateien handelt es sich in der Regel um Gerätetreiber, welche von Windows verwendet werden, um die Hardware anzusteuern.
Neben Windows verwendet auch ReactOS das PE-Dateiformat und ermöglicht so (zur Zeit nur sehr beschränkt) die Ausführung von Windows-Programmen. Frühe Versionen von BeOS sowie SkyOS verwendeten ebenfalls das PE-Dateiformat für ihre ausführbaren Programme. Da sie aber eine andere Programmierschnittstelle (API) verwendeten, waren sie nicht binärkompatibel zu Windows und beabsichtigten dies auch gar nicht. SkyOS verwendet inzwischen das verbreitete ELF-Format, welches zuvor mit dem Betriebssystem Linux populär wurde, da es dort das Standardformat für Binärprogramme ist.
Windows und Dos Dateien im PE-Format lassen sich unter Linux mit Hilfe von WINE, und unter DOS teilweise mit Hilfe von HX_DOS_Extender ausführen.
[Bearbeiten] Ur-Exe
Die ursprüngliche EXE-Datei (MZ-Datei des PC) wurde unter DOS und frühen Windows-Versionen genutzt und unterstüzt weder oben genanntes DLL noch die heute übliche Sektionierung (TEXT, BSS, EXEC). Das danach folgende EXE-Format ließ sich in dieser Umgebung abwärtskompatibel zwar ausführen, brach aber mit einer eigenen Meldung, dass das Betriebssystem ungeeignet sei, ab. Der Programmcode für das eigentliche Windows-Programm wurde unter DOS nicht aufgerufen. Diese Technik ermöglicht es, Programme zu schreiben, welche unter DOS und Windows lauffähig sind. Streng genommen handelt es sich dabei jedoch um zwei verschiedene Programme, die lediglich zu einer Programmdatei zusammengefasst worden sind. Ein Beispiel für derartige Programme ist das Setup-Programm von Windows 3.1 und Windows 95.