MZ (формат)
MZ — стандартный формат 16-битных исполняемых файлов с расширением .EXE для DOS. Назван так по сигнатуре — ASCII-символам MZ (4D 5A) в первых двух байтах. Эта сигнатура — инициалы Марка Збиковски, одного из создателей MS-DOS.[4]
MZ | |
---|---|
Расширение |
.exe или .dll |
MIME-тип | application/x-dosexec[1], application/x-msdos-program[2] и application/x-ms-dos-executable[3] |
Сигнатура | MZ или ZM |
Разработчик | Майкрософт |
Тип формата | exe-формат исполняемых файлов[вд] |
Расширен из | .COM |
Развит в |
New Executable Linear Executable Portable Executable |
Формат был разработан как замена устаревшему формату .COM. Исполняемые файлы MZ включают метаданные, могут иметь размер больше 64 Кбайт и использовать несколько сегментов памяти различного типа (кода, данных и стека), точка входа в программу также может быть в любом месте (в файлах .COM выполнение команд всегда начинается непосредственно с начала файла). Метод загрузки исполняемого файла определяется по сигнатуре: при её наличии обрабатывается MZ-заголовок, при отсутствии файл запускается как .COM — независимо от расширения файла (например, в последних версиях MS-DOS интерпретатор командной строки COMMAND.COM на самом деле является EXE-файлом).
Исполняемые файлы более поздних форматов для Windows начинаются с MZ-заглушки. Обычно заглушка, добавляемая компиляторами, выводит сообщение наподобие «This program cannot be run in DOS mode» («Эту программу невозможно запустить в режиме DOS»).
В старых компоновщиках для DOS могла применяться сигнатура ZM, которая также распознается MS-DOS и рядом совместимых ОС.[5]
Примечания
править- ↑ https://github.com/file/file/blob/FILE5_38/magic/Magdir/msdos#L55 — 2019.
- ↑ https://salsa.debian.org/debian/mime-support/blob/debian/3.64/mime.types#L479
- ↑ https://gitlab.freedesktop.org/xdg/shared-mime-info/-/blob/2.3/data/freedesktop.org.xml.in#L3231-3238
- ↑ Matt Pietrek. An In-Depth Look into the Win32 Portable Executable File Format (англ.). MSDN Magazine (февраль 2002). Дата обращения: 11 декабря 2009. Архивировано из оригинала 25 марта 2012 года.
- ↑ Table 1593 - Values for the executable types understood by various environments . Ralf Brown’s Interrupt List (версия 61 от 17.07.2000). Дата обращения: 16 декабря 2012. Архивировано 6 июня 2011 года.
Ссылки
править- EXE Format (англ.) — описание формата
- comp.os.msdos.programmer FAQ/part2 (недоступная ссылка) (англ.) — см. Section 3