Я немного запутался в терминологии.
Файл, который вводится в качестве вставки в компоновщик, называется Файл объекта. Компилятор создает файл изображения, который, в свою очередь, используется в качестве входа загрузчика.
Я получил это от "Спецификация MS PE и COFF"
Q1. Файл изображения также называется Binary Image
, Binary File
или просто Binary
. Правильно?
Q2. Таким образом, согласно вышеуказанной терминологии, PE/ELF/COFF являются форматами файла изображения, а не файла объекта. правильно? Но http://www.sco.com/developers/gabi/latest/ch4.intro.html говорит
В этой главе описывается формат объектного файла, называемый ELF (Исполняемый и Связывающий формат). Существует три основных типа объектных файлов.
Перемещаемый файл содержит код и данные, подходящие для связи с другими объектные файлы для создания исполняемого файла или общий файл объекта.
В исполняемом файле содержится программа, подходящая для исполнения; file указывает, как создает exec (BA_OS) образ программного процесса.
Общий файл объекта хранит код и данные, подходящие для соединения в двух контексты. Во-первых, редактор ссылок [см. ld (BA_OS)] обрабатывает общий объект файл с другим перемещаемым и общим объектные файлы для создания другого объекта файл. Во-вторых, динамический компоновщик объединяет его с исполняемым файлом и другие общие объекты для создания образ процесса.
В противоположность этому он говорит, что оба файла объекта и файла изображения являются форматами ELF, и он вовсе не различает файлы объектов и изображений, но обычно ссылается на файлы объектов. Разве это не так?
Q3. Я знаю, что PE получен из COFF. Но почему спецификации Microsoft для формата PE называются Microsoft Portable Executable и спецификация формата файла единого объекта. Поддерживают ли они еще COFF? Если они, в какой ОС? Я думал, что PE полностью заменил COFF давно.