Formatul executabil și legare

Standardul de format ELF distinge mai multe tipuri de fișiere:

  • Fișier mobil - stochează instrucțiuni și date care pot fi asociate cu alte fișiere obiect. Rezultatul unei astfel de conexiuni poate fi un fișier obiect partajat sau un fișier executabil. Acest tip de fișiere obiect sunt biblioteci statice.
  • Fișierul obiect partajat - conține, de asemenea, instrucțiuni și date, și pot fi asociate cu alte fișiere de mutare și fișiere partajate obiect, rezultând într-un fișier nou obiect, sau atunci când începe un program pentru a efectua un sistem de operare poate lega dinamic cu programul executabil va fi creat ca rezultat al că imaginea executabilă a programului va fi creată. În ultimul caz, este vorba de biblioteci partajate.
  • Fișier executabil - conține o descriere completă, care permite sistemului să creeze o imagine a procesului. Inclusiv: instrucțiuni, date, descrierea fișierelor obiect partajate necesare și informațiile necesare simbolice și de depanare.

Formatul executabil și legare












Dosarele ELF au două tipuri de partiții. Antetul programului corespunde segmentelor care vor fi utilizate pentru execuție. Antetul secțiunii (antetul secțiunii) afișează secțiuni ale fișierului executabil

Fiecare fișier ELF este alcătuit din următoarele părți:

Titlul dosarului

Câmpurile antetului fișierului ELF

Matricea este de 16 octeți, fiecare definind caracteristicile generale ale fișierului. Primii patru octeți din matrice determină semnătura fișierului și trebuie să conțină întotdeauna 0x 7f 0x45 0x4c 0x46.

Indicele de înregistrare din tabela de partiții care indică tabelul titlurilor secțiunilor.

Tabel de anteturi de programe

Tabelul pentru anteturile programului sau tabelul de antet al segmentului este localizat imediat după antetul fișierului și conține anteturile segmentului, fiecare dintre acestea descriind un segment de program separat și atributele acestuia, cum ar fi:

  • Tipul de segment și acțiunile sistemului de operare cu acest segment.
  • Segmentarea locației.
  • Punctul de intrare al segmentului.
  • Dimensiunea segmentului.
  • Accesați steaguri pentru segment (scrieți, citiți, executați).

Informațiile conținute în acest tabel prezintă interes pentru kernelul sistemului, deoarece acesta îi spune cum să asambleze imaginea de proces din segmente.

Tabelul titlurilor secțiunilor

Conținutul secțiunilor și segmentelor

Segmentele conțin datele necesare executării fișierului, iar secțiunile conțin informații pentru conectarea și manipularea relocării. Fiecare octet dintr-un fișier se poate referi la nu mai mult de o secțiune.







Trimiteți-le prietenilor: