формат elf

Книга присвячена сімейства операційних систем UNIX і містить інформацію про принципи організації, ідеології та архітектури, які об'єднують різні версії цієї операційної системи.

У книзі розглядаються: архітектура ядра UNIX (підсистеми вводу / виводу, управління пам'яттю і процесами, а також файлова підсистема), програмний інтерфейс UNIX (системні виклики і основні бібліотечні функції), призначена для користувача середовище (командний інтерпретатор shell, основні команди і утиліти) і мережна підтримка в UNIX (протоколів сімейства TCP / IP, архітектура мережевої підсистеми, програмні інтерфейси сокетов і TLI).

Для широкого кола користувачів

Книга: Операційна система UNIX

формат ELF

Формат ELF має файли кількох типів, які до сих пір ми називали по-різному, наприклад, виконуваний файл або об'єктний файл. Проте стандарт ELF розрізняє такі типи:

1. Переміщуваний файл (relocatable file), який зберігає інструкції і дані, які можуть бути пов'язані з іншими об'єктними файлами. Результатом такого зв'язування може бути виконуваний файл або розділяється об'єктний файл.

2. розділяється об'єктний файл (shared object file) також містить інструкції і дані, але може бути використаний двома способами. У першому випадку, він може бути пов'язаний з іншими переміщуються файлами і розділяються об'єктними файлами, в результаті буде створено новий об'єктний файл. У другому випадку, при запуску програми на виконання операційна система може динамічно зв'язати його з виконуваним файлом програми, в результаті чого буде створено виконуваний образ програми. В останньому випадку мова йде про поділюваних бібліотеках.

3. Виконавчий файл зберігає повний опис, що дозволяє системі створити образ процесу. Він містить інструкції, дані, опис необхідних поділюваних об'єктних файлів, а також необхідну символьну і налагодження.

На рис. 2.4 приведена структура виконуваного файлу, за допомогою якого операційна система може створити образ програми і запустити програму на виконання.

формат elf

Мал. 2.4. Структура виконуваного файлу в форматі ELF

Тема має фіксоване розташування у файлі. Інші компоненти розміщуються відповідно до інформації, що зберігається в заголовку. Таким чином заголовок містить загальний опис структури файлу, розташування окремих компонентів і їх розміри.

Оскільки заголовок ELF-файлу визначає його структуру, розглянемо його більш докладно (табл. 2.4).

Таблиця 2.3. Поля заголовка ELF-файлу

Інформація, що міститься в таблиці заголовків програми, вказує ядру, як створити образ процесу з сегментів. Більшість сегментів копіюються (відображаються) в пам'ять і являють собою відповідні сегменти процесу при його виконанні, наприклад, сегменти коду або даних.

Кожен заголовок сегмента програми описує один сегмент і містить наступну інформацію:

Тип сегмента і дії операційної системи з даним сегментом

Розташування сегмента в файлі

Розмір сегмента в файлі

Розмір сегмента в пам'яті

Прапори доступу до сегменту (запис, читання, виконання)

Ми ще повернемося до формату ELF в розділі 3 при обговоренні організації віртуальної пам'яті процесу, а поки перейдемо до наступного поширеній формату - COFF.

Схожі статті