Binar de grăsime

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

Un binar de grăsime (sau binar multiarhitectural ) este un program nativ pentru mai multe seturi de instrucțiuni (SI) și, prin urmare, este executabil pe mai multe tipuri de arhitecturi de procesor. Metoda obișnuită de implementare constă în includerea unei versiuni de limbaj mașină pentru fiecare SI, creând un fișier de n ori mai mare decât un binar pentru o singură arhitectură, de unde și numele.

O utilizare populară a programelor binare fat a fost pentru Apple Macintosh PowerPC , unde un program trebuia să conțină atât procesorul Motorola 68000, cât și instrucțiunile PowerPC . Acest lucru a fost posibil prin includerea codului pentru PowerPC (în format PEF ) în furca de date a programului, în timp ce codul pentru 68000 a fost păstrat în furca de resurse . Programele binare fat sunt, de asemenea, utilizate pentru tranziția de la procesorul PPC la x86 între 2006 și 2007. Apple a ales să numească aceste binare „Binare universale ”, probabil pentru a distinge această nouă tranziție de procesor de cea anterioară. [1] [2]

Codul obiect Mach-O utilizat în sistemele de operare NEXTSTEP și OPENSTEP de la NeXT acceptă formatul binar fat, care permite compilarea software-ului dezvoltat pentru NeXT Cube și rularea pe o mașină Intel deasupra NeXTSTEP. Această tehnologie este disponibilă și în Darwin și, prin urmare, în macOS , unde poate fi utilizată pentru a suporta mai multe variante ale unei arhitecturi, având diferite versiuni ale codului compilate pentru procesoarele PowerPC G3 , PowerPC G4 și PowerPC G5 . Această soluție a fost adoptată inițial pentru a permite aplicațiilor OpenStep să ruleze pe procesoare IA-32 și diferite platforme suportate de RISC și a găsit o nouă utilizare în tranziția menționată anterior de la PPC la X86 .

Suportul pentru formatul binar fat nu este același pe sisteme de operare diferite; există multe alternative pentru a rezolva problema, cum ar fi utilizarea unui program de instalare pentru a alege binele specifice arhitecturii la momentul instalării, distribuirea codului sursă al programului și compilarea acestuia la fața locului sau utilizarea unei mașini virtuale și a unui compilator just-in-time . Fiecare dintre aceste soluții are dezavantajele sale, care devin mai evidente dacă utilizatorul încearcă să porteze un program pe o mașină nouă printr-un upgrade.

Notă

  1. ^ (EN) FatELF: binare universale pentru Linux pe lwn.net. Adus la 11 februarie 2020 .
  2. ^ (EN) Amit Singh, Mac OS X Internals . Adus la 11 februarie 2020 .
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT