Выпуск Box64 0.4.0, эмулятора для запуска x86-ΠΈΠ³Ρ€ Π½Π° систСмах ARM64, RISC-V ΠΈ Loongarch64

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

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

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

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

  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ прСфиксов ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (prefix opcode decoder), задСйствованный Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅ ΠΈ Π²ΠΎ всСх бэкСндах динамичСской пСрСкомпиляции (DynaRec). Новый Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π΄ΠΊΠΈΠ΅ сочСтания прСфиксов ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ² ΠΈ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· спСцифичных Β«Ρ…Π°ΠΊΠΎΠ²Β» ΠΈ дублирования ΠΊΠΎΠ΄Π° Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π΅Ρ‚ΠΎΡ€Π΅ ΠΈ бэкСндах DynaRec. ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ лишнСго ΠΊΠΎΠ΄Π°, ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΡŽ сопровоТдСния ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΈ возмоТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ DynaRec с Π½Π΅Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ комбинациями прСфиксов ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ².
  • ΠΠ°Ρ‡Π°Π»Π°ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ для удалСния ΠΈΠ· памяти Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, сконвСртированных Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½ΠΎ ΡƒΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ…. Подобная оптимизация позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… большой ΠΎΠ±ΡŠΡ‘ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ запускС, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Steam ΠΈ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ libcef.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM64: Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ сборочный ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ для CPU NVIDIA GB10. Π’ бэкСндС динамичСской пСрСкомпиляции (DynaRec) ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° рСализация Ρ‚Π΅Ρ…Π½ΠΈΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ вынос ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ выставлСния рСгистров XMM/YMM ΠΈΠ· Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ бэкСнда динамичСской пСрСкомпиляции для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ запуск Steam, Proton ΠΈ Wine, Π½ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹ΠΌ DRM-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌ эмуляции систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Windows, трСбуСтся ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ 48-разрядного адрСсного пространства (SV48) ΠΈΠ»ΠΈ использованиС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сборок Wine ΠΈ Proton.
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΠ»Π°ΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° бэкСнда для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Loongarch, которая Π΄ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ возмоТности запуска Steam, Wine ΠΈ Proton, Π½ΠΎ ΠΏΠΎΠΊΠ° отстаёт ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ бэкСнда для систСм ARM64. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠΊΠ° трСбуСтся использованиС Π² ядрС страниц памяти, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4K (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Loongarch ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выставляСтся 16K). ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡƒΠΆΠ΅ достаточно для запуска ΠΈΠ³Ρ€ Π½Π° CPU Loongarch 3A6000 (2.5 GHz c 4 физичСскими ядрами).
    Play video
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌΠ° Box32, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ 32-разрядных исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Box64. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ отмСчаСтся ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Steam Π½Π° всСх Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π²Π½ΡƒΡ‚Ρ€ΠΈΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΎΠ²Π΅Ρ€Π»Π΅Π΅Π² Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… OpenGL-ΠΈΠ³Ρ€Π°Ρ….

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

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