НовыС вСрсии эмуляторов Box86 ΠΈ Box64, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ x86-ΠΈΠ³Ρ€Ρ‹ Π½Π° систСмах ARM

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ выпуски эмуляторов Box86 0.2.6 ΠΈ Box64 0.1.8, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для запуска Linux-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, собранных для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ x86 ΠΈ x86_64, Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ с процСссорами ARM, ARM64, PPC64LE ΠΈ RISC-V. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ синхронно ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² — Box86 ограничиваСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ запуска 32-разрядных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ x86, Π° Box64 обСспСчиваСт запуск 64-разрядных исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ удСляСт большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ запуска ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС прСдоставляя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска Windows-сборок Ρ‡Π΅Ρ€Π΅Π· wine ΠΈ Proton. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написаны Π½Π° языкС Π‘ΠΈ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ (Box86, Box64) ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, являСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ выполнСния, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ эмуляция примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ самого прилоТСния ΠΈ спСцифичных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ систСмныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ libc, libm, GTK, SDL, Vulkan ΠΈ OpenGL, ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, Ρ€ΠΎΠ΄Π½Ρ‹Π΅ для Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π±Π΅Π· эмуляции, Ρ‡Ρ‚ΠΎ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Эмуляция ΠΊΠΎΠ΄Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€ΠΎΠ΄Π½Ρ‹Π΅ для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½Ρ‹, выполняСтся с использованиСм Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ динамичСской пСрСкомпиляции (DynaRec) ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… инструкций Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… инструкций динамичСская пСрСкомпиляция дСмонстрируСт Π² 5-10 Ρ€Π°Π· Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π’ тСстах ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ эмуляторы Box86 ΠΈ Box64 ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Armhf ΠΈ Aarch64 сущСствСнно ΠΎΠΏΠ΅Ρ€Π΅Π΄ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ QEMU ΠΈ FEX-emu, Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… тСстах (glmark2, openarena) ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠΉ запуску сборки, Ρ€ΠΎΠ΄Π½ΠΎΠΉ для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ тСстах 7-zip ΠΈ dav1d, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… интСнсивныС вычислСния, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Box64 составила ΠΎΡ‚ 27% Π΄ΠΎ 53% ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния (для сравнСния QEMU ΠΏΠΎΠΊΠ°Π·Π°Π» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² 5-16%, Π° FEX-emu — 13-26%). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ сравнСниС с эмулятором Rosetta 2, примСняСмым ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Apple для запуска x86-ΠΊΠΎΠ΄Π° Π½Π° систСмах с ARM-Ρ‡ΠΈΠΏΠΎΠΌ M1. Rosetta 2 обСспСчил Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСста Π½Π° Π±Π°Π·Π΅ 7zip с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ 71% ΠΎΡ‚ Ρ€ΠΎΠ΄Π½ΠΎΠΉ сборки, Π° Box64 — 57%.

НовыС вСрсии эмуляторов Box86 ΠΈ Box64, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ x86-ΠΈΠ³Ρ€Ρ‹ Π½Π° систСмах ARM

Π§Ρ‚ΠΎ касаСтся совмСстимости с прилоТСниями, Ρ‚ΠΎ ΠΈΠ· 165 протСстированных ΠΈΠ³Ρ€, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 70%. Π•Ρ‰Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 10% Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Π½ΠΎ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈ ограничСниями. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ³Ρ€ WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ³Ρ€ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ GameMaker. Из ΠΈΠ³Ρ€, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΈΠ³Ρ€Ρ‹ Π½Π° Π±Π°Π·Π΅ Π΄Π²ΠΈΠΆΠΊΠ° Unity3D, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ завязан Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ Mono, эмуляция ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·-Π·Π° примСняСмой Π² Mono JIT-компиляции, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ достаточно высокиС трСбования ΠΊ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, Π½Π΅ всСгда достиТимыС Π½Π° ARM-ΠΏΠ»Π°Ρ‚Π°Ρ…. ПодмСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ GTK-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ° ограничиваСтся GTK2 (ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° GTK3/4 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния Π² Π½ΠΎΠ²Ρ‹Ρ… выпусках:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° обвязка для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Vulkan. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° графичСского API Vulkan ΠΈ DXVK (рСализация DXGI, Direct3D 9, 10 ΠΈ 11 ΠΏΠΎΠ²Π΅Ρ€Ρ… Vulkan).
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ обвязки для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ GTK. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ обвязки для gstreamer ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² GTK-прилоТСниях.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° (ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ) Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ RISC-V ΠΈ PPC64LE.
  • ВнСсСны исправлСния, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ SteamPlay ΠΈ прослойки Proton. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска ΠΌΠ½ΠΎΠ³ΠΈΡ… Linux ΠΈ Windows ΠΈΠ³Ρ€ ΠΈΠ· Steam Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… AArch64, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Raspberry Pi 3 ΠΈ 4.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ€Π°Π±ΠΎΡ‚Π° mmap ΠΈ отслСТиваниС Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ памяти.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° систСмного Π²Ρ‹Π·ΠΎΠ²Π° clone Π² libc. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².
  • Π’ Π΄Π²ΠΈΠΆΠΊΠ΅ динамичСской пСрСкомпиляции ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с рСгистрами SSE/x87, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ², ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ прСобразования чисСл float ΠΈ double, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ², ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ELF.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ