format elf

Cartea este dedicată familiei de sisteme de operare UNIX și conține informații cu privire la principiile de organizare, ideologia și arhitectura, reunind diferitele versiuni ale sistemului de operare.

Cartea cuprinde: arhitectura nucleului UNIX (O, managementul memoriei, și de proces, precum și subsistemul I / fișier), interfață de programare UNIX (apeluri de sistem și funcții de bibliotecă de bază), mediul utilizator (shell shell, comenzile de bază și utilități) și rețea suport (familie TCP / IP protocol, arhitectura subsistemului de rețea, prize de program și interfețele TLI) UNIX.

Pentru o gamă largă de utilizatori

Rezervă: sistem de operare UNIX

formatul ELF

Formatul ELF are mai multe tipuri de fișiere pe care până acum am fost chemați în diferite moduri, de exemplu, un fișier executabil sau un fișier obiect. Cu toate acestea, standardul ELF distinge între următoarele tipuri:

fișiere 1. mutare (fișier relocabile), stochează instrucțiunile și datele care pot fi corelate cu alte fișiere obiect. Rezultatul acestei legare poate fi un executabil sau un fișier obiect partajat.

2. Fișierul obiect partajat (fișier obiect partajat) conține, de asemenea, instrucțiuni și date, dar pot fi utilizate în două moduri. În primul caz, acesta poate fi asociat cu alte fișiere de mutare și fișiere partajate obiect, rezultând într-un nou fișier obiect este creat. În al doilea caz, atunci când programul începe să funcționeze sistemul de operare se poate lega dinamic cu programul executabil, rezultând într-o imagine executabilă a programului va fi creat. În acest din urmă caz ​​este vorba despre bibliotecile partajate.

3. Fișierul executabil conține o descriere completă, permite sistemului să creeze o imagine a procesului. Acesta conține instrucțiuni, date, descrierea fișierelor partajate obiect necesare, precum și caracterul dorit, și informații de depanare.

Fig. 2.4 prezintă structura unui fișier executabil care permite sistemului de operare poate crea o imagine a programului și executați programul de execuție.

format elf

Fig. 2.4. Structura fișierului executabil în format ELF

Antetul are o locație fixă ​​în fișierul. Componentele rămase sunt plasate în conformitate cu informațiile stocate în antet. Astfel antet conține o descriere generală a structurii fișierului, dispunerea componentelor individuale și dimensiunile acestora.

Deoarece fișierul ELF-antet definește structura, se ia în considerare mai în detaliu (vezi Tabelul 2.4.).

Tabelul 2.3. câmp de antet pentru ELF-files

Informațiile conținute în tabelul de antet de program, spune kernel-ul cum să creeze o imagine a procesului de segmente. Cele mai multe segmente sunt copiate (prezentate) în memorie și reprezintă segmentele de proces respective în timpul execuției sale, de exemplu, segmente de cod sau date.

Fiecare titlu a segmentului de program descrie un singur segment, și conține următoarele informații:

Tipul de segment și acțiunea sistemului de operare cu segmentul de date

segment Locul de amplasare în fișierul

dimensiunea segmentului în fișier

dimensiunea segmentului în memorie

Steaguri segmente de acces (citire, scriere, executare)

Vom reveni la formatul ELF în capitolul 3, atunci când se discută organizarea memoriei virtuale de proces, și totuși trece la următorul format comun - COFF.