Fisier executabil

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un fișier executabil (sau pur și simplu un executabil ), în informatică , indică un fișier care conține un program executabil pentru un computer , adică un program scris în limbajul mașinii executabil direct de procesor : se distinge de un fișier sursă , care conține un program scris într-un limbaj de programare de nivel înalt care poate fi executat doar folosind un interpret sau transformându-l mai întâi într-un executabil ( cod obiect + biblioteci ) prin intermediul unui compilator , sau cu o combinație a acestor două instrumente.

Descriere

În general, executabilele depind de platformă : de exemplu, un fișier executabil pentru un sistem Microsoft Windows nu este utilizabil direct în sistemele Unix sau Mac OS (cu excepția cazului în care utilizați software de emulare [1] ). Această restricție se datorează a trei motive:

  • diferite procesoare acceptă în general limbaje mașini diferite și incompatibile;
  • Diferite sisteme de operare folosesc în general diferite formate pentru fișierele executabile: de exemplu în sistemele Unix și Unix , formatul ELF este comun, în timp ce în alte sisteme se utilizează COFF sau derivatele sale, sau chiar Mach-O ;
  • pentru a efectua operațiuni de bază (de exemplu intrare / ieșire ) programele executabile trebuie să utilizeze primitivele furnizate de sistemul de operare al computerului pe care sunt rulate, a căror utilizare este specifică sistemului de operare. În consecință, chiar și cu același procesor, un fișier executabil pentru un anumit sistem de operare este în general inutilizabil pe alte platforme sau nu este portabil . De exemplu, fișierele executabile pentru sistemele Microsoft Windows pe arhitectura x86 nu pot fi utilizate direct [1] pe sistemele Linux pe arhitectura x86, chiar dacă ambele folosesc aceeași clasă de procesor.

Fiecare sistem de operare are propria convenție pentru a distinge fișierele executabile de fișierele care conțin date. Unele sisteme folosesc extensii specifice (de exemplu „ .exe ” în MS-DOS și Microsoft Windows ); altele se referă la atributele speciale ale fișierului indicate în permisiunile sale (cum ar fi permisiunea " x " pentru a executa sistemele Unix și Unix-like ) sau necesită un marker special într-o poziție prestabilită în fișierul însuși: din nou pe Unix, de exemplu, împreună cu bitul „x” se folosește și așa-numitul număr magic , adică unul sau mai mulți octeți cu valori prestabilite plasate la începutul fișierului care identifică tipul, ca în cazul shabangului (acest ideea a fost extinsă la alte sisteme de operare, inclusiv AmigaOS, unde numărul magic se numește „cookie cookie”).

În mod normal, atunci când încărcați un fișier executabil în memorie , codul mașinii trece printr-un proces de relocare . Cu alte cuvinte, toate referințele la adresele de memorie prezente în cod sunt traduse în mod adecvat în funcție de adresa de bază în care programul este încărcat de fapt. Această problemă este atenuată de utilizarea memoriei virtuale ; cu toate acestea, poate fi necesară mutarea bibliotecilor dinamice .

Utilizare

Este realizat într-un format dat și are două scopuri principale:

a) să fie încărcat de sistemul de operare , deci pregătit pentru execuție;

b) arhitectura hardware a procesorului care îl rulează.

Termenul executabil este uneori folosit într-un sens extins pentru a se referi, de asemenea, la toate acele programe care pot fi executate fără o traducere explicită prealabilă (compilare) în limbajul mașinii. În acest caz, ar putea fi aplicat și pentru:

Notă

  1. ^ a b În anumite limite este posibil să le utilizați prin intermediul Wine

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT