Vérsi énggal tina émulator Box86 sareng Box64, ngamungkinkeun anjeun ngajalankeun kaulinan x86 dina sistem ARM

Kaluaran tina Box86 0.2.6 na Box64 0.1.8 emulators geus diterbitkeun, dirancang pikeun ngajalankeun program Linux Ubuntu disusun pikeun x86 na x86_64 arsitéktur dina parabot jeung ARM, ARM64, PPC64LE na RISC-V prosesor. Proyék dikembangkeun sacara sinkron ku hiji tim pamekar - Box86 dugi ka kamampuan pikeun ngajalankeun aplikasi 32-bit x86, sareng Box64 nyayogikeun kamampuan pikeun ngajalankeun executable 64-bit. Proyék éta merhatikeun pisan pikeun ngatur peluncuran aplikasi kaulinan, kalebet nyayogikeun kamampuan pikeun ngaluncurkeun Windows ngawangun ngalangkungan anggur sareng Proton. Kodeu sumber pikeun proyék ieu ditulis dina C sarta disebarkeun (Box86, Box64) handapeun lisénsi MIT.

Fitur tina proyék nyaéta ngagunakeun modél palaksanaan hibrid, dimana émulasi ngan ukur dilarapkeun kana kode mesin tina aplikasi éta sorangan sareng perpustakaan khusus. Perpustakaan sistem umum, kalebet libc, libm, GTK, SDL, Vulkan sareng OpenGL, diganti ku pilihan asli tina platform target. Ku cara ieu, panggero perpustakaan dieksekusi tanpa emulation, hasilna gains kinerja signifikan.

Émulasi kode anu henteu aya panggantian asli pikeun platform target dilaksanakeun nganggo téknik kompilasi dinamis (DynaRec) tina hiji set paréntah mesin ka anu sanés. Dibandingkeun sareng napsirkeun paréntah mesin, kompilasi dinamis nunjukkeun kinerja 5-10 kali langkung luhur.

Dina tés kinerja, émulator Box86 sareng Box64, nalika dieksekusi dina platform Armhf sareng Aarch64, sacara signifikan ngaleuwihan proyék QEMU sareng FEX-emu, sareng dina tés individu (glmark2, openarena) aranjeunna ngahontal prestasi anu sami sareng ngajalankeun rakitan asli pikeun targét. platform. Dina tés 7-zip sareng dav1d komputasi-intensif, kinerja Box64 dibasajankeun 27% dugi ka 53% tina kinerja aplikasi asli (pikeun babandingan, QEMU nunjukkeun hasil 5-16%, sareng FEX-emu - 13-26% ). Salaku tambahan, perbandingan dilakukeun sareng émulator Rosetta 2, dianggo ku Apple pikeun ngajalankeun kode x86 dina sistem sareng chip M1 ARM. Rosetta 2 nyayogikeun tés dumasar-7zip kalayan kinerja 71% tina ngawangun asli, sareng Box64 - 57%.

Vérsi énggal tina émulator Box86 sareng Box64, ngamungkinkeun anjeun ngajalankeun kaulinan x86 dina sistem ARM

Pikeun kasaluyuan sareng aplikasi, tina 165 kaulinan anu diuji, sakitar 70% parantos suksés. Ngeunaan sejen 10% karya, tapi kalawan reservations tangtu jeung larangan. Kaulinan anu dirojong kalebet WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious sareng seueur kaulinan GameMaker. Di antara kaulinan anu masalahna parantos dicatet, disebatkeun tina kaulinan dumasar kana mesin Unity3D, anu dihijikeun kana pakét Mono, émulasi anu henteu salawasna jalan kusabab kompilasi JIT anu dianggo dina Mono, sareng ogé gaduh lumayan. syarat grafik tinggi nu teu salawasna achievable on dewan ARM. Substitusi perpustakaan aplikasi GTK ayeuna dugi ka GTK2 (substitusi GTK3/4 henteu sapinuhna dilaksanakeun).

Parobihan utama dina rilis énggal:

  • Ditambahkeun ngariung pikeun perpustakaan Vulkan. Ditambahkeun dukungan pikeun API grafik Vulkan sareng DXVK (palaksanaan DXGI, Direct3D 9, 10 sareng 11 di luhur Vulkan).
  • Ningkatkeun bindings pikeun perpustakaan GTK. Nambahkeun bindings pikeun gstreamer sareng perpustakaan anu biasa dianggo dina aplikasi GTK.
  • Ditambahkeun dukungan awal (ngan mode interpretasi ayeuna) pikeun arsitéktur RISC-V sareng PPC64LE.
  • Perbaikan parantos dilakukeun pikeun ningkatkeun dukungan pikeun SteamPlay sareng lapisan Proton. Nyadiakeun kamampuan pikeun ngajalankeun seueur kaulinan Linux sareng Windows tina Steam dina papan AArch64 sapertos Raspberry Pi 3 sareng 4.
  • Ningkatkeun manajemén memori, kinerja mmap, sareng tracking palanggaran panyalindungan memori.
  • Ningkatkeun dukungan pikeun telepon sistem clone di libc. Ditambahkeun dukungan pikeun telepon sistem anyar.
  • Mesin recompilation dinamis geus ningkat gawé kalawan SSE / registers x87, ditambahkeun rojongan pikeun Konci mesin anyar, dioptimalkeun conversions of floating jeung angka ganda, ningkat processing transisi internal, sarta disederhanakeun tambahan rojongan pikeun arsitéktur anyar.
  • Ningkatkeun ELF file loader.

sumber: opennet.ru

Tambahkeun komentar