Сравнение форматов исполняемых файлов - Comparison of executable file formats

Это сравнение двоичных исполняемый файл форматы файлов который после загрузки подходящим исполняемым файлом погрузчик, может выполняться непосредственно ЦП, а не интерпретироваться программным обеспечением. Помимо двоичного кода приложения, исполняемые файлы могут содержать заголовки и таблицы с информацией о перемещении и исправлении, а также различные типы метаданных. Среди перечисленных форматов наиболее часто используются PE (на Майкрософт Виндоус ), ELF (на Linux и большинство других версий Unix ), Мачо (на macOS и iOS ) и MZ (на ДОС ).

Название форматаОперационная системаРасширение имени файлаЯвные объявления процессораПроизвольный разделыМетаданные[а]Цифровой подписиТаблица строкТаблица символов64-битныйЖирные двоичные файлыМожет содержать значок
OS / 360OS / 360 и последователи, и VS / 9, операционные системы мэйнфреймовниктоНетНетНетНетНетдадаНетНет
GOFFIBM MVS и z / OS операционные системы мэйнфреймовниктоНетНетдаНетдададаНетНет
а. выходUnix-подобныйниктоНетНетНетНетда[1]да[1]РасширениеНетНет
COFFUnix-подобныйниктоДа по файлудаНетНетдадаРасширениеНетНет
ЭКОФФUltrix, Tru64 UNIX, IRIXниктоДа по файлудаНетНетдададаНетНет
XCOFFIBM AIX, BeOS, «классическая» Mac OSниктоДа по файлудаНетНетдада[2]даНетНет
ELFUnix-подобный, OpenVMS, BeOS начиная с R4, ХайкуниктоДа по файлудадада[3]дада[4]даРасширение[5]Расширение[6]
Мачо[7]Следующий шаг, macOS, iOS, watchOS, tvOSниктоДа по разделамНемного (ограничено макс. 256 разделов)дадададададаНет
SOMHP-UX, MPE / ix?НеизвестноНеизвестноНетНетНеизвестнодаНетНеизвестноНет
Амига ХанкAmigaOSниктоНетдадаНетНетдаНетдаНет
PEF[8]«классическая» Mac OS, BeOS (Только PPC)никтоДа по файлуНетНетНетдадаНетНетНет
CMDCP / M-86, МП / М-86, Параллельный CP / M-86, Личный CP / M-86, S5-DOS, Параллельная DOS, Параллельный DOS 286, FlexOS, S5-DOS / ST, S5-DOS / MT, Параллельная DOS 386, Многопользовательская DOS, Системный менеджер, РЕАЛЬНЫЙ / 32, DOS Plus.CMDНет (x86 Только)даНетНетРасширениеРасширениеНетНетНет
FlexOS 186FlexOS 186, FlexOS 286, S5-DOS / ST, S5-DOS / MT, 4680 ОС, FlexOS 386, 4690 ОС.186Нет (186 /188 только и выше)даНетНетРасширениеРасширениеНетНетНет
FlexOS 286FlexOS 286, S5-DOS / ST, S5-DOS / MT, 4680 ОС, FlexOS 386, 4690 ОС.286Нет (286 только и выше)даНетНетРасширениеРасширениеНетНетНет
CP / M-68KCP / M-68K, Одновременный DOS 68K, FlexOS 68K0,68 тыс.Нет (68000 только и выше)даНетНетНеизвестноНеизвестноНетНетНет
COM (CP / M)CP / M, МП / м, Параллельные CP / M, Персональный CP / M.COMНет (8080 /Z80 Только)Расширение (BDOS Только 3 и выше)НетНетНетНетНетРасширениеНет
COM (DOS)ДОС, OS / 2, Windows (кроме 64-битных редакций), Параллельный CP / M-86 (BDOS Только 3.1), Параллельная DOS, Параллельный DOS 286, FlexOS, Параллельная DOS 386, Многопользовательская DOS, Системный менеджер, РЕАЛЬНЫЙ / 32, DOS Plus.COMНет (x86 Только)НетРасширение (Novell / Caldera ВЕРСИЯ так далее.)НетНетНетРасширениеРасширениеНет
MZ (DOS)ДОС, OS / 2, Windows (кроме 64-битных редакций), Параллельный DOS 286, FlexOS, Параллельная DOS 386, Многопользовательская DOS, Системный менеджер, РЕАЛЬНЫЙ / 32, DOS Plus.EXEНет (x86 Только)даРасширение(Novell / Caldera ВЕРСИЯ так далее.)НетРасширениеРасширениеРасширениеНетНет
MZ (GEM)GEM, ViewMAX.APP / .ACCНет (x86 Только)даНетНетНеизвестноНеизвестноНетНетНеизвестно
NEMS-DOS 4.0 (многозадачность), OS / 2, Windows, HX DOS Extender.EXEНеизвестноНеизвестноНеизвестноНетНеизвестноНеизвестноНетНетда
LE, (W3, W4 )OS / 2 (Только 2.0 и выше), немного Расширители DOS.EXEДа по файлу (286 только и выше)дадаНетдадаНетНетда
LXOS / 2 (Только 2.0 и выше), некоторые 32-битные Расширители DOS.EXEДа по файлудадаНетдада[9]НетНетда
PEWindows, ReactOS, HX DOS Extender, BeOS (Только R3).EXEДа по файлудадада[10]дадаНетНетда
PE32 +Windows (Только 64-битные версии).EXEДа по файлудадададададада[11]да
PIM /XIPPalmDOS (МИНИМАКС только приложения).PIM /.XIPНет (x86 Только)даНетНетНетНетНетНетНет
DLMS-DOS Системный менеджер Приложения (Серия HP LX Только).EXMНет (186 /188 только и выше)даНетНетНетНетНетНетНет
ДепутатPhar Lap Расширители DOS.EXPНеизвестно (286 только и выше)даНетНетНеизвестноНеизвестноНетНетНет
P2Phar Lap 16 бит Расширители DOS.EXPНеизвестно (286 только и выше)даНетНетНеизвестноНеизвестноНетНетНет
P3Phar Lap 32-битный Расширители DOS.EXPНеизвестно (386 только и выше)даНетНетНеизвестноНеизвестноНетНетНет
GEOSПК / GEOS, Ансамбль Geoworks, Офис NewDeal, Ансамбль Хлебницы.GEOНеизвестно (x86 Только)НеизвестноНеизвестноНетНеизвестноНеизвестноНетНетНеизвестно

Примечания

  1. ^
    Метаданные обычно используются для описания управляющих данных, используемых в более абстрактных или настраиваемых архитектурах программного обеспечения. Большинство форматов исполняемых файлов включают в себя так называемые «метаданные», которые определяют определенные, обычно настраиваемые, поведенческие время выполнения характеристики. Однако трудно, если не невозможно, точно отделить "метаданные" программы от общих аспектов архитектура вычислений с хранимой программой; если машина его считывает и воздействует на нее, это вычислительная инструкция, а префикс «мета» не имеет большого значения.
    В Ява, то формат файла класса содержит метаданные, используемые Компилятор Java и Виртуальная машина Java к динамически связать классы и поддерживать отражение. В Платформа Java, стандартная версия поскольку J2SE 5.0 включает средство метаданных чтобы разрешить дополнительные аннотации, которые используются Инструменты разработки.
    В MS-DOS, то COM файл формат делает нет обычно включают метаданные, а EXE файл и Windows PE форматы делаем. Эти метаданные могут включать в себя компанию, опубликовавшую программу, дату создания программы, номер версии и многое другое.
    в .NET Framework исполняемый формат, дополнительные метаданные включены, чтобы позволить отражение во время выполнения.

Рекомендации

  1. ^ а б "a.out (5) - FreeBSD Man Pages". Freebsd.org. 10 июня 2010 г.. Получено 9 июля 2012.
  2. ^ «Справочник по файлам - формат объектного файла XCOFF». IBM.
  3. ^ "elfsign - Freecode". Freshmeat.net. Получено 9 июля 2012.
  4. ^ "(3elf) - подпрограммы библиотеки Elf". Uw714doc.sco.com. 25 апреля 2004 г.. Получено 9 июля 2012.
  5. ^ «FatELF: универсальные двоичные файлы для Linux». Icculus.org. Получено 9 июля 2012.
  6. ^ «ElfIcon: Иконки для файлов ELF». Compholio.com. Получено 9 июля 2012.
  7. ^ «Справочник по формату файла Mac OS X ABI Mach-O». Apple Inc. 4 февраля 2009 г.. Получено 9 июля 2012.
  8. ^ «Справочник команд MPW - DumpPEF». Apple Inc. Архивировано с оригинал 12 мая 2008 г.
  9. ^ "LX - Описание формата линейного исполняемого модуля". 3 июня 1992 г.. Получено 7 июля 2019.
  10. ^ «Формат переносимой исполняемой подписи Windows Authenticode». Microsoft. 29 августа 2008 г.. Получено 9 июля 2012.
  11. ^ «Подробности реализации WOW64». Microsoft. 31 мая 2018. Получено 5 сентября 2018.