ARM sistemetan x86 jokoak exekutatzeko aukera ematen duten Box64 eta Box86 emuladoreen bertsio berriak

Box86 0.2.6 eta Box64 0.1.8 emuladoreen bertsioak argitaratu dira ARM, ARM86, PPC86LE eta RISC-V prozesadoreetan x64 eta x64_64 arkitekturetarako eraikitako Linux programak exekutatzeko. Proiektuak garapen talde batekin sinkronizatuta garatzen dira - Box86 32 biteko x86 aplikazioak exekutatzeko gaitasunera mugatzen da, eta Box64-k 64 biteko exekutagarriak exekutatzeko gaitasuna eskaintzen du. Proiektuak arreta handia ematen dio joko-aplikazioen abiarazteari antolatzeari, besteak beste, Windows-eko eraikuntzak ardoaren eta Protonen bidez abiarazteko gaitasunari. Proiektuaren iturburu-testuak C hizkuntzan idatzita daude eta (Box86, Box64) MIT lizentziapean banatzen dira.

Proiektuaren ezaugarri bat exekuzio eredu hibrido bat erabiltzea da, zeinetan emulazioa aplikazioaren beraren makina-kodeari eta liburutegi zehatzei soilik aplikatzen zaien. Sistema-liburutegi generikoak, libc, libm, GTK, SDL, Vulkan eta OpenGL barne, xede-plataformetako jatorrizko aldaerekin ordezkatzen dira. Horrela, liburutegiko deiak emulaziorik gabe exekutatzen dira, eta horrek errendimendu handitzea ahalbidetzen du.

Helburu-plataformarako ordezkapen natiboak ez dituen kodearen emulazioa birkonpilazio dinamikoa (DynaRec) teknika erabiliz egiten da makina-agindu multzo batetik bestera. Makinen argibideen interpretazioarekin alderatuta, birkonpilazio dinamikoak 5-10 aldiz errendimendu handiagoa erakusten du.

Errendimendu probetan, Armhf eta Aarch86 plataformetan exekutatzen zirenean, Box64 eta Box64 emuladoreek QEMU eta FEX-emu proiektuak nabarmen gainditu zituzten, eta proba batzuetan (glmark2, openarena) xede-plataformaren jatorrizko muntaia exekutatzen duenaren berdina lortu zuten. . Konputazio intentsiboko 7-zip eta dav1d erreferentzietan, Box64-ren errendimendua jatorrizko aplikazioaren % 27 eta % 53 artean zegoen (QEMU % 5-16an eta FEX-emu % 13-26an alderatuta). Gainera, Apple-k ARM M2 txipa duten sistemetan x86 kodea exekutatzeko erabiltzen duen Rosetta 1 emuladorearekin alderaketa egin zen. Rosetta 2-k 7zip-en oinarritutako proba egin zuen jatorrizko eraikuntzaren % 71ean, eta Box64-k % 57an.

ARM sistemetan x86 jokoak exekutatzeko aukera ematen duten Box64 eta Box86 emuladoreen bertsio berriak

Aplikazioen bateragarritasunari dagokionez, probatu diren 165 jokoetatik, %70 inguruk arrakastaz irabazi du. %10 inguru lan gehiago, baina zenbait erreserba eta murrizketarekin. Onartutako jokoen artean daude WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious eta GameMaker joko gehienak. Arazoak antzematen diren jokoen artean, Unity3D motorrean oinarritutako jokoak aipatzen dira, Mono paketeari lotuta dagoena, zeinaren emulazioa ez da beti oraindik funtzionatzen Mono-n erabiltzen den JIT konpilazioa dela eta, eta grafiko altuak ere baditu. ARM plaketan beti lor daitezkeen eskakizunak. GTK aplikazioen liburutegiak ordezkatzea GTK2ra mugatuta dago gaur egun (GTK3/4 ordezkatzea ez dago guztiz inplementatuta).

Aldaketa nagusiak bertsio berrietan:

  • Vulkan liburutegirako koadernaldia gehitu da. Vulkan eta DXVK grafikoen APIrako laguntza gehitu da (DXGI, Direct3D 9, 10 eta 11 Vulkan-en gainean ezartzea).
  • Lotura hobetuak GTK liburutegietarako. GTK aplikazioetan erabili ohi diren gstreamer eta liburutegietarako loturak gehitu dira.
  • Hasierako euskarria gehitu da (orain arte interpretazio modua soilik) RISC-V eta PPC64LE arkitekturarentzat.
  • Akatsen konponketak egin dira SteamPlay laguntza eta Proton geruza hobetzeko. Steam-etik Linux eta Windows joko asko exekutatu daitezke AArch64 plaketan, hala nola Raspberry Pi 3 eta 4.
  • Memoriaren kudeaketa hobetu da, mmap portaera eta memoria babesteko urraketen jarraipena.
  • Klonatzeko sistema-deien laguntza hobetu da libc-n. Sistema dei berrietarako laguntza gehitu da.
  • Birkonpilazio dinamikoan, SSE/x87 erregistroekin lana hobetu da, makina kode berrientzako euskarria gehitu da, float eta zenbaki bikoitzen bihurketak optimizatu, barne-jauzien prozesamendua hobetu eta arkitektura berrientzako euskarria izan da. sinplifikatu.
  • ELF fitxategien kargatzailea hobetua.

Iturria: opennet.ru

Gehitu iruzkin berria