Найти в Дзене

FEX-emu: эмулятор, который превращает ARM-Linux в универсальный игровой и рабочий компьютер

ARM-процессоры уже давно перестали быть «мобильной экзотикой» — теперь они стоят в серверах, ноутбуках, мини-ПК и игровых портативках вроде ROG Ally или Steam Deck на ARM-сборках. Но одно оставалось неизменным: x86-софт, особенно игры, на ARM запускался либо плохо, либо никак. FEX-emu ломает это правило.
Это не просто очередной «эмулятор ради эмуляции» — это полноценный динамический рекомпилятор, который позволяет запускать x86/x86-64 и даже Windows-игры (через Wine/Proton) на ARM64-Linux так, будто ARM — это новый x86. ARM активно наступает на рынок ноутбуков (Apple M1/M2/M3/M4), а Linux-ARM начинает появляться на новых платформах. Но проблема оставалась простая:
софта нет.
Точнее, его слишком много — но он весь под x86. И FEX-emu решает эту проблему не через «костыли», а через технологический стек, который раньше встречался только в коммерческих решениях. Это реальный шаг к тому, чтобы ARM-Linux стал полноценной настольной системой. Это критически важно. AVX/AVX2 — тяжёлые x86-расшир
Оглавление

ARM-процессоры уже давно перестали быть «мобильной экзотикой» — теперь они стоят в серверах, ноутбуках, мини-ПК и игровых портативках вроде ROG Ally или Steam Deck на ARM-сборках. Но одно оставалось неизменным: x86-софт, особенно игры, на ARM запускался либо плохо, либо никак.

FEX-emu ломает это правило.
Это не просто очередной «эмулятор ради эмуляции» — это полноценный
динамический рекомпилятор, который позволяет запускать x86/x86-64 и даже Windows-игры (через Wine/Proton) на ARM64-Linux так, будто ARM — это новый x86.

🖥️ Почему FEX — это важнее, чем кажется

ARM активно наступает на рынок ноутбуков (Apple M1/M2/M3/M4), а Linux-ARM начинает появляться на новых платформах. Но проблема оставалась простая:
софта нет.
Точнее, его слишком много — но он весь под x86.

И FEX-emu решает эту проблему не через «костыли», а через технологический стек, который раньше встречался только в коммерческих решениях.

Это реальный шаг к тому, чтобы ARM-Linux стал полноценной настольной системой.

🧩 Главные фишки FEX-emu

🔄 🧠 Бинарный рекомпилятор с поддержкой AVX/AVX2

Это критически важно. AVX/AVX2 — тяжёлые x86-расширения, с которыми почти все эмуляторы сталкиваются в тупик.
FEX-emu:

  • поддерживает AVX, AVX2,
  • делает это на ARM-векторных инструкциях,
  • использует кастомное IR, которое оптимизируется лучше, чем классический JIT.

Это не просто эмуляция — это пересборка логики под ARM, максимально близкая к нативному исполнению.

🎮 🎮 Запуск Windows-игр через Wine и Proton

FEX работает как:

  • пользовательский эмулятор (как box64),
  • но также как системный backend,
  • и даже как модуль Wine для запуска x86-бинарей на ARM.

Да, это даёт возможность запускать полноценные игры с Proton, включая те, что используют:

  • DirectX (через VKD3D/Proton),
  • OpenGL,
  • Vulkan.

🚀 🚀 Проброс графики напрямую в OpenGL/Vulkan

Одна из самых крутых идей FEX:

📌 вместо эмуляции OpenGL или Vulkan происходит проброс вызовов в системные ARM-библиотеки.

То есть GPU работает нативно.
Эмулятор занимается только логикой процессора.

Это убирает огромный слой тормозов и делает FEX похожим на Rosetta 2, но для Linux.

⚙️ ⚙️ Per-app настройки и FEXConfig GUI

Можно настроить:

  • 🛠 уровень эмуляции памяти,
  • 🔧 обход сложных моделей когерентности,
  • ⚡ поведение потоков,
  • 🕹️ параметры, оптимизированные под конкретную игру.

Некоторые игры могут работать быстрее, если отключить сложную эмуляцию «узких» x86-семантик.

И всё это — через удобный GUI.

📦 📦 Экспериментальный code cache

Это уменьшает фризы в играх:
FEX сохраняет уже сгенерированный ARM-код, не пересобирая его заново.

Фактически — собственная реализация shader-cache, но для машинного кода.

🔬 Как это работает под капотом

Здесь FEX-emu наиболее интересен.

🧱 1. Модульная архитектура

Сердце FEX — это ядро, которое можно использовать:

  • как WoW64-слой,
  • как backend Wine,
  • как самостоятельный эмулятор,
  • как часть ARM64EC-совместимых сборок.

Такую гибкость обычно дают только корпоративные движки.

🧵 2. Перевод системных вызовов

FEX реализует:

  • syscalls Linux-x86 → Linux-ARM64,
  • поддержку epoll, clone, futex,
  • даже seccomp.

Это позволяет запускать не только игры, но и сложные серверные утилиты x86.

🏃 3. «Splatter JIT» заменён кастомным IR

Обычный подход JIT — просто «разложить» x86-инструкции на ARM-опкоды.

FEX делает иначе:

  • переводит x86 → высокоуровневый IR,
  • оптимизирует IR,
  • затем генерирует ARM-код.

Так делают только продвинутые движки типа LLVM.

Поэтому FEX даёт производительность, близкую к нативной.

🎮 Что это значит для будущего ARM-Linux

ARM-ноутбуки на Linux теперь могут:

  • запускать x86-приложения,
  • играть в Windows-игры,
  • использовать Proton-библиотеки,
  • работать с тяжёлыми 64-битными бинарниками.

Это превращает ARM-Linux из «экспериментальной платформы» в что-то вроде универсального рабочего коня, пригодного и для разработчиков, и для геймеров.

Мой вывод:
FEX-emu — это Rosetta 2, но open-source, гибче и гораздо более настраиваемая для игр.

🔗 Источники

  1. Официальный сайт проекта FEX-emu
    https://fex-emu.com/