WikiDer > Сравнение форматов исполняемых файлов
Это сравнение двоичных исполняемый файл форматы файлов который после загрузки подходящим исполняемым файлом погрузчик, может выполняться непосредственно ЦП, а не интерпретироваться программным обеспечением. Помимо двоичного кода приложения, исполняемые файлы могут содержать заголовки и таблицы с информацией о перемещении и исправлении, а также различные типы метаданных. Среди перечисленных форматов наиболее часто используются PE (на Майкрософт Виндоус), ELF (на Linux и большинство других версий Unix), Мачо (на macOS и iOS) и MZ (на ДОС).
Название формата | Операционная система | Расширение имени файла | Явные объявления процессора | Произвольный разделы | Метаданные[а] | Цифровой подписи | Таблица строк | Таблица символов | 64-битный | Жирные двоичные файлы | Может содержать значок |
---|---|---|---|---|---|---|---|---|---|---|---|
OS / 360 | OS / 360 и последователи, и VS / 9, операционные системы мэйнфреймов | никто | Нет | Нет | Нет | Нет | Нет | да | да | Нет | Нет |
GOFF | IBM MVS и z / OS операционные системы мэйнфреймов | никто | Нет | Нет | да | Нет | да | да | да | Нет | Нет |
а. выход | Unix-подобный | никто | Нет | Нет | Нет | Нет | да[1] | да[1] | Расширение | Нет | Нет |
COFF | Unix-подобный | никто | Да по файлу | да | Нет | Нет | да | да | Расширение | Нет | Нет |
ЭКОФФ | Ultrix, Tru64 UNIX, IRIX | никто | Да по файлу | да | Нет | Нет | да | да | да | Нет | Нет |
XCOFF | IBM AIX, BeOS, «классическая» Mac OS | никто | Да по файлу | да | Нет | Нет | да | да[2] | да | Нет | Нет |
ELF | Unix-подобный, OpenVMS, BeOS начиная с R4, Хайку | никто | Да по файлу | да | да | да[3] | да | да[4] | да | Расширение[5] | Расширение[6] |
Мачо[7] | Следующий шаг, macOS, iOS, watchOS, tvOS | никто | Да по разделам | Немного (ограничено макс. 256 разделов) | да | да | да | да | да | да | Нет |
SOM | HP-UX, MPE / ix | ? | Неизвестно | Неизвестно | Нет | Нет | Неизвестно | да | Нет | Неизвестно | Нет |
Амига Ханк | AmigaOS | никто | Нет | да | да | Нет | Нет | да | Нет | да | Нет |
PEF[8] | «классическая» Mac OS, BeOS (Только PPC) | никто | Да по файлу | Нет | Нет | Нет | да | да | Нет | Нет | Нет |
CMD | CP / 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 186 | FlexOS 186, FlexOS 286, S5-DOS / ST, S5-DOS / MT, 4680 ОС, FlexOS 386, 4690 ОС | .186 | Нет (186/188 только и выше) | да | Нет | Нет | Расширение | Расширение | Нет | Нет | Нет |
FlexOS 286 | FlexOS 286, S5-DOS / ST, S5-DOS / MT, 4680 ОС, FlexOS 386, 4690 ОС | .286 | Нет (286 только и выше) | да | Нет | Нет | Расширение | Расширение | Нет | Нет | Нет |
CP / M-68K | CP / M-68K, Одновременный DOS 68K, FlexOS 68K | 0,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 Только) | да | Нет | Нет | Неизвестно | Неизвестно | Нет | Нет | Неизвестно |
NE | MS-DOS 4.0 (многозадачность), OS / 2, Windows, HX DOS Extender | .EXE | Неизвестно | Неизвестно | Неизвестно | Нет | Неизвестно | Неизвестно | Нет | Нет | да |
LE, (W3, W4) | OS / 2 (Только 2.0 и выше), немного Расширители DOS | .EXE | Да по файлу (286 только и выше) | да | да | Нет | да | да | Нет | Нет | да |
LX | OS / 2 (Только 2.0 и выше), некоторые 32-битные Расширители DOS | .EXE | Да по файлу | да | да | Нет | да | да[9] | Нет | Нет | да |
PE | Windows, ReactOS, HX DOS Extender, BeOS (Только R3) | .EXE | Да по файлу | да | да | да[10] | да | да | Нет | Нет | да |
PE32 + | Windows (Только 64-битные версии) | .EXE | Да по файлу | да | да | да | да | да | да | да[11] | да |
PIM/XIP | PalmDOS (МИНИМАКС только приложения) | .PIM/.XIP | Нет (x86 Только) | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
DL | MS-DOS Системный менеджер Приложения (Серия HP LX Только) | .EXM | Нет (186/188 только и выше) | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Депутат | Phar Lap Расширители DOS | .EXP | Неизвестно (286 только и выше) | да | Нет | Нет | Неизвестно | Неизвестно | Нет | Нет | Нет |
P2 | Phar Lap 16 бит Расширители DOS | .EXP | Неизвестно (286 только и выше) | да | Нет | Нет | Неизвестно | Неизвестно | Нет | Нет | Нет |
P3 | Phar Lap 32-битный Расширители DOS | .EXP | Неизвестно (386 только и выше) | да | Нет | Нет | Неизвестно | Неизвестно | Нет | Нет | Нет |
GEOS | ПК / GEOS, Ансамбль Geoworks, Офис NewDeal, Ансамбль Хлебницы | .GEO | Неизвестно (x86 Только) | Неизвестно | Неизвестно | Нет | Неизвестно | Неизвестно | Нет | Нет | Неизвестно |
Примечания
- ^
- Метаданные обычно используются для описания управляющих данных, используемых в более абстрактных или настраиваемых архитектурах программного обеспечения. Большинство форматов исполняемых файлов включают в себя так называемые «метаданные», которые определяют определенные, обычно настраиваемые, поведенческие время выполнения характеристики. Однако трудно, если не невозможно, точно отделить "метаданные" программы от общих аспектов архитектура вычислений с хранимой программой; если машина его считывает и воздействует на нее, это вычислительная инструкция, а префикс «мета» не имеет большого значения.
- В Ява, то формат файла класса содержит метаданные, используемые Компилятор Java и Виртуальная машина Java к динамически связать классы и поддерживать отражение. В Платформа Java, стандартная версия поскольку J2SE 5.0 включает средство метаданных чтобы разрешить дополнительные аннотации, которые используются Инструменты разработки.
- В MS-DOS, то COM файл формат делает нет обычно включают метаданные, а EXE файл и Windows PE форматы делаем. Эти метаданные могут включать в себя компанию, опубликовавшую программу, дату создания программы, номер версии и многое другое.
- в .NET Framework исполняемый формат, дополнительные метаданные включены, чтобы позволить отражение во время выполнения.
Рекомендации
- ^ а б "a.out (5) - FreeBSD Man Pages". Freebsd.org. 10 июня 2010 г.. Получено 9 июля 2012.
- ^ «Справочник по файлам - формат объектного файла XCOFF». IBM.
- ^ "elfsign - Freecode". Freshmeat.net. Получено 9 июля 2012.
- ^ "(3elf) - подпрограммы библиотеки Elf". Uw714doc.sco.com. 25 апреля 2004 г.. Получено 9 июля 2012.
- ^ «FatELF: универсальные двоичные файлы для Linux». Icculus.org. Получено 9 июля 2012.
- ^ «ElfIcon: Иконки для файлов ELF». Compholio.com. Получено 9 июля 2012.
- ^ «Справочник по формату файла Mac OS X ABI Mach-O». Apple Inc. 4 февраля 2009 г.. Получено 9 июля 2012.
- ^ «Справочник команд MPW - DumpPEF». Apple Inc. Архивировано с оригинал 12 мая 2008 г.
- ^ "LX - Описание формата линейного исполняемого модуля". 3 июня 1992 г.. Получено 7 июля 2019.
- ^ «Формат переносимой исполняемой подписи Windows Authenticode». Microsoft. 29 августа 2008 г.. Получено 9 июля 2012.
- ^ «Подробности реализации WOW64». Microsoft. 31 мая 2018. Получено 5 сентября 2018.