ĂshtĂ« publikuar versioni 0.4.0 i emulatorit Box64, i krijuar pĂ«r ekzekutimin e programeve Linux tĂ« ndĂ«rtuara pĂ«r arkitekturĂ«n x86_64 nĂ« pajisje me procesorĂ« ARM64, RISC-V dhe Loongarch64. Projekti i kushton vĂ«mendje tĂ« madhe organizimit tĂ« ekzekutimit tĂ« aplikacioneve tĂ« lojĂ«rave dhe ofron mundĂ«sinĂ« e nisjes sĂ« build-eve Windows pĂ«rmes Wine dhe Proton. Kodi burimor i projektit Ă«shtĂ« shkruar nĂ« gjuhĂ«n C dhe shpĂ«rndahet sipas licencĂ«s MIT.
Veçoria e projektit është aplikimi i një modeli hibrid ekzekutimi, ku emulimi aplikohet vetëm në kodin maqinar të vetë aplikacionit dhe bibliotekave specifike. Bibliotekat sistemike tipike, duke përfshirë libc, libm, GTK, SDL, Vulkan dhe OpenGL, zëvendësohen me variante që janë vendase për platformat e synuara. Kështu, thirrjet e bibliotekave ekzekutohen pa emulim, duke lejuar arritjen e një rritjeje të konsiderueshme të performancës.
Emulimi i kodit, për të cilin nuk ka zëvendësime vendase për platformën e synuar, kryhet duke përdorur teknikën e rikompilimit dinamik (DynaRec) nga një grup instruksionesh makinerike në një tjetër. Krahasuar me interpretimin e instruksioneve makinerike, rikompilimi dinamik ofron performancë 5-10 herë më të lartë. performancë të lartë.
NĂ« versionin e ri:
- ĂshtĂ« prezantuar njĂ« dekodues i unifikuar i prefikseve tĂ« kodeve tĂ« operacioneve (prefix opcode decoder), i pĂ«rdorur nĂ« interpretues dhe nĂ« tĂ« gjithĂ« backend-et e rikompilimit dinamik (DynaRec). Dekoduesi i ri i trajton nĂ« mĂ«nyrĂ« mĂ« universale kombinimet e rralla tĂ« prefikseve tĂ« opcode-ve dhe lejon shmangien e âhackâ-eve specifike dhe tĂ« dyfishimit tĂ« kodit nĂ« interpretues dhe nĂ« backend-et DynaRec. Ripunimi i dekoduesit çoi nĂ« heqjen e kodit tĂ« tepĂ«rt, thjeshtimin e mirĂ«mbajtjes sĂ« bazĂ«s sĂ« kodit dhe mundĂ«sinĂ« qĂ« DynaRec tĂ« punojĂ« me kombinime jo tipike tĂ« prefikseve tĂ« opcode-ve.
- Ka nisur puna për një mekanizëm që heq nga memoria blloqet e kodit të konvertuara në kod vendas, por që nuk përdoren më. Një optimizim i tillë ndihmon në uljen e konsumit të memories gjatë nisjes së aplikacioneve që kryejnë një volum të madh operacionesh në startim, si Steam dhe aplikacionet që përdorin libcef.
- ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r arkitekturĂ«n ARM64: u zbatua njĂ« profil build-i pĂ«r CPU NVIDIA GB10. NĂ« backend-in e rikompilimit dinamik (DynaRec) vazhdoi zbatimi i teknikave tĂ« optimizimit tĂ« cikleve, si nxjerrja e operacioneve tĂ« vendosjes sĂ« regjistrave XMM/YMM jashtĂ« trupit tĂ« ciklit.
- ĂshtĂ« rritur qĂ«ndrueshmĂ«ria dhe performanca e backend-it tĂ« rikompilimit dinamik pĂ«r arkitekturĂ«n RISC-V. ĂshtĂ« siguruar nisja e saktĂ« e Steam, Proton dhe Wine, por pĂ«r punĂ« me pĂ«rmbajtje DRM tĂ« mbrojtur, qĂ« kĂ«rkon emulim tĂ« thirrjeve sistemore tĂ« Windows, nevojitet pajisje me mbĂ«shtetje pĂ«r hapĂ«sirĂ« adresimi 48-bit (SV48) ose pĂ«rdorimi i build-eve tĂ« modifikuara tĂ« Wine dhe Proton.
- Zhvillimi i backend-it për arkitekturën Loongarch ka avancuar ndjeshëm dhe tashmë është sjellë në nivelin që mundëson nisjen e Steam, Wine dhe Proton, megjithëse për nga funksionaliteti ende mbetet pas backend-it për sistemet ARM64. Për momentin, funksionimi kërkon përdorimin në kernel të faqeve të memories me madhësi 4K (si parazgjedhje për Loongarch zakonisht vendoset 16K). Performanca tashmë është e mjaftueshme për të ekzekutuar lojëra në CPU Loongarch 3A6000 (2.5 GHz me 4 bërthama fizike).

- ĂshtĂ« pĂ«rmirĂ«suar qĂ«ndrueshmĂ«ria e modalitetit Box32, i cili siguron mbĂ«shtetje pĂ«r skedarĂ« ekzekutues 32-bit nĂ« Box64. NĂ« kĂ«tĂ« modalitet vĂ«rehet rritje e stabilitetit tĂ« Steam nĂ« tĂ« gjitha arkitekturat, si edhe mundĂ«sia e pĂ«rdorimit tĂ« overlay-ve brenda lojĂ«s nĂ« disa lojĂ«ra OpenGL.
Burimi: opennet.ru

