właściwego programu dla trybu chronionego pod kontrolą odpowiedniego środowiska, np. WINDOWS lub DOS4GW.
Program dla trybu chronionego posiada również nagłówek. Różne systemy mają różne struktury tego nagłówka. By poznać dla jakiego systemu jest dany plik trzeba najpierw sprawdzić, czy na pozycji 18h-19h nagłówka starego typu znajduje się wartość 40h lub większa. Jeśli tak, to należy odczytać ewentualny nagłówek nowego EXE, w którym znajduje się odpowiedni znacznik (dwa znaki). Mamy następujące znaczniki:
Znacznik |
System operacyjny |
NE |
Windows lub OS/2 1 .x, z podziałem na segmenty |
LE |
Windows virtual device driver (VxD) z liniowym adresem (Linear Executable) |
LX |
Wariant LE, używany przez OS/2 2.x |
W3 |
Plik WIN386.EXE dla Windows; kolekcja plików LE |
PE |
Windows NT lub Win32s (Portable Executable) |
DL |
HP 100LX/200LX (pliki *.EXM) |
MP |
Stare pliki PharLap (pliki *.EXP) |
P2 |
PharLap 286 (pliki *.EXP) |
P3 |
PharLap 386 (pliki *.EXP) |
UNIX-owe pliki ELF (Executable and linking Format)
Tradycyjny format a.out był używany w UNIX-ie przez ponad dekadę, aż w końcu z nadejściem Systemu V, AT&T zdecydowało, że potrzebny jest format, który w lepszym stopniu będzie wspierał kompilacją skrośną, dynamiczne łączenie oraz inne nowoczesne cechy systemu. Wczesne wersje Systemu V używały formatu COFF (Common Object File Format), jednak bez pewnych rozszerzeń nie wspierał on C++ i dynamicznego łączenia. W późniejszych wersjach COFF został zastąpiony formatem ELF. Format ELF współpracuje z formatem DWARF, który to jest formatem wspomagającym debuggowanie.
Pliki ELF mogą istnieć w trzech formatach: relokowalnym, wykonywalnym i jako obiekty dzielone. Relokowalne pliki są tworzone przez kompilatory i asemblery, ale przed uruchomieniem musząjeszcze zostać zlinkowane. Obiekty dzielone to po prostu biblioteki, które zawierają zarówno informacje o symbolach dla linkera jak i kod, który może być wykonywany.