Выпущены новые версии эмуляторов 0.2.6 и  0.1.8 для загрузки Linux-программ, написанных для оборудования x86 и x86_64, на компьютерах на базе ов с архитектурой ARM, ARM64, PPC64LE и RISC-V. Оба проекта разрабатываются одновременно одной и той же командой программистов. Box86 позволяет запускать только 32-битные x86-приложения, а Box64 обеспечивает стабильную работу 64-битных исполняемых файлов. Проект ориентирован в первую очередь на запуск различных игр и позволяет запускать -игры и приложения через Wine и Proton , но на компьютерных системах с чипами ARM. Исходный код этого интересного проекта написан на языке программирования C, выложен на и распространяется под лицензией MIT.

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

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

В тестах производительности эмуляторы Box86 и Box64 с использованием платформ Armhf и Aarch64 значительно превосходят проекты и FEX-emu, а в отдельных тестах (glmark2, openarena) достигают примерно такой же производительности, как приложения, ющие на исходной архитектуре процессора. Например, в тестах 7-zip и dav1d, выполняющих интенсивные вычисления, производительность Box64 колеблется от 27% до 53% от производительности приложения с исходной архитектурой процессора, для которого они были написаны. Для сравнения, QEMU показывает результат от 5 до 16%, а FEX-emu — от 13 до 26%. Кроме того, было проведено сравнение с эмулятором Rosetta 2, который использует для запуска x86-кода на системах с ARM-чипом M1. Розетты 2 в том же тесте с 7zip он показал производительность 71% от оригинала, а Box64 при точно таких же условиях — 57%.

С точки зрения совместимости приложений около 70% из 165 протестированных игр успешно заработали. Еще 10% работают, но с некоторыми ограничениями. Поддерживаемые игры включают WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious и большинство игр GameMaker.

Интересно:  Экспресс обзор нового 5-нм чип Apple M2 с 20 миллиардами транзисторов