Некоторые отличия формата PE от ELF и Mach-O:
- Область применения: PE используется в операционной системе Microsoft Windows, ELF — в системах на базе Linux и Unix, Mach-O — в macOS. ru.ruwiki.ru inventivehq.com
- Структура:
- PE: файлы PE не содержат позиционно-независимого кода, все адреса, генерируемые компилятором/компоновщиком, заранее фиксированы. ru.ruwiki.ru ru.wikipedia.org
- ELF: использует полностью позиционно-независимый код и глобальную таблицу смещений, которая жертвует временем выполнения в пользу расходования памяти. ru.wikipedia.org
- Mach-O: в отличие от PE и ELF, Mach-O интегрирует подписание кода непосредственно в формат через команду LCCODESIGNATURE load. inventivehq.com
- Поддержка архитектур:
- PE: поддерживает архитектуры наборов команд, включая IA-32, x86-64 (AMD64/Intel 64), IA-64, ARM и ARM64. ru.ruwiki.ru en.wikipedia.org
- ELF: универсален, его конструкция позволяет выполнять его на различных типах процессоров. www.baeldung.com
- Mach-O: поддерживает универсальные двоичные файлы, которые содержат несколько архитектур в одном файле. inventivehq.com
При этом у PE, ELF и Mach-O есть общие цели: эффективная загрузка кода, динамическая связка и, всё чаще, функции безопасности, такие как ASLR и DEP. inventivehq.com