Вышел релиз эмулятора FEX версии 2508, предназначенного для выполнения приложений и игр, разработанных под архитектуры x86 и x86-64, на устройствах с ARM64-процессорами (AArch64) в среде Linux. Этот инструмент активно используется, в частности, в рамках проекта Asahi, позволяя запускать x86_64-игры из Steam на компьютерах с чипами Apple Silicon, построенных на ARM-архитектуре.
FEX написан на языке C++ с вкраплениями ассемблерного кода и распространяется под лицензией MIT. Для обеспечения совместимости с x86-программами в ARM64-среде используется механизм overlay-слоя, основанный на образе корневой файловой системы (rootfs), поставляемом в формате SquashFS. Такой подход позволяет избежать необходимости создания полноценного chroot-окружения.
Загрузка подготовленных rootfs-образов осуществляется с помощью утилиты FEXRootFSFetcher. Чтобы обеспечить взаимодействие с возможностями хостовой системы, такими как поддержка аудио и 3D-графики, в rootfs включаются специальные thunk-библиотеки. Эти библиотеки транслируют обращения приложений к системным библиотекам на стороне хоста, включая такие компоненты, как OpenGL и Vulkan. Кроме того, часть thunk-библиотек может также устанавливаться в хостовой системе для вызова функций, находящихся в гостевой среде.
Среди поддерживаемых библиотек, доступных для проброса между хостом и гостем, присутствуют следующие: libEGL, libGL, libSDL2, libX11, libVDSO, libasound, libdrm, libfex_malloc, libvulkan, libwayland-client и libxshmfence.
Информация о нововведениях в версии 2508 опубликована на официальном ресурсе проекта.



