Stratul de compatibilitate - Compatibility layer

În ingineria software , un strat de compatibilitate este o interfață care permite binare pentru un sistem moștenit sau străin să ruleze pe un sistem gazdă. Acest lucru traduce apelurile de sistem pentru sistemul străin în apeluri de sistem native pentru sistemul gazdă. Cu unele biblioteci pentru sistemul străin, acest lucru va fi adesea suficient pentru a rula binare străine pe sistemul gazdă. Un strat de compatibilitate hardware constă în instrumente care permit emularea hardware .

Software

Exemplele includ:

  • Wine , care rulează câteva binare Microsoft Windows pe sisteme de tip Unix folosind un program de încărcare și API-ul Windows implementat în DLL-uri
  • Straturile de compatibilitate a aplicațiilor Windows pentru a încerca să ruleze aplicații slab scrise sau cele scrise pentru versiunile anterioare ale platformei.
  • Lina , care rulează câteva binare Linux pe sisteme Windows, Mac OS X și Unix, cu aspect nativ.
  • KernelEX, care rulează unele programe Windows 2000 / XP pe Windows 98 / Me.
  • Executor , care rulează programe Mac OS „clasice” bazate pe 68k în Windows, Mac OS X și Linux.
  • Anbox , un strat de compatibilitate Android pentru Linux .
  • Columbia Cycada , care rulează aplicații Apple iOS pe sisteme Android
  • Hybris , bibliotecă care traduce Bionic în apeluri glibc.
  • Darling , un strat de traducere care încearcă să ruleze binare Mac OS X și Darwin pe Linux.
  • Subsistemul Windows pentru Linux v1, care rulează binare Linux pe Windows printr-un strat de compatibilitate care transformă apelurile de sistem Linux în apeluri de sistem native Windows.
  • Cygwin , un mediu compatibil POSIX care rulează nativ pe Windows.
  • 2ine , un proiect pentru a rula aplicația OS / 2 pe Linux
  • Rosetta 2 , stratul de traducere Apple inclus în macOS Big Sur pentru a permite aplicațiilor exclusive x86-64 să ruleze pe hardware ARM.

Stratul de compatibilitate în nucleu :

  • Stratul de compatibilitate Linux al FreeBSD , care permite programelor binare construite special pentru Linux să ruleze pe FreeBSD în același mod ca stratul API FreeBSD nativ. FreeBSD are, de asemenea, unele emulații de sistem Unix, inclusiv NDIS, NetBSD, PECoff, SVR4 și diferite versiuni de CPU ale FreeBSD.
  • NetBSD are mai multe emulații de sistem de tip Unix.
  • Subsistemul Windows pentru Linux oferă o interfață de nucleu compatibilă cu Linux dezvoltată de Microsoft și care nu conține cod Linux, cu binarele Ubuntu în modul utilizator care rulează deasupra acestuia.
  • Proiectul PEACE (alias COMPAT_PECOFF) are un strat compatibil Win32 pentru NetBSD. Proiectul este acum inactiv.
  • Pe RSTS / E pentru seria de minicomputere PDP-11 , programele scrise pentru a rula pe sistemul de operare RT-11 ar putea rula (fără recompilare) pe RSTS prin RT-11 Run-Time System având setul său EMT, ceea ce înseamnă că Instrucțiunea RT-11 EMT care se potrivește cu un RSTS EMT este redirecționată către RT-11 Run-Time System, care le transformă în echivalentul RSTS EMT. Programele scrise pentru a profita direct de RSTS (sau apeluri către RSTS în cadrul sistemului Run-Time) semnalează acest lucru având o a doua instrucțiune EMT (de obicei EMT 255) imediat înainte de codul RSTS EMT real.

Un strat de compatibilitate evită atât complexitatea, cât și pedeapsa de viteză a emulării hardware complete . Unele programe pot rula chiar mai repede decât originalul, de exemplu , unele aplicații Linux care rulează pe stratul de compatibilitate Linux al FreeBSD pot funcționa mai bine decât aceleași aplicații pe Red Hat Linux. Referințele sunt rulate ocazional pe Wine pentru a le compara cu sistemele de operare bazate pe Windows NT.

Chiar și pe sisteme similare, detaliile implementării unui strat de compatibilitate pot fi destul de complicate și supărătoare; un bun exemplu este stratul de compatibilitate binară IRIX din versiunea de arhitectură MIPS a NetBSD .

Un strat de compatibilitate necesită ca CPU- ul sistemului gazdă să fie (în sus) compatibil cu cel al sistemului străin. De exemplu, un strat de compatibilitate Microsoft Windows nu este posibil pe hardware-ul PowerPC deoarece Windows necesită un procesor x86 . În acest caz este necesară o emulare completă.

Hardware

Straturile de compatibilitate hardware implică instrumente care permit emularea hardware . Unele straturi de compatibilitate hardware implică cutii de breakout, deoarece cutiile de breakout pot oferi compatibilitate pentru anumite autobuze de computer care altfel sunt incompatibile cu aparatul.

Vezi si

Referințe

linkuri externe