Guhertoyên nû yên emulatorên Box86 û Box64, dihêle hûn lîstikên x86 li ser pergalên ARM-ê bimeşînin.

Weşanên emulatorên Box86 0.2.6 û Box64 0.1.8 hatine weşandin, ku ji bo xebitandina bernameyên Linux-ê yên ku ji bo mîmariya x86 û x86_64 li ser alavên bi pêvajoyên ARM, ARM64, PPC64LE û RISC-V hatine berhev kirin hatine çêkirin. Proje ji hêla yek tîmek pêşdebiran ve bi hevdemî têne pêşve xistin - Box86 bi şiyana xebitandina sepanên 32-bit x86 ve sînorkirî ye, û Box64 şiyana xebitandina 64-bitan peyda dike. Proje girîngiyek mezin dide organîzekirina destpêkirina sepanên lîstikê, di nav de peydakirina kapasîteya destpêkirina avakirina Windows-ê bi navgîn û Proton. Koda çavkaniyê ya projeyê bi C-yê hatî nivîsandin û (Box86, Box64) di bin lîsansa MIT-ê de tê belavkirin.

Taybetmendiyek projeyê karanîna modelek darvekirina hybrid e, ku tê de emûlasyon tenê li koda makîneya serîlêdanê bixwe û pirtûkxaneyên taybetî tê sepandin. Pirtûkxaneyên pergalê yên tîpîk, di nav de libc, libm, GTK, SDL, Vulkan û OpenGL, bi vebijarkên xwecihî yên platformên armanc têne veguheztin. Bi vî rengî, bangên pirtûkxaneyê bêyî emûlasyonê têne darve kirin, ku di encamê de destkeftiyên performansa girîng pêk tê.

Emûlasyona kodê ya ku ji bo platforma armancê veguheztinek xwemalî tune ye, bi karanîna teknîka ji nû ve berhevkirina dînamîkî (DynaRec) ji komek rêwerzên makîneyê ber bi ya din ve tê kirin. Li gorî şirovekirina rêwerzên makîneyê, ji nû ve berhevkirina dînamîk performansa 5-10 qat zêdetir nîşan dide.

Di ceribandinên performansê de, emulatorên Box86 û Box64, dema ku li ser platformên Armhf û Aarch64 têne darve kirin, bi girîngî ji projeyên QEMU û FEX-emu derketin, û di ceribandinên kesane de (glmark2, openarena) wan performansa bi destxistina meclîsek xwemalî ya li ser armancê bi dest xist. rawesta axaftevan. Di îmtîhanên 7-zip û dav1d-ê yên întensîf de, performansa Box64 ji% 27 heya 53% ya performansa serîlêdana xwemalî ye (ji bo berhevdanê, QEMU encamên 5-16%, û FEX-emu - 13-26% nîşan da ). Wekî din, berhevokek bi emulatora Rosetta 2 re hate çêkirin, ku ji hêla Apple ve hatî bikar anîn da ku koda x86 li ser pergalên bi çîpê M1 ARM dimeşîne. Rosetta 2 ceribandina 7zip-based bi performansa% 71 ya avakirina xwemalî peyda kir, û Box64 - 57%.

Guhertoyên nû yên emulatorên Box86 û Box64, dihêle hûn lîstikên x86 li ser pergalên ARM-ê bimeşînin.

Ji bo lihevhatina bi serîlêdanan re, ji 165 lîstikên ceribandin, ji sedî 70% bi serfirazî xebitîn. Nêzîkî 10% din dixebitin, lê bi hin veqetandin û qedexeyan. Lîstikên piştgirîkirî WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious û piraniya lîstikên GameMaker hene. Di nav lîstikên ku bi wan re pirsgirêk hatine destnîşan kirin, behsa lîstikên li ser bingeha motora Unity3D, ku bi pakêta Mono ve girêdayî ye, ji ber berhevoka JIT-ê ku li Mono-yê tê bikar anîn, emûlasyona wê her gav naxebite, û di heman demê de bi rengek adil heye. hewcedariyên grafîkên bilind ên ku her gav li ser panelên ARM nayên bidestxistin. Veguheztina pirtûkxaneyên serîlêdana GTK niha bi GTK2 ve sînorkirî ye (guheztina GTK3/4 bi tevahî nayê pêkanîn).

Guhertinên sereke di weşanên nû de:

  • Ji bo pirtûkxaneya Vulkan girêdanek zêde kir. Piştgiriyek ji bo API-ya grafikên Vulkan û DXVK zêde kir (pêkanîna DXGI, Direct3D 9, 10 û 11 li ser Vulkan).
  • Ji bo pirtûkxaneyên GTK girêdanên çêtir kirin. Ji bo gstreamer û pirtûkxaneyên ku bi gelemperî di serîlêdanên GTK-ê de têne bikar anîn girêdanên zêde kirin.
  • Piştgiriya destpêkê (ji bo niha tenê moda şîrovekirinê) ji bo mîmariyên RISC-V û PPC64LE zêde kir.
  • Serastkirin hatine çêkirin ku piştgirî ji bo SteamPlay û qata Proton baştir bikin. Hêza meşandina gelek lîstikên Linux û Windows-ê ji Steam-ê li ser panelên AArch64 yên wekî Raspberry Pi 3 û 4 peyda dike.
  • Rêvebiriya bîranînê ya çêtir, performansa mmap, û şopandina binpêkirina parastina bîranînê.
  • Piştgiriya çêtirîn ji bo banga pergala klonê ya li libc. Piştgiriya ji bo bangên pergala nû zêde kir.
  • Motora ji nû ve berhevkirina dînamîk xebata bi qeydên SSE/x87 re çêtir kiriye, piştgirî ji bo kodên makîneya nû zêde kiriye, veguheztina hejmarên float û ducarî xweştir kiriye, pêvajokirina veguheztinên hundurîn çêtir kiriye, û zêdekirina piştgirî ji bo mîmariyên nû hêsan kiriye.
  • Barkerê pelê ELF-ê çêtir kirin.

Source: opennet.ru

Add a comment