Перейти до вмісту

Executable and Linkable Format

Матеріал з Вікіпедії — вільної енциклопедії.

ELF (англ. Executable and Linking FormatФормат Виконання та Зв'язування) — формат двійкового файла, що може виконуватись, використовується в багатьох UNIX-подібних операціних системах, наприклад, в GNU-Linux і Solaris.

Структура

В заголовному файлі <elf.h> визначена структура, що описує ELF файли.

ELF файли бувають:

  • виконуваними (normal executable files);
  • об'єктними (relocatable object files);
  • основними (core files);
  • спільна бібліотека (shared libraries).

Кожен файл формату ELF має ELF-заголовок (ELF header) (обов'язково), потім йде таблиця програмних заголовків (program header table) чи таблиця заголовків секцій (section header table), або і те, і інше. ELF-заголовок обов'язково має нульове зміщення у файлі (тобто знаходиться на його початку). Зміщення у файлі для таблиці програмних заголовків і таблиці заголовків секцій визначається у ELF-заголовку.

Поля цієї таблиці використовує завантажувач (ELF interpreter) для запису програми в оперативну пам'ять перед виконуванням.

Робота з ELF файлами

Для роботи з ELF файлами використовують бібліотеку libelf.

Посилання