Executable and Linkable Format
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 файли бувають:
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. Література
Посилання
|
Portal di Ensiklopedia Dunia