Сравнение форматов исполняемых файлов
Это сравнение форматов двоичных исполняемых файлов , которые после загрузки подходящим загрузчиком исполняемых файлов могут напрямую выполняться процессором, а не интерпретироваться программным обеспечением. Помимо двоичного кода приложения, исполняемые файлы могут содержать заголовки и таблицы с информацией о перемещении и исправлении, а также различные виды метаданных. Среди перечисленных форматов наиболее часто используются PE (в Microsoft Windows ), ELF (в Linux и большинстве других версий Unix ), Mach-O (в macOS и iOS ) и MZ (в DOS ).
Имя формата | Операционная система | Расширение имени файла | Явные объявления процессора | Произвольные разделы | Метаданные [а] | Цифровая подпись | Строковый стол | Таблица символов | 64-битная | Жирные двоичные файлы | Может содержать значок |
---|---|---|---|---|---|---|---|---|---|---|---|
ЭЛЬФ | Unix-подобные , OpenVMS , BeOS начиная с R4 , Haiku , SerenityOS | никто | Да, по файлу | Да | Да | Расширение [1] | Да | Да [2] | Да | Расширение [3] | Расширение [4] |
НА | Windows , ReactOS , HX DOS Extender , BeOS (только R3) | .EXE | Да, по файлу | Да | Да | Да [5] | Да | Да | Нет | Только МЗ (DOS) [6] | Да |
ПЭ32+ | Windows (только 64-разрядные версии) | .EXE | Да, по файлу | Да | Да | Да | Да | Да | Да | «Скомпилированный гибридный портативный исполняемый файл» | Да |
Мачо [7] | NeXTSTEP , macOS , iOS , watchOS , tvOS | никто | Да по разделам | Некоторые (ограничено максимум 256 разделами) | Да | Да | Да | Да | Да | Да | Нет |
ОС/360 | OS/360 и его преемники , а также VS/9 , операционные системы для мэйнфреймов. | никто | Нет | Нет | Нет | Нет | Нет | Да | Да | Нет | Нет |
ГОФФ | IBM MVS и z/OS Операционные системы для мэйнфреймов | никто | Нет | Нет | Да | Нет | Да | Да | Да | Нет | Нет |
а.аут | Unix-подобный | никто | Нет | Нет | Нет | Нет | Да [8] | Да [8] | Расширение | Нет | Нет |
ПАМЯТЬ | Unix-подобный | никто | Да, по файлу | Да | Нет | Нет | Да | Да | Расширение | Нет | Нет |
ECOFF | Ultrix , Tru64 UNIX , IRIX | никто | Да, по файлу | Да | Нет | Нет | Да | Да | Да | Нет | Нет |
XCOFF | IBM AIX , BeOS , «классическая» Mac OS | никто | Да, по файлу | Да | Нет | Нет | Да | Да [9] | Да | Нет | Нет |
КАК | HP-UX , MPE/ix | ? | Unknown | Unknown | Нет | Нет | Unknown | Да | Нет | Unknown | Нет |
красавчик друг | АмигаОС | никто | Нет | Да | Да | Нет | Нет | Да | Нет | Да | Нет |
ПЭФ [10] | «классическая» Mac OS , BeOS (только PPC) | никто | Да, по файлу | Нет | Нет | Нет | Да | Да | Нет | Нет | Нет |
КМД | CP/M-86 , MP/M-86 , Параллельный CP/M-86 , Персональный CP/M-86 , S5-DOS , Параллельный DOS , Параллельный DOS 286 , FlexOS , S5-DOS/ST , S5-DOS/MT , Параллельная DOS 386 , Многопользовательская DOS , Системный менеджер , REAL/32 , DOS Plus | .CMD | Нет ( x86 ) только | Да | Нет | Нет | Расширение | Расширение | Нет | Нет | Нет |
ФлексОС 186 | FlexOS 186 , FlexOS 286 , S5-DOS/ST , S5-DOS/MT , ОС 4680 , FlexOS 386 , ОС 4690 | .186 | Нет ( только 186/188 и выше ) | Да | Нет | Нет | Расширение | Расширение | Нет | Нет | Нет |
ФлексОС 286 | FlexOS 286 , S5-DOS/ST , S5-DOS/MT , ОС 4680 , FlexOS 386 , ОС 4690 | .286 | Нет ( только 286 и выше) | Да | Нет | Нет | Расширение | Расширение | Нет | Нет | Нет |
КП/М-68К | CP/M-68K , параллельная DOS 68K , FlexOS 68K | .68K | Нет ( только 68000 и выше) | Да | Нет | Нет | Unknown | Unknown | Нет | Нет | Нет |
COM (КП/М) | CP/M , MP/M , Параллельный CP/M , Персональный CP/M | .COM | Нет ( 8080 / Z80 ) только | Расширение ( только BDOS 3 и выше) | Нет | Нет | Нет | Нет | Нет | Расширение | Нет |
С (ДОС) | 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 , ДОС Плюс | .COM | Нет ( x86 ) только | Нет | Расширение Novell/Caldera ( ВЕРСИЯ и т. д.) | Нет | Нет | Нет | Расширение | Расширение | Нет |
МЗ (ДОС) | DOS , OS/2 , Windows (кроме 64-битных версий) , Concurrent DOS 286 , FlexOS , Concurrent DOS 386 , Multiuser DOS , System Manager , REAL/32 , DOS Plus | .EXE | Нет ( x86 ) только | Да | Расширение Novell/Caldera ( ВЕРСИЯ и т. д.) | Нет | Расширение | Расширение | Расширение | Нет | Нет |
МЗ (СОХРАНИТЬ) | ГЕМ , ВьюМАКС | .APP/.ACC | Нет ( x86 ) только | Да | Нет | Нет | Unknown | Unknown | Нет | Нет | Unknown |
NE | MS-DOS 4.0 (многозадачность) , OS/2 , Windows , HX DOS Extender | .EXE | Unknown | Unknown | Unknown | Нет | Unknown | Unknown | Нет | Только МЗ (DOS) [11] | Да |
ЛЕ , ( Ж3 , Ж4 ) | OS/2 (только 2.0 и выше) , некоторые расширители DOS | .EXE | Да по файлам ( только 286 и выше) | Да | Да | Нет | Да | Да | Нет | Нет | Да |
ЛХ | OS/2 (только 2.0 и выше) , некоторые 32-битные расширители DOS. | .EXE | Да, по файлу | Да | Да | Нет | Да | Да [12] | Нет | Нет | Да |
ПИМ / Чип | PalmDOS ( только приложения MINIMAX ) | .PIM/.XIP | Нет ( x86 ) только | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
ДЛ | MS-DOS System Manager Приложения ( только серия HP LX ) | .EXM | Нет ( только 186/188 и выше ) | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
член парламента | Phar Lap DOS Расширения | .EXP | Неизвестно ( только 286 и выше) | Да | Нет | Нет | Unknown | Unknown | Нет | Нет | Нет |
П2 | Phar Lap 16-битные расширители DOS | .EXP | Неизвестно ( только 286 и выше) | Да | Нет | Нет | Unknown | Unknown | Нет | Нет | Нет |
П3 | Phar Lap 32-битные расширители DOS | .EXP | Неизвестно ( только 386 и выше) | Да | Нет | Нет | Unknown | Unknown | Нет | Нет | Нет |
ГЕОС | ПК/GEOS , Geoworks Ensemble , NewDeal Office , Breadbox Ensemble | .GEO | Неизвестно ( x86 ) только | Unknown | Unknown | Нет | Unknown | Unknown | Нет | Нет | Unknown |
Примечания [ править ]
- ^
- Метаданные обычно используются для описания управляющих данных, используемых в более абстрактных или настраиваемых архитектурах программного обеспечения. Большинство форматов исполняемых файлов включают в себя так называемые «метаданные», которые определяют определенные, обычно настраиваемые, поведенческие времени выполнения характеристики . Однако трудно, если не невозможно, точно отличить «метаданные» программы от общих аспектов вычислительной архитектуры хранимых программ ; если машина читает ее и действует в соответствии с ней, это вычислительная инструкция , и префикс «мета» не имеет большого значения.
- В Java формат файла классов Java содержит метаданные, используемые компилятором Java и виртуальной машиной Java для динамического связывания классов и поддержки рефлексивного программирования (отражения). Платформа Java Standard Edition, начиная с J2SE 5.0, включает в себя средство метаданных , позволяющее добавлять дополнительные аннотации, используемые инструментами разработки .
- В DOS формат файла COM обычно не включает метаданные, в отличие от файлов EXE и форматов переносимых исполняемых файлов Windows (PE). Эти метаданные могут включать компанию, опубликовавшую программу, дату создания программы, номер версии и т. д.
- В формат исполняемого файла .NET Framework включены дополнительные метаданные, обеспечивающие отражение во время выполнения.
Ссылки [ править ]
- ^ «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 года .
- ^ «Формат подписи переносимого исполняемого файла Windows Authenticode» . Майкрософт. 29 августа 2008 года . Проверено 9 июля 2012 года .
- ^ История портативного исполняемого файла
- ^ «Справочник по формату файлов Mac OS X ABI Mach-O» . Apple Inc., 4 февраля 2009 г. Проверено 9 июля 2012 года .
- ^ Jump up to: Перейти обратно: а б «a.out(5) — Ман-страницы FreeBSD» . Freebsd.org. 10 июня 2010 г. Проверено 9 июля 2012 года .
- ^ «Справочник по файлам – формат объектного файла XCOFF» . ИБМ.
- ^ «Справочник по командам MPW — DumpPEF» . Apple Inc. Архивировано из оригинала 12 мая 2008 года.
- ^ Заглушка DOS нового исполняемого файла
- ^ «LX — Описание формата линейного исполняемого модуля» . 3 июня 1992 года . Проверено 7 июля 2019 г.