Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

Executable and Linkable Format

Матеріал з Вікіпедії — вільної енциклопедії.
Ця статтяпотребує додатковихпосилань на джерела для поліпшення їїперевірності. Будь ласка, допоможітьудосконалити цю статтю, додавши посилання нанадійні (авторитетні) джерела. Зверніться насторінку обговорення за поясненнями та допоможіть виправити недоліки.
Матеріал без джерел може бутипіддано сумніву та вилучено.
(липень 2016)

ELF (англ.Executable and Linkable Format —формат виконання та зв'язування, раніше звавсяангл.Extensible Linking Format —розширюваний зв'язувальний формат) — форматвиконуваного файла,об'єктних модулів, розділювальних бібліотек тасистемних дампів; використовується в багатьохUnix-подібних операційних системах, наприклад, вLinux,FreeBSD іSolaris.

Історія

[ред. |ред. код]

ELF формат був розроблений і опублікованийUNIX System Laboratories (USL), як частинадвійкового бінарного інтерфейсу (ABI).Комітет з стандартів інтерфейсу (TIS) визначив ELF, як стандарт для портативних об'єктних файлів, що працюють на 32-бітних архітектурах компаніїIntel, для різних операційних систем.

Структура

[ред. |ред. код]

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

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

  • виконуваними (normal executable files) — файли придатні для виконання, створює образ процесу (process image);
  • об'єктними (relocatable object files) — містять код та дані, придатні для зв'язування (linking) з іншими об'єктними файлами для створення виконуваних;
  • спільні об'єктні файли (shared object file) — містять код та дані, придатні для зв'язування у двох сенсах: статичне зв'язування (зв'язування з іншими об'єктними файлами під час процесу зв'язування для створення виконуваних файлів), динамічне зв'язування (звертання виконуваного файлу до спільних об'єктних файлів, для створення образу процесу).


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

ELF-заголовок, таблиця програмних заголовків, таблиця заголовків секцій описуються, як структури C, які включають в себе інші типи, що також визначені у заголовному файлі <elf.h>.

Нижче перераховані типи, які використовують для N-бітної архітектури (N = 32 чи 64):

          ElfN_Addr       Беззнакова адреса, uintN_t          ElfN_Off        Беззнакове зміщення, uintN_t          ElfN_Section    Беззнаковий індекс секції, uint16_t          ElfN_Versym     Unsigned version symbol information, uint16_t          Elf_Byte        Беззнаковий char          ElfN_Half       uint16_t          ElfN_Sword      int32_t          ElfN_Word       uint32_t          ElfN_Sxword     int64_t          ElfN_Xword      uint64_t

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

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

[ред. |ред. код]

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

Також можна використовувати програми з пакетуGNU Binutils.

Література

[ред. |ред. код]

Посилання

[ред. |ред. код]
Формативиконуваних таоб'єктних файлів


Інформаційні технологіїЦе незавершена стаття проінформаційні технології.
Ви можетедопомогти проєкту,виправивши або дописавши її.
Операційні системиЦе незавершена стаття проопераційні системи.
Ви можетедопомогти проєкту,виправивши або дописавши її.


Отримано зhttps://uk.wikipedia.org/w/index.php?title=Executable_and_Linkable_Format&oldid=42216183
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2026 Movatter.jp