Выпуск эмулятора FEX 2412, позволяющего запускать x86-программы на системах ARM64
Представлен выпуск проекта FEX 2412, развивающего эмулятор для выполнения игр и приложений, собранных для архитектур x86 и x86–64, в Linux-окружении на системах с процессорами ARM64 (AArch64). Для загрузки уже сформированных проектом образов rootfs предложена утилита FEXRootFSFetcher. Среди прочего, эмулятор FEX применяется проектом Asahi для организации запуска в Linux-окружениях, работающих на системах с ARM-чипами Apple Silicon, игр класса AAA, доступных в каталоге Steam и собранных для архитектуры x86_64. Код проекта написан на языке С++ с ассемблерными вставками и распространяется под лицензией MIT.
Библиотеки, необходимые для запуска x86-приложений в системном окружении, собранном для архитектуры ARM64, подключаются в форме overlay-прослойки с образом корневой ФС (rootfs) в формате squashfs. Подобная прослойка даёт возможность обойтись без создания отельного chroot-окружения.
Для организации доступа к определённым возможностям хост-окружения, таким как средства для работы со звуком и 3D-графикой (OpenGL и Vulkan) в rootfs помещаются специальные thunk-библиотеки транслирующие обращения к библиотекам на стороне хост-системы. Подобные библиотеки также могут использоваться и на стороне хоста для трансляции вызовов в гостевое окружение.
Из изменений в новой версии отмечается решение проблем с запуском клиента Steam, перевод эмуляции x86-инструкции PAUSE на использование ARM-инструкции WFE вместо YIELD, обеспечение эмуляции системных вызовов для использования геймпадов, улучшение эмуляции CPUID и RDTSCP, реструктуризация FEXCore (бэкенд эмуляции CPU), устранение недоработок в эмуляции расширений AVX.
Источник: http://www.opennet.ru/opennews/art.shtml? num=62340
© OpenNet