Bag-ong mga bersyon sa Box86 ug Box64 emulators nga nagtugot kanimo sa pagpadagan sa x86 nga mga dula sa mga sistema sa ARM

Ang mga pagpagawas sa Box86 0.2.6 ug Box64 0.1.8 nga mga emulator gipatik alang sa pagpadagan sa mga programa sa Linux nga gitukod alang sa x86 ug x86_64 nga mga arkitektura sa ARM, ARM64, PPC64LE ug RISC-V nga mga processor. Ang mga proyekto nag-uswag dungan sa usa ka development team - Ang Box86 limitado sa abilidad sa pagpadagan sa 32-bit x86 nga mga aplikasyon, samtang ang Box64 naghatag ug abilidad sa pagpadagan sa 64-bit executables. Ang proyekto naghatag ug dakong pagtagad sa pag-organisar sa paglunsad sa mga aplikasyon sa pasugalan, lakip ang abilidad sa paglansad sa Windows builds pinaagi sa bino ug Proton. Ang tinubdan nga mga teksto sa proyekto gisulat sa C nga pinulongan ug giapod-apod (Box86, Box64) ubos sa lisensya sa MIT.

Ang usa ka bahin sa proyekto mao ang paggamit sa usa ka hybrid nga modelo sa pagpatuman, diin ang pagsundog gipadapat lamang sa code sa makina sa aplikasyon mismo ug sa piho nga mga librarya. Ang generic nga mga librarya sa sistema, lakip ang libc, libm, GTK, SDL, Vulkan, ug OpenGL, gipulihan sa mga variant nga lumad sa target nga mga plataporma. Sa ingon, ang mga tawag sa librarya gipatuman nga wala’y pagsundog, nga nagtugot alang sa usa ka hinungdanon nga pagtaas sa pasundayag.

Ang pagsundog sa code nga walay lumad nga kapuli alang sa target nga plataporma gihimo gamit ang dynamic recompilation (DynaRec) nga teknik gikan sa usa ka set sa mga instruksiyon sa makina ngadto sa lain. Kung itandi sa interpretasyon sa mga instruksyon sa makina, ang dinamikong recompilation nagpakita sa 5-10 ka beses nga mas taas nga performance.

Sa mga pagsulay sa pasundayag, kung nagdagan sa mga platform sa Armhf ug Aarch86, ang mga emulator sa Box64 ug Box64 labi nga milabaw sa mga proyekto sa QEMU ug FEX-emu, ug sa pipila nga mga pagsulay (glmark2, openarena) nakab-ot nila ang pasundayag nga parehas sa pagpadagan sa usa ka asembliya nga lumad sa target nga plataporma. . Sa compute-intensive 7-zip ug dav1d benchmarks, ang performance sa Box64 anaa sa taliwala sa 27% ug 53% nianang sa lumad nga aplikasyon (itandi sa QEMU sa 5-16% ug FEX-emu sa 13-26%). Dugang pa, gihimo ang pagtandi sa Rosetta 2 emulator nga gigamit sa Apple sa pagpadagan sa x86 code sa mga sistema nga adunay ARM M1 chip. Ang Rosetta 2 nagpadagan sa 7zip-based nga pagsulay sa 71% sa lumad nga pagtukod, ug Box64 sa 57%.

Bag-ong mga bersyon sa Box86 ug Box64 emulators nga nagtugot kanimo sa pagpadagan sa x86 nga mga dula sa mga sistema sa ARM

Sa mga termino sa pagpahiangay sa aplikasyon, gikan sa 165 nga mga dula nga gisulayan, mga 70% ang malampuson nga nakuha. Mga 10% nga dugang nga trabaho, apan adunay pipila nga mga reserbasyon ug mga pagdili. Ang gisuportahan nga mga dula naglakip sa WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious ug kadaghanan sa mga dula sa GameMaker. Sa mga dula diin ang mga problema nakit-an, ang mga dula nga gibase sa Unity3D engine gihisgutan, nga gihigot sa Mono nga pakete, ang pag-emulasyon nga dili kanunay molihok tungod sa JIT compilation nga gigamit sa Mono, ug adunay usab taas nga mga graphic. mga kinahanglanon nga dili kanunay makab-ot sa ARM boards. Ang pag-ilis sa mga librarya sa aplikasyon sa GTK sa pagkakaron limitado sa GTK2 (dili hingpit nga gipatuman ang pag-ilis sa GTK3/4).

Panguna nga mga pagbag-o sa mga bag-ong pagpagawas:

  • Gidugang nga pagbugkos alang sa Vulkan library. Gidugang nga suporta alang sa Vulkan ug DXVK graphics API (pagpatuman sa DXGI, Direct3D 9, 10 ug 11 sa ibabaw sa Vulkan).
  • Gipauswag nga mga pagbugkos alang sa mga librarya sa GTK. Gidugang nga mga pagbugkos alang sa gstreamer ug mga librarya nga sagad gigamit sa mga aplikasyon sa GTK.
  • Gidugang inisyal nga suporta (hangtod karon interpretation mode lang) para sa RISC-V ug PPC64LE nga mga arkitektura.
  • Ang mga pag-ayo sa bug gihimo aron mapaayo ang suporta sa SteamPlay ug ang layer sa Proton. Posible nga magpadagan sa daghang mga dula sa Linux ug Windows gikan sa Steam sa mga board sa AArch64 sama sa Raspberry Pi 3 ug 4.
  • Gipauswag nga pagdumala sa panumduman, pamatasan sa mmap, ug pag-monitor sa mga paglapas sa pagpanalipod sa panumduman.
  • Gipauswag nga suporta alang sa clone system nga tawag sa libc. Gidugang nga suporta alang sa bag-ong mga tawag sa sistema.
  • Sa dinamikong recompilation nga makina, ang pagtrabaho kauban ang SSE/x87 nga mga rehistro gipauswag, ang suporta alang sa bag-ong mga code sa makina gidugang, ang mga pagkakabig sa float ug doble nga mga numero na-optimize, ang pagproseso sa mga internal nga paglukso gipauswag, ug ang suporta alang sa bag-ong mga arkitektura gipasimple.
  • Gipauswag nga ELF file uploader.

Source: opennet.ru

Idugang sa usa ka comment