Операционная система UNIX. Руководство программиста

     

КОГДА ПРОГРАММА НАПИСАНА


Как правило, при компиляции программ в среде ОС UNIX в качестве последних двух фаз выполняются ассемблирование и редактирование внешних связей. При этом ассемблерный текст, то есть результат предыдущих фаз компиляции, транслируется в команды машинного языка компьютера, на котором программа будет выполняться. Редактор внешних связей разрешает все неопределенные ссылки и делает объектный файл выполняемым. Для большинства языков программирования в ОС UNIX ассемблер и редактор связей генерируют Объектные Файлы Обычного Формата. В результате утилиты, обрабатывающие объектные файлы, могут работать на разных компьютерах под управлением различных версий ОС UNIX, поскольку форматы объектных файлов совпадают.

Объектный файл обычного формата содержит:

  • Заголовок файла.
  • Вспомогательный заголовок системы UNIX.
  • Таблицу заголовков секций.
  • Содержимое соответствующих секций.
  • Информацию о настройке ссылок.
  • Информацию о номерах строк.
  • Таблицу имен.
  • Таблицу цепочек.

Объектный файл состоит из секций. Обычно их по крайней мере две: .text и .data. В некоторых объектных файлах может быть также секция .bss, содержащая неинициализированные данные. Название этой секции происходит от мнемоники ассемблерной псевдокоманды bss (block started by symbol). Используя опции компиляторов, можно добиться включения в объектный файл дополнительной информации. Например, при компиляции с опцией -g добавляются номера строк и другая информация, необходимая для символьной отладки. Даже занимаясь программированием в течение многих лет, можно особенно не задумываться о содержимом и организации объектных файлов обычного формата, поэтому мы не будем сейчас останавливаться на этом вопросе. Обычному формату объектных файлов посвящена отдельная глава.



Содержание раздела