Awọn ẹya tuntun ti Box86 ati awọn emulators Box64, gbigba ọ laaye lati ṣiṣẹ awọn ere x86 lori awọn eto ARM

Awọn idasilẹ ti Box86 0.2.6 ati Box64 0.1.8 emulators ni a ti tẹjade, ti a ṣe apẹrẹ lati ṣiṣe awọn eto Linux ti a ṣajọ fun x86 ati x86_64 faaji lori ohun elo pẹlu ARM, ARM64, PPC64LE ati awọn ilana RISC-V. Awọn iṣẹ akanṣe ti wa ni idagbasoke synchronously nipasẹ ọkan egbe ti Difelopa - Box86 wa ni opin si awọn agbara lati ṣiṣe 32-bit x86 ohun elo, ati Box64 pese agbara lati a run 64-bit executables. Ise agbese na san ifojusi nla si siseto ifilọlẹ awọn ohun elo ere, pẹlu ipese agbara lati ṣe ifilọlẹ awọn kọ Windows nipasẹ ọti-waini ati Proton. Awọn koodu orisun fun ise agbese na ni a kọ sinu C ati pinpin (Box86, Box64) labẹ iwe-aṣẹ MIT.

Ẹya kan ti iṣẹ akanṣe naa ni lilo awoṣe ipaniyan arabara, ninu eyiti a lo emulation nikan si koodu ẹrọ ti ohun elo funrararẹ ati awọn ile-ikawe kan pato. Awọn ile ikawe eto aṣoju, pẹlu libc, libm, GTK, SDL, Vulkan ati OpenGL, ni a rọpo pẹlu awọn aṣayan abinibi si awọn iru ẹrọ ibi-afẹde. Ni ọna yii, awọn ipe ile-ikawe ni a ṣe laisi emulation, ti o yọrisi awọn anfani iṣẹ ṣiṣe pataki.

Emulation ti koodu fun eyiti ko si awọn iyipada abinibi si pẹpẹ ibi-afẹde ni a ṣe ni lilo ilana kan ti isọdọtun agbara (DynaRec) lati eto ilana ẹrọ kan si omiiran. Ti a bawe si awọn itọnisọna ẹrọ itumọ, atunṣe ti o ni agbara ṣe afihan awọn akoko 5-10 ti o ga julọ.

Ninu awọn idanwo iṣẹ, awọn emulators Box86 ati Box64, nigba ti a ṣe lori awọn iru ẹrọ Armhf ati Aarch64, ṣe pataki ju awọn iṣẹ akanṣe QEMU ati FEX-emu lọ, ati ninu awọn idanwo kọọkan (glmark2, openarena) wọn ṣaṣeyọri iṣẹ ṣiṣe ti o jọra si ṣiṣe apejọ abinibi si ibi-afẹde. Syeed. Ninu awọn idanwo 7-zip ati dav1d iṣiro-iṣiro, iṣẹ Box64 wa lati 27% si 53% ti iṣẹ ohun elo abinibi (fun lafiwe, QEMU fihan awọn abajade ti 5-16%, ati FEX-emu - 13-26% ). Ni afikun, a ṣe afiwe pẹlu emulator Rosetta 2, ti Apple lo lati ṣiṣẹ koodu x86 lori awọn eto pẹlu chirún M1 ARM. Rosetta 2 pese idanwo ti o da lori 7zip pẹlu iṣẹ ṣiṣe ti 71% ti ile abinibi, ati Box64 - 57%.

Awọn ẹya tuntun ti Box86 ati awọn emulators Box64, gbigba ọ laaye lati ṣiṣẹ awọn ere x86 lori awọn eto ARM

Ni ibamu pẹlu awọn ohun elo, ninu awọn ere 165 ti idanwo, nipa 70% ṣiṣẹ ni aṣeyọri. Nipa iṣẹ 10% miiran, ṣugbọn pẹlu awọn ifiṣura ati awọn ihamọ kan. Awọn ere ti o ṣe atilẹyin pẹlu WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, Ewu ti Ojo, Cook Sin Delicious ati pupọ julọ awọn ere GameMaker. Lara awọn ere pẹlu eyiti a ti ṣe akiyesi awọn iṣoro, mẹnuba ti awọn ere ti o da lori ẹrọ Unity3D, eyiti o so mọ package Mono, apẹẹrẹ eyiti ko ṣiṣẹ nigbagbogbo nitori akopọ JIT ti a lo ninu Mono, ati pe o tun ni iṣẹtọ. Awọn ibeere eya aworan giga ti kii ṣe nigbagbogbo ṣee ṣe lori awọn igbimọ ARM. Fidipo awọn ile-ikawe ohun elo GTK lọwọlọwọ ni opin si GTK2 (fidipo GTK3/4 ko ni imuse ni kikun).

Awọn iyipada akọkọ ninu awọn idasilẹ titun:

  • Fi kun abuda fun Vulkan ìkàwé. Atilẹyin afikun fun Vulkan ati DXVK eya API (imuse ti DXGI, Direct3D 9, 10 ati 11 lori oke ti Vulkan).
  • Imudara awọn isopọ fun awọn ile-ikawe GTK. Awọn ifaramọ ti a ṣafikun fun gstreamer ati awọn ile-ikawe ti a lo nigbagbogbo ni awọn ohun elo GTK.
  • Atilẹyin akọkọ ti a ṣafikun (ipo itumọ nikan fun bayi) fun RISC-V ati awọn faaji PPC64LE.
  • Awọn atunṣe ti ṣe lati ni ilọsiwaju atilẹyin fun SteamPlay ati Layer Proton. Pese agbara lati ṣiṣe ọpọlọpọ awọn Linux ati awọn ere Windows lati Steam lori awọn igbimọ AArch64 gẹgẹbi Rasipibẹri Pi 3 ati 4.
  • Ilọsiwaju iṣakoso iranti, iṣẹ map, ati ipasẹ idaabobo iranti ṣẹ.
  • Atilẹyin ilọsiwaju fun ipe eto ẹda oniye ni libc. Atilẹyin ti a ṣafikun fun awọn ipe eto titun.
  • Ẹrọ atunṣe ti o ni agbara ti ni ilọsiwaju iṣẹ pẹlu awọn iforukọsilẹ SSE/x87, atilẹyin afikun fun awọn koodu ẹrọ titun, awọn iyipada iṣapeye ti leefofo ati awọn nọmba ilọpo meji, ilọsiwaju ti ilọsiwaju ti awọn iyipada inu, ati rọrun afikun atilẹyin fun awọn ile-iṣẹ titun.
  • Agberu faili ELF ilọsiwaju.

orisun: opennet.ru

Fi ọrọìwòye kun