Форматы исполняемых файлов для Windows (PE), Linux (ELF), OS/X и т. Д. (MACH-O), как правило, предназначены для решения общих проблем, поэтому все они имеют общие функции.Тем не менее, каждая платформа определяет другой стандарт, поэтому файлы несовместимы между платформами, даже если платформы используют один и тот же тип процессора.
Форматы исполняемых файлов используются не только для исполняемых файлов, но также и для библиотек, которые также содержат код, но никогда не запускаются непосредственно пользователем, загружаемым только в память, чтобы удовлетворить потребности непосредственно исполняемых двоичных файлов.
Общие характеристики исполняемого формата файла:
- один или несколько блоков исполняемого кода
- один или несколько блоков только для чтения данных, таких как текст и цифры
- один или несколько блоков чтение/запись данных
- Инструкции по размещению этих блоков в памяти при запуске приложения
- Инструкции о том, какие библиотеки (которые также находятся в формате исполняемого файла), должны быть и как они подключаются (link) до этого исполняемого файла.
- Одна или несколько таблиц, отображающих коды и местоположения данных для строк или идентификаторов, которые их описывают, полезны для связывания и отладки.
Это интересно сравнить такие форматы более основные форматы, такие как почтенный DOS .com
файл, который просто описывает 64K ассорти «вещи», которые будут загружены в следующем доступном месте, и имеет несколько особенностей, перечисленных выше.
Двоичные в этом смысле используются для сравнения их с «исходными» файлами, которые написаны в текстовом формате. Бинарный формат просто говорит, что они закодированы нетекстовым способом и на самом деле не связаны с двоичным значением 0 и 1.
Вы греческий? Если это так, «приветствует» прямо на вас! –