Сравнение форматов исполняемых файлов

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Это сравнение двоичных форматов исполняемых файлов, которые, будучи однажды загружены соответствующим загрузчиком, могут быть непосредственно выполнены CPU, а не интерпретироваться программным обеспечением. В дополнение к двоичному коду приложения, исполняемые файлы могут содержать заголовки и таблицы с информацией о перемещении и адресной привязке, а также различные виды метаданных. Из этих перечисленных форматов, самые используемые — PE (на Microsoft Windows), ELF (на Linux и большинстве других версий Unix), Mach-O (на OS X и iOS) и MZ (на DOS).

Название формата Операционная система Расширение имени файла Явное указание процессора Произвольные разделы Метаданные Цифровая подпись Таблица строк Таблица символов 64 бита Много­архитектурные Может содержать значок
OS/360 Системы мейнфреймов OS/360 и VS/9
Нет
Нет Нет Нет Нет Нет Да Да Нет Нет
a.out UNIX-подобная
Нет
Нет Нет Нет Нет Да[1] Да[1] Расширение Нет Нет
COFF UNIX-подобная
Нет
Да для файла Да Нет Нет Да Да Расширение Нет Нет
ECOFF Ultrix, Tru64 UNIX, IRIX
Нет
Да для файла Да Нет Нет Да Да Да Нет Нет
XCOFF IBM AIX, BeOS, Mac OS
Нет
Да для файла Да Нет Нет Да Да[2] Да Нет Нет
ELF UNIX-подобная
Нет
Да для файла Да Да Да[3] Да Да[4] Да Расширение[5] Расширение[6]
Mach-O[7] NeXTSTEP, OS X, iOS
Нет
Да для секции Расширение (limited to max. 256 sections) Да Да Да Да Да Да Нет
SOM HP-UX, MPE/ix Неизвестно Неизвестно Неизвестно Нет Нет Неизвестно Да Нет Неизвестно Нет
Amiga Hunk AmigaOS Неизвестно Неизвестно Да Да Нет Нет Да Нет Да Нет
PEF[8] Mac OS
Нет
Да для файла Нет Нет Нет Да Да Нет Нет Нет
CMD CP/M-86, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, S5-DOS, Concurrent DOS, Concurrent DOS 286, FlexOS, S5-DOS/ST, S5-DOS/MT, Concurrent DOS 386, Multiuser DOS, System Manager, REAL/32, DOS Plus
.CMD
Нет (только x86) Да Нет Нет Расширение Расширение Нет Нет Нет
FlexOS 186 FlexOS 186, FlexOS 286, S5-DOS/ST, S5-DOS/MT, 4680 OS, FlexOS 386, 4690 OS
.186
Нет (только 186/188 и выше) Да Нет Нет Расширение Расширение Нет Нет Нет
FlexOS 286 FlexOS 286, S5-DOS/ST, S5-DOS/MT, 4680 OS, FlexOS 386, 4690 OS
.286
Нет (только 286 и выше) Да Нет Нет Расширение Расширение Нет Нет Нет
CP/M-68K CP/M-68K, Concurrent DOS 68K, FlexOS 68K
.68K
Нет (только 68000 и выше) Да Нет Нет Неизвестно Неизвестно Нет Нет Нет
COM (CP/M) CP/M, MP/M, Concurrent CP/M, Personal CP/M
.COM
Нет (только 8080/Z80) Расширение (только BDOS 3 и выше) Нет Нет Нет Нет Нет Расширение Нет
COM (DOS) DOS, OS/2, Windows (за исключением 64-разрядных версий), Concurrent CP/M-86 (только BDOS 3.1), Concurrent DOS, Concurrent DOS 286, FlexOS, Concurrent DOS 386, Multiuser DOS, System Manager, REAL/32, DOS Plus
.COM
Нет (только x86) Нет Расширение (Novell/Caldera VERSION etc.) Нет Нет Нет Расширение Расширение Нет
MZ (DOS) DOS, OS/2, Windows (за исключением 64-разрядных версий), Concurrent DOS 286, FlexOS, Concurrent DOS 386, Multiuser DOS, System Manager, REAL/32, DOS Plus
.EXE
Нет (только x86) Да Расширение(Novell/Caldera VERSION etc.) Нет Расширение Расширение Расширение Нет Нет
MZ (GEM) GEM, ViewMAX
.APP/.ACC
Нет (x86 only) Да Нет Нет Неизвестно Неизвестно Нет Нет Неизвестно
NE European MS-DOS, OS/2, Windows, HX DOS Extender
.EXE
Неизвестно Неизвестно Неизвестно Нет Неизвестно Неизвестно Нет Нет Да
LE, (W3, W4) OS/2 (только 2.0 и выше), Some расширители DOS
.EXE
Неизвестно (только 286 и выше) Неизвестно Неизвестно Неизвестно Нет Да Нет Нет Да
LX OS/2 (2.0 and higher only), Some 32-битные расширители DOS
.EXE
Неизвестно (только 386 и выше) Неизвестно Неизвестно Неизвестно Нет Да[9] Нет Нет Да
PE Windows, ReactOS, HX DOS Extender, BeOS (только R3 и выше)
.EXE
Да для файла Да Да Да[10] Да Да Нет Нет Да
PE32+ Windows (только 64-битные)
.EXE
Да для файла Да Да Да Да Да Да Нет Да
PIM/XIP PalmDOS (только приложения MINIMAX)
.PIM/.XIP
Нет (только x86) Да Нет Нет Нет Нет Нет Нет Нет
DL MS-DOS приложения System Manager (только HP LX series)
.EXM
Нет (только 186/188 и выше) Да Нет Нет Нет Нет Нет Нет Нет
MP Phar Lap расширители DOS
.EXP
Неизвестно ([только 286 и выше) Да Нет Нет Неизвестно Неизвестно Нет Нет Нет
P2 Phar Lap 16-битные расширители DOS
.EXP
Неизвестно (только 286 и выше) Да Нет Нет Неизвестно Неизвестно Нет Нет Нет
P3 Phar Lap 32-битные расширители DOS
.EXP
Неизвестно (только 386 и выше) Да Нет Нет Неизвестно Неизвестно Нет Нет Нет
GEOS PC/GEOS, Geoworks Ensemble, New Deal Office, Breadbox Ensemble
.GEO
Неизвестно (только x86) Неизвестно Неизвестно Нет Неизвестно Неизвестно Нет Нет Неизвестно

Примечания

  1. 1,0 1,1 a.out(5) - FreeBSD Man Pages. Freebsd.org (10 июня 2010). Дата обращения: 9 июля 2012. Архивировано 23 декабря 2013 года.
  2. Files Reference – XCOFF Object File Format. IBM.
  3. elfsign – Freecode. Freshmeat.net. Дата обращения: 9 июля 2012. Архивировано 12 июня 2011 года.
  4. (3elf) - Elf library routines. Uw714DOS.sco.com (25 апреля 2004). Дата обращения: 9 июля 2012. (недоступная ссылка)
  5. FatELF: Universal Binaries for Linux. Icculus.org. Дата обращения: 9 июля 2012.
  6. ElfIcon: Icons for ELF files. Compholio.com. Дата обращения: 9 июля 2012. Архивировано 25 апреля 2012 года.
  7. Mac OS X ABI Mach-O File Format Reference. Apple Inc. (4 февраля 2009). Дата обращения: 9 июля 2012.
  8. MPW Command Reference - DumpPEF. Apple Inc.. Архивировано 12 мая 2008 года.
  9. Linear eXecutable Module Format. Дата обращения: 9 июля 2012. (недоступная ссылка)
  10. Windows Authenticode Portable Executable Signature Format. Microsoft (29 августа 2008). Дата обращения: 9 июля 2012. Архивировано 6 апреля 2012 года.