Comparison of executable file formats

Comparison of executable file formats

This is a comparison of executable file formats.

Explicit processor declarations Arbitrary sections Metadata[vague] Digital signature String table Symbol table 64-bit Fat binaries Can contain icon
a.out No No No No Yes[1] Yes[1] Yes No No
COFF Yes by file Yes No No Yes Yes Extension No No
ELF Yes by file Yes Yes Yes[2] Yes Yes[3] Yes Extension[4] Extension[5]
PE Yes by file Yes Yes Yes[6] Yes Yes Yes No Yes
Mach-O[7] Yes by section Yes Yes Yes Yes Yes Yes Yes No
SOM Unknown Unknown No No Unknown Yes No Unknown No
Hunk Unknown Unknown Yes No No Yes No Yes No
MZ No No No No No No No No No
DOS COM No No No No No No No No No
PEF[8] Unknown No No No Yes Yes No No No
ECOFF Yes by file Yes No No Yes Yes Yes No No
XCOFF Yes by file Yes No No Yes Yes[9] Yes No No
NE Unknown Unknown Unknown No Unknown Unknown No No Yes
LX Unknown Unknown Unknown Unknown No Yes[10] No No Yes

Among the above formats, the ones in most common use are PE (on Microsoft Windows), ELF (on Linux and most other versions of Unix) and Mach-O (on Mac OS X).

References