Выпуск эмутятора Box64 0.3.0, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ x86-ΠΈΠ³Ρ€Ρ‹ Π½Π° систСмах ARM64 ΠΈ RISC-V

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

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

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

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° процСссорных Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ AVX, AVX2, BMI1, BMI2, ADX, FMA, F16C ΠΈ RDRAND.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная окруТСния BOX64_AVX, выставлСниС 1 Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ AVX, BMI1, F16C ΠΈ VAES, Π° Π² 2 — AVX2, BMI2, FMA, ADX, VPCLMULQDQ ΠΈ RDRAND.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° динамичСской пСрСкомпиляции (DynaRec) AVX, AVX2 ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструкций Π² прСдставлСниС Π½Π° Π±Π°Π·Π΅ инструкций NEON, прСдоставляСмых Π² CPU Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM64.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пСрСкомпиляции инструкций SIMD Π² инструкции RVV Π½Π° систСмах RISC-V.
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° DynaRec, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠΊΠΎΠ΄ΠΎΠ² для RISC-V ΠΈ Loongarch64.
  • ΠžΠ±Π½ΠΎΠ²Π»Ρ‘Π½ список ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ² CPUID, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вмСсто Pentium IV Ρ‡Π΅Ρ€Π΅Π· CPUID Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выдаётся CPU сСрии Haswell.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Wayland ΠΈ прСдосатвлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСской пСрСкомпиляции связанных с Wayland Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ совмСстимости с Wine-wayland.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ число ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ³Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΈΠ³Ρ€ΠΎΠΉ Death Stranding. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ UnityPlayer.dll Π² запускаСмых Π² Wine ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ автоматичСскоС выставлСниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° BOX64_DYNAREC_STRONGMEM=1.

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