Versione të reja të emulatorëve Box86 dhe Box64, duke ju lejuar të ekzekutoni lojëra x86 në sistemet ARM

Janë publikuar versionet e emulatorëve Box86 0.2.6 dhe Box64 0.1.8, të dizajnuara për t'u ekzekutuar. Linux- programe të ndërtuara për arkitekturat x86 dhe x86_64, në harduer me procesorë ARM, ARM64, PPC64LE dhe RISC-V. Projektet zhvillohen në mënyrë sinkrone nga një ekip i vetëm zhvilluesish: Box86 është i kufizuar në ekzekutimin e aplikacioneve x86 32-bit, ndërsa Box64 mundëson ekzekutimin e skedarëve ekzekutues 64-bit. Projekti i kushton një rëndësi të madhe organizimit të lançimit të aplikacioneve të lojërave, duke përfshirë ofrimin e mundësisë për të ekzekutuar Windows-ndërtohet nëpërmjet Wine dhe Proton. Kodi burimor i projektit është shkruar në C dhe shpërndahet (Box86, Box64) sipas licencës MIT.

Një tipar i projektit është përdorimi i një modeli ekzekutimi hibrid, në të cilin emulimi zbatohet vetëm në kodin e makinës së vetë aplikacionit dhe bibliotekave specifike. Bibliotekat tipike të sistemit, duke përfshirë libc, libm, GTK, SDL, Vulkan dhe OpenGL, zëvendësohen me opsione vendase në platformat e synuara. Në këtë mënyrë, thirrjet e bibliotekës ekzekutohen pa emulim, duke rezultuar në përfitime të konsiderueshme të performancës.

Emulimi i kodit për të cilin nuk ka zëvendësime vendase në platformën e synuar kryhet duke përdorur një teknikë të ripërpilimit dinamik (DynaRec) nga një grup udhëzimesh makinerie në tjetrën. Krahasuar me interpretimin e udhëzimeve të makinës, rikompilimi dinamik demonstron performancë 5-10 herë më të lartë.

Në testet e performancës, emulatorët Box86 dhe Box64, kur u ekzekutuan në platformat Armhf dhe Aarch64, ia kaluan dukshëm projektet QEMU dhe FEX-emu, dhe në testet individuale (glmark2, openarena) ata arritën performancë identike me drejtimin e një asambleje vendase për objektivin. platformë. Në testet me intensitet të llogaritjes 7-zip dhe dav1d, performanca e Box64 varionte nga 27% në 53% të performancës së aplikacionit vendas (për krahasim, QEMU tregoi rezultate prej 5-16%, dhe FEX-emu - 13-26% ). Për më tepër, u bë një krahasim me emulatorin Rosetta 2, i përdorur nga Apple për të ekzekutuar kodin x86 në sistemet me çipin M1 ARM. Rosetta 2 siguroi testin e bazuar në 7zip me performancë prej 71% të ndërtimit vendas, dhe Box64 - 57%.

Versione të reja të emulatorëve Box86 dhe Box64, duke ju lejuar të ekzekutoni lojëra x86 në sistemet ARM

Sa i përket pajtueshmërisë me aplikacionet, nga 165 lojëra të testuara, rreth 70% funksionuan me sukses. Rreth 10% të tjera punojnë, por me rezerva dhe kufizime të caktuara. Lojërat e mbështetura përfshijnë WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious dhe shumicën e lojërave GameMaker. Ndër lojërat me të cilat janë vërejtur probleme, përmenden lojërat e bazuara në motorin Unity3D, i cili është i lidhur me paketën Mono, emulimi i të cilit nuk funksionon gjithmonë për shkak të përpilimit JIT të përdorur në Mono, dhe gjithashtu ka mjaft kërkesa të larta grafike që nuk janë gjithmonë të arritshme në bordet ARM. Zëvendësimi i bibliotekave të aplikacioneve GTK aktualisht është i kufizuar në GTK2 (zëvendësimi i GTK3/4 nuk është zbatuar plotësisht).

Ndryshimet kryesore në publikimet e reja:

  • Lidhja e shtuar pĂ«r bibliotekĂ«n Vulkan. MbĂ«shtetje e shtuar pĂ«r API grafike Vulkan dhe DXVK (zbatimi i DXGI, Direct3D 9, 10 dhe 11 nĂ« krye tĂ« Vulkan).
  • Lidhje tĂ« pĂ«rmirĂ«suara pĂ«r bibliotekat GTK. Lidhje tĂ« shtuara pĂ«r gstreamer dhe bibliotekat qĂ« pĂ«rdoren zakonisht nĂ« aplikacionet GTK.
  • MbĂ«shtetja fillestare e shtuar (pĂ«r momentin vetĂ«m mĂ«nyra e interpretimit) pĂ«r arkitekturat RISC-V dhe PPC64LE.
  • JanĂ« bĂ«rĂ« rregullime pĂ«r tĂ« pĂ«rmirĂ«suar mbĂ«shtetjen pĂ«r SteamPlay dhe shtresĂ«n Proton. Kjo siguron mundĂ«sinĂ« pĂ«r tĂ« ekzekutuar shumĂ« Linux Đž Windows LojĂ«ra nĂ« Steam nĂ« pllakat AArch64 si Raspberry Pi 3 dhe 4.
  • Menaxhimi i pĂ«rmirĂ«suar i kujtesĂ«s, performanca mmap dhe gjurmimi i shkeljeve tĂ« mbrojtjes sĂ« kujtesĂ«s.
  • MbĂ«shtetje e pĂ«rmirĂ«suar pĂ«r thirrjen e sistemit tĂ« klonimit nĂ« libc. MbĂ«shtetje e shtuar pĂ«r thirrjet e reja tĂ« sistemit.
  • Motori dinamik i rikompilimit ka pĂ«rmirĂ«suar punĂ«n me regjistrat SSE/x87, ka shtuar mbĂ«shtetje pĂ«r kodet e reja tĂ« makinerive, konvertime tĂ« optimizuara tĂ« numrave float dhe tĂ« dyfishtĂ«, ka pĂ«rmirĂ«suar pĂ«rpunimin e tranzicioneve tĂ« brendshme dhe ka thjeshtuar shtimin e mbĂ«shtetjes pĂ«r arkitekturat e reja.
  • Ngarkues i pĂ«rmirĂ«suar i skedarĂ«ve ELF.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster