Mach-O (сокращение от Mach object) — формат исполняемых и объектных ов, динамических библиотек и дампов памяти, использующийся в операционных системах Apple Inc. и некоторых других. Был введён вместо формата a.out и предоставляет большие возможности для расширяемости и более быстрый доступ к информации в таблице символов.

Mach-O используется в большинстве систем, основанных на ядре Mach, например NeXTSTEP, iOS и Mac OS X. В GNU Hurd, основанном на микроядре GNU Mach, в качестве стандартного формата двоичных файлов используется ELF, а не Mach-O.

Заголовок файла

+ Заголовок файла Mach-O Смещение Байты Описание 0 4 Магическое число 4 4 Тип ЦП 8 4 Подтип ЦП 12 4 Тип файла 16 4 Количество команд загрузки 20 4 Размер команд загрузки 24 4 Флаги 28 4 Зарезервировано (только для 64-бит)

Магическое число для 32-битного кода — , а для 64-битных архитектур — .

Зарезервированное значение присутствует только в 64-битных файлах Mach-O. Оно зарезервировано для будущего использования или расширения 64-битного заголовка.

Тип ЦП указывает архитектуру набора инструкций для кода. Если файл предназначен для 64-битной версии архитектуры набора инструкций, значение типа ЦП имеет установленный бит . Если файл предназначен для 64-битной версии архитектуры набора инструкций, но с 32-битными указателями, значение типа ЦП имеет установленный бит .

Значения типа ЦП следующие:

+ Тип ЦП Значение Тип ЦП 0x00000001 VAX 0x00000002 ROMP 0x00000004 NS32032 0x00000005 NS32332 0x00000006 MC680x0 0x00000007 x86 0x00000008 MIPS 0x00000009 NS32352 0x0000000B HP-PA 0x0000000C ARM 0x0000000D MC88000 0x0000000E SPARC 0x0000000F i860 (big-endian) 0x00000010 i860 (little-endian) или, возможно, DEC Alpha 0x00000011 RS/6000 0x00000012 PowerPC / MC98000 0x00000018 RISC-V

Примечания

Ссылки

Mach Object Files (документация NeXTSTEP)

Категория:Форматы исполняемых файлов Категория:MacOS Категория:NeXT