Új verziók a Box86 és Box64 emulátorokból, amelyek lehetővé teszik az x86 játékok futtatását ARM rendszereken.

Megjelent a Box86 0.2.6 és a Box64 0.1.8 emulátorok, amelyek célja, hogy Linux-alkalmazásokat futtassanak x86 és x86_64 architektúrára írt programokhoz ARM, ARM64, PPC64LE és RISC-V processzorokkal rendelkező hardvereken. A projektek egy csapat fejlesztő által szinkronban fejlődnek — a Box86 a 32 bites x86 alkalmazások futtatására korlátozódik, míg a Box64 a 64 bites végrehajtható fájlokat biztosítja. A projekt nagy figyelmet fordít a játékalkalmazások futtatási módjának kialakítására, beleértve a Windows-összeállítások futtatásának lehetőségét a wine és a Proton segítségével. A projekt forráskódjai C nyelven készültek, és MIT licenc alatt terjesztik (Box86, Box64).

A projekt különlegessége egy hibrid végrehajtási modell alkalmazása, amelyben az emuláció csak az alkalmazás gépi kódjára és a specifikus könyvtárakra vonatkozik. A tipikus rendszerkönyvtárakat, beleértve a libc, libm, GTK, SDL, Vulkan és OpenGL, a célplatformok számára natív alternatívákra cserélik. Így a könyvtári hívások emuláció nélkül hajtódnak végre, ami jelentős teljesítménynövekedést eredményez.

Azoknak a kódoknak az emulálása, amelyekhez natív helyettesítők nem állnak rendelkezésre a célplatform számára, dinamikus újra-kompilálási (DynaRec) technika segítségével történik, amely egy gépi utasítás-gyűjteményből egy másikra konvertál. A gépi utasítások értelmezéséhez képest a dinamikus újra-kompilálás 5-10-szer magasabb teljesítményt mutat.

A Box86 és Box64 emulátorok teljesítménytesztjei az Armhf és Aarch64 platformokon jelentősen felülmúlták a QEMU és FEX-emu projekteket, és bizonyos tesztekben (glmark2, openarena) az ő teljesítményük azzal volt azonos, mintha a célplatform natív összeállításával futottak volna. A 7-zip és dav1d intenzív számításokat végző tesztekben a Box64 teljesítménye a natív alkalmazás 27% és 53% között alakult (összehasonlításképpen a QEMU 5-16%-os, míg a FEX-emu 13-26%-os eredményt mutatott). Továbbá összehasonlítást végeztek a Rosetta 2 emulátorral, amelyet az Apple használ x86 kód ARM M1 chipen való futtatására. A Rosetta 2 a 7zip alapú teszt elvégzését 71%-os teljesítménnyel biztosította a natív összeállításhoz képest, míg a Box64 teljesítménye 57% volt.

Új verziók a Box86 és Box64 emulátorokból, amelyek lehetővé teszik az x86 játékok futtatását ARM rendszereken.

Ami az alkalmazások kompatibilitását illeti, a tesztelt 165 játékból körülbelül 70% működött sikeresen. További körülbelül 10% működik, de bizonyos korlátozásokkal. A támogatott játékok között van a WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious és a GameMaker cég szinte összes játéka. A problémás játékok között említést nyernek a Unity3D motoron alapuló játékok, amelyek a Mono csomagra építenek, amelynek emulációja még nem mindig működik a Mono JIT-kompiláció miatt, valamint meglehetősen magas grafikai igényekkel bír, amelyeket nem mindig lehet elérni ARM-alapú platformokon. A GTK-alkalmazások könyvtárainak helyettesítése jelenleg a GTK2-re korlátozódik (a GTK3/4 helyettesítése még nem teljesen megvalósított).

A legfontosabb változások az új kiadásokban:

  • Hozzáadva a Vulkan könyvtár csomagja. Támogatás került a Vulkan grafikai API és a DXVK (DXGI, Direct3D 9, 10 és 11 Vulkan feletti megvalósítása) számára.
  • Javították a GTK könyvtárak csomagjait. Hozzáadva a gstreamer és a GTK-alkalmazásokban általában használt könyvtárak csomagjait.
  • Kezdeti támogatás került hozzáadásra (jelenleg csak az értelmezési mód) a RISC-V és PPC64LE architektúrák számára.
  • Javításokat végeztek a SteamPlay és a Proton réteg támogatásának javítása érdekében. Lehetővé vált sok Linux és Windows játék indítása a Steam-en az AArch64 platformokon, mint például a Raspberry Pi 3 és 4.
  • Javították a memória kezelést, a mmap működését és a memória védelmi megsértések nyomon követését.
  • Javult a clone rendszerhívás támogatása a libc-ben. Új rendszerhívások támogatása került hozzáadásra.
  • A dinamikus újrakompiláló motorban javult a SSE/x87 regiszterek kezelése, új gépi kódok támogatása került bevezetésre, optimalizálták a float és double számok konvertálását, javították a belső ugrások feldolgozását, valamint leegyszerűsítették az új architektúrák támogatásának hozzáadását.
  • Javították az ELF fájlok betöltőjét.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster