Новые версии Box86 и Box64 уже выпущены

Недавно выпуск новые версии программы Эмуляторы Box86 0.2.6 и Box64 0.1.8. Проекты разрабатываются синхронно одной и той же командой разработчиков.

Box86 ограничен запуском 86-битных приложений x32. (например, игры) в системах Linux, отличных от x86, таких как ARM (хост-система должна быть 32-разрядной с прямым порядком байтов). Поэтому для запуска и компиляции Box32 требуется 86-битная подсистема. Box86 бесполезен только на 64-битных системах. Кроме того, вам понадобится 32-битный набор инструментов для компиляции Box86.



Поскольку Box86 использует нативные версии некоторых «системных» библиотек, таких как libc, libm, SDL и OpenGL, его легко интегрировать и использовать с большинством приложений, а производительность во многих случаях может быть на удивление высокой.



То же самое касается Box64, только что такое и позволяет запускать 64-битные исполняемые файлы. В проекте большое внимание уделяется организации выпуска игровых приложений, в том числе возможности выпуска сборок Windows через Wine и Proton.

Особенностью проекта является использование гибридной модели исполнения., в котором эмуляция применяется только к машинному коду самого приложения и конкретных библиотек. Универсальные системные библиотеки, включая libc, libm, GTK, SDL, Vulkan и OpenGL, на целевых платформах заменяются собственными вариантами. Поэтому вызовы библиотеки выполняются без эмуляции, что позволяет существенно повысить производительность.



Эмуляция кода без нативных переопределенийДля целевой платформы используется метод динамической перекомпиляции (DynaRec) из одного набора машинных инструкций в другой. По сравнению с интерпретацией машинных инструкций динамическая перекомпиляция показывает в 5-10 раз более высокую производительность.

в тестах производительности, при работе на платформах Armhf и Aarch64, Эмуляторы Box86 и Box64 значительно превзошли проекты QEMU и FEX-emu а в некоторых тестах (glmark2, openarena) они добились производительности, идентичной запуску сборки, нативной для целевой платформы.

С точки зрения совместимости заявок, дИз 165 протестированных игр примерно 70% оказались успешными. Еще около 10% работы, но с некоторыми оговорками и ограничениями.



Из игр, с которыми отмечены проблемы, упоминаются игры на движке 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 Layer. Можно запускать многие игры для Linux и Windows из Steam на платах AArch64, таких как Raspberry Pi 3 и 4.
  • Улучшено управление памятью, поведение mmap и мониторинг нарушений защиты памяти.
  • Улучшена поддержка системного вызова clone в libc. Добавлена ​​поддержка новых системных вызовов.
  • В движке динамической перекомпиляции улучшена работа с реестрами SSE/x87, добавлена ​​поддержка новых машинных кодов, оптимизированы плавающие и двойные преобразования, улучшена внутренняя обработка ветвлений, упрощена поддержка новых архитектур.
  • Улучшен загрузчик файлов ELF.

Наконец, если вы хотите узнать больше об этом, вы можете ознакомиться с деталями По следующей ссылке.




2022-04-27T02:07:23
приложений