The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск эмулятора FEX 2412, позволяющего запускать x86-программы на системах ARM64

04.12.2024 15:23

Представлен выпуск проекта FEX 2412, развивающего эмулятор для выполнения игр и приложений, собранных для архитектур x86 и x86-64, в Linux-окружении на системах с процессорами ARM64 (AArch64). Среди прочего, эмулятор FEX применяется проектом Asahi для организации запуска в Linux-окружениях, работающих на системах с ARM-чипами Apple Silicon, игр из каталога Steam, собранных для архитектуры x86_64. Код проекта написан на языке С++ с ассемблерными вставками и распространяется под лицензией MIT.

Библиотеки, необходимые для запуска x86-приложений в ARM64-окружении, подключаются в форме overlay-прослойки с образом корневой ФС (rootfs), поставляемой в формате squashfs. Подобная прослойка даёт возможность обойтись без создания отдельного chroot-окружения. Загрузка уже сформированных проектом образов rootfs производится специально подготовленной утилитой FEXRootFSFetcher.

Для организации доступа к определённым возможностям хост-окружения, таким как средства для работы со звуком и 3D-графикой, в rootfs помещаются специальные thunk-библиотеки, транслирующие обращения к библиотекам и коду на стороне хост-системы (например, могут перенаправляться обращения к OpenGL и Vulkan). Подобные библиотеки также могут использоваться и на стороне хоста для обращения к коду в гостевом окружении. Среди доступных для проброса библиотек: libEGL, libGL, libSDL2, libX11, libVDSO, libasound, libdrm, libfex_malloc, libvulkan, libwayland-client и libxshmfence.

Из изменений в новой версии отмечается решение проблем с запуском клиента Steam, перевод эмуляции x86-инструкции PAUSE на использование ARM-инструкции WFE вместо YIELD, обеспечение эмуляции системных вызовов, необходимых для работы с геймпадами, улучшение эмуляции CPUID и RDTSCP, реструктуризация FEXCore (бэкенд эмуляции CPU), устранение недоработок в эмуляции расширений AVX.

  1. Главная ссылка к новости (https://github.com/FEX-Emu/FEX...)
  2. OpenNews: Проект Asahi Linux подготовил инструментарий для запуска Windows-игр
  3. OpenNews: В Fedora 42 намерены включить инсталлятор на основе web-интерфейса и добавить эмулятор FEX
  4. OpenNews: Новые версии Wine 9.2 и Winlator 5.0. Для ядра Linux предложен драйвер ntsync
  5. OpenNews: Выпуск Hangover 9.0, пакета для запуска Windows-приложений на системах ARM64
  6. OpenNews: Новые версии эмуляторов Box86 и Box64, позволяющих запускать x86-игры на системах ARM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62340-fex
Ключевые слова: fex, emulator
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:36, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Нужно годно и подход со слоем хорош. Почти как контейнер только более удобно. Скоро шинда будет всего лишь слоем абстракции над Линукс ядром.
     
     
  • 2.5, Аноним (5), 16:29, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Смерть Wintel-а всё ближе. Будущее победившего ARM-droid-а!  
     
     
  • 3.11, Аноним (1), 16:46, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Тут Фомы годами не верили в вендокапец. А он просто взял и наступил. Для Интел ищут покупателя. Андрей лезет на десктоп. И у него нет шансов проиграть. Так как десктопов 2 миллиарда, а Андреев 6 миллиардов.
     
     
  • 4.15, Аноним (15), 17:07, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Андрей лезет на десктоп. И у него нет шансов проиграть.

    Это если Гугль в следующем году не разделят.

     
  • 4.19, YetAnotherOnanym (ok), 17:14, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Андрей лезет на десктоп

    Как будто это что-то хорошее.

     
     
  • 5.21, Аноним (1), 17:32, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто шинда чем-то лучше.
     
     
  • 6.28, Аноним (28), 18:03, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Шинда, хотя бы, нативно в машииных кодах, не на Java.
     
     
  • 7.29, Аноним (1), 18:04, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это и есть то что тянет шинду вниз и поэтому она не взлетела на мобилках.
     
     
  • 8.45, YetAnotherOnanym (ok), 20:25, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то, винда на мобилках не взлетела не поэтому Ипхон тоже не на жабе, а по... текст свёрнут, показать
     
     
  • 9.49, Аноним (49), 21:14, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ипхон доля 28 Андроид доля 72 чет низковато летит ваш инхон ... текст свёрнут, показать
     
  • 8.57, beck (??), 23:18, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Майкрософт умеет в разработку Например WinCE и WM изумительно летали А потом р... текст свёрнут, показать
     
     
  • 9.59, Аноним (59), 00:26, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Большего бреда в этой жизни я не слышал ... текст свёрнут, показать
     
  • 6.44, YetAnotherOnanym (ok), 20:20, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Как будто шинда чем-то лучше.

    Майки по сравнению с Гуглом - это как старый вор с понятиями рядом с отморозком без тормозов.

     
     
  • 7.50, Аноним (49), 21:14, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тут дело не в том кто нам больше нравится. Всем ясно что старый вор доживает последние деньки.
     
  • 4.39, Аноним (-), 19:09, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут Фомы годами не верили в вендокапец. А он просто взял и
    > наступил. Для Интел ищут покупателя. Андрей лезет на десктоп. И у
    > него нет шансов проиграть. Так как десктопов 2 миллиарда, а Андреев
    > 6 миллиардов.

    И что с ним предлагается делать на десктопе, я извиняюсь? :)

     
  • 3.48, Аноним (48), 21:05, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда такая торжественность? Куда радоваться? droid - это про лишение юзеров рута и тщательную привязку к железу, ARM - это такая компания, которая сама решает, кому лицензию продавать, а у кого отзывать. И в интересах которой давить RISC-V патентами.
     
     
  • 4.60, Аноним (59), 00:28, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Типа Интел никому вообще ничего не лицензирует и она по твоему молодец? У тебя нарушена логика.
     
     
  • 5.66, Аноним (48), 03:22, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Intel, в отличие от ARM, делает процессоры. И почему-то на этих процессорах каждый раз получаются устройства с ACPI и UEFI, на которые ставятся разные ОС.
     
  • 4.61, Аноним (61), 00:29, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А можно подробнее про риск патенты? Этож открытая архитектура
    А в остальном согласен, любой мобильный арм проиграет по производительности любому интелу
     
     
  • 5.65, Аноним (48), 02:59, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, ISA патенты не нарушает, а её реализации (особенно реализации быстрых ядер) - вполне могут, их и давить.
     
  • 2.53, Аноним (53), 23:01, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Жаль только, про винду тут и речи нет.
     

  • 1.2, rm3 (?), 15:55, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот бы можно было целый amd64 LXC guest запустить на ARM. Но вроде до сих пор нельзя.
     
  • 1.3, Аноним (3), 16:16, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему все эмулируют и никто не рекомпилирует? Столкнулся с этим на эмуляторах тех же приставок и не понимаю. Проще же разово преобразовать, нет?
     
     
  • 2.6, Аноним (5), 16:30, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы рекомпилировать под целевую аудиторию надо:
    1. Исходный код
    2. Машино-время
    3. Программист который будет доводить до ума код чтобы он скомпилироватся.
    Чтобы эмулировать надо просто написать эмулятор.
     
     
  • 3.10, kravich (ok), 16:45, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Первый аноним говорил не про компиляцию исходников под target платформу, а про рекомпиляцию x86/x86-64 машинных инструкций в AARCH64 инструкции. Так работают эмуляторы приставок, рекомпилируя, например, POWER инструкции PS3 в x86-64
     
     
  • 4.13, Аноним (13), 16:52, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Первый аноним ляпнул глупость, потому что кроме инструкций CPU есть еще тьма внешних для исполняемого файла API для работы с графикой, сетью, файловой системой, периферийными устройствами и т.п.
     
     
  • 5.14, Аноним (3), 17:00, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И что мешает разово сделать всю эту работу сразу?
     
     
  • 6.18, funny.falcon (?), 17:11, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    JIT compiler: LuaJIT, популярный в играх, C# (в юнити он в режиме JIT или AOT?), v8, Java - все они генерят инструкции на лету. Как ты их "заранее перекомпилируешь"?
     
     
  • 7.24, Аноним (1), 17:40, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все они умеют генерить под арм. Надо им просто задать вектор, подсунуть зависимости, поговорить наконец с ними обсудить их проблемы и найти решение.
     
     
  • 8.46, Анониссимус (?), 20:25, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Теоретически возможно, но нихрена не просто Это очень, очень сложно Там будет ... текст свёрнут, показать
     
  • 6.35, Аноним (13), 18:53, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И что мешает разово сделать всю эту работу сразу?

    Люди и сделали, написав эмулятор.

    Я правда не понимаю твоего изначального вопроса, который сводиться к "зачем один раз сделать эмулятор, а не сто раз рекомпилировать все игры по отдельности"? Вне зависимости от того, что ты подразумеваешь под "рекомпиляцией" в этом контексте.

     
  • 3.20, _kp (ok), 17:31, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Когда то я дизассемблировал ПО и пересобирал. И ARM и X86. И работало же.
    Правда то было обычное ПО, без противодействия отладке, в отличии например от игр.
    По идее надо не на лету перекомпилировать, потребляя время и память, а потратив хоть и значительное время, желательно привлекая ИИ, дизассемблировать и пересобрать, за одно устранив лишние прокладки для взаимодействия с OS, но зато сделать это один раз, и получить на выходе полноценные приложения.
    Остальные варианты временные полумеры.
     
     
  • 4.36, МИСАКА (?), 18:57, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, давайте каждую мелкую и не очень софтину и либу ручками ковырять, заняться то в Линукс сообществе больше ведь нечем, ведь Линукс готов к десктопу чуть более чем полностью, поэтому лучше потратить ресурсы на ковыряние каждой отдельной эльфины, чем на создание централизованного решения
     
     
  • 5.40, _kp (ok), 19:36, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну совсем ручками, это дурь, как и что угодно делать по мартышечьи. Нужен инструмент, вместо эмуляторов, котором время от времени может и потребуется дать пендяля, но рутинную работу делать должен.
    Так же, любой пользователь и не должен этим заниматься сам, а может пользоваться уже готовым.


     
  • 5.62, Аноним (61), 00:36, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так а линукс десктоп это целиком приложения
    Будут нативные линь приложения перекомпилированные из венды - будут и пользователи линукс декстопа
    Нормисам пофиг шо там за ось, им нужно шоб танки и офис по даблклику запускадись(и так же просто устанавливались)
     
  • 3.23, Аноним (28), 17:35, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Речь про двоичную рекомпиляцию: машииный код одной архитектуры в машинный код другой. Вроде, МЦСТ этим занималась.
     
  • 2.12, chdlb (?), 16:52, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    я предположу

    1) что дело в зависимостях, они все должны быть доступны для aarch
    2) перекомпиляция не будет происходить одномоментно, а инвестирование в эмуляцию дает доступ сразу ко всему зверинцу
    3) не говоря уже собственно о затратах, ведь кто-то должен в конечном итоге за это заплатить

     
  • 2.17, funny.falcon (?), 17:10, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если программа использует JIT (кхм... LuaJIT... кхм... C#... кхм... v8...), то перекомпиляцией просто бинарника ты не отделаешься. Оно запустится, нагенерит x86 инструкций и ... приехали. Кто будет выполнят эти нагенерённые инструкции?
     
     
  • 3.22, _kp (ok), 17:34, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну уж c# декомпилировать и пересобрать обычно не сложно. ;)
     
  • 3.27, Аноним (27), 18:02, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А зачем программы с jit запускать в эмуляторе? Jit на то и jit что ты берешь исполняемый файл и выполняет его "нативно" на любой платформе.
     
  • 2.31, Аноним (31), 18:10, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Почему все эмулируют и никто не рекомпилирует?

    А у вас компьютер состоит только из АЛУ? Периферии вообще никакой нет?

     
  • 2.54, Аноним (53), 23:05, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то уже давно рекомпилируют, ещё в досбоксе было.
     

  • 1.4, Аноним (4), 16:19, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Как там поддержка античитов, хотя бы тех что не на уровне ядра
     
     
  • 2.34, Аноним (34), 18:27, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Как там поддержка бэкдоров, хотя бы тех что не на уровне ядра

    починил. Надеюсь, что никак.

     
     
  • 3.37, МИСАКА (?), 19:00, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А потом они плачутся, что никто в под их студенческую поделку софт писать не хочет
     
     
  • 4.58, Аноним (58), 23:55, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а за чем, к примеру, эти античиты в офисном пакете, в САПРах? Чтоб пробельчиками текст не форматировали? :)
     
  • 2.63, Аноним (61), 00:39, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Античит ненужен
    Игруны должны страдать
    Как отстрадають, глядишь и дойдет шо не гоже взрослым мужикам в игрульки играть
     

  • 1.7, Евгений (??), 16:31, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А наоборот есть? Чтобы было тоже с высокой производительностью, а не как у qemu.
     
  • 1.8, nume (ok), 16:38, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Игры/софт эмулирует wine/proton, которые эмулируется в FEX 2412, которые запускаются в вяленом gamescope, который запускается в x11, я правильно понял?))
     
     
  • 2.43, Аноним (43), 20:19, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всю суть ПО сломали... Извращенецы!
     
     
  • 3.64, Аноним (64), 01:49, 05/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Раньше - вот железяка, вот ПО.
    Сейчас сплошные производные от железяк и ПО.
     
  • 2.51, Аноним (51), 21:39, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Неправильно. Wine/proton не эмулирует, а транслирует, разница колоссальная, за подробностями на 2 курс тех. вуза. Gamescope не прослойка, а композитор. Вяленый запускается в х11? Щито? Сам-то понял что сказал?
     
     
  • 3.52, nume (ok), 22:40, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Вяленый запускается в х11? Щито? Сам-то понял что сказал?

    Если не знал, то просвещу этой копипастой: gamescope поддерживает встраивание в другие среды, где вместо управления дисплеем напрямую, он действует как окно в X11 или Wayland.

     

  • 1.16, Аноним (16), 17:09, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А что по производительности? Что лучше, сабж или box64?
     
  • 1.26, Опытный (?), 18:02, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это все хорошо, но, например, LibreOffice официально собирает в числе прочих в прошлом традиционных платформ нативное приложение для macOS на Apple Silicon и для Windows на Aarch64. Не говоря уже о портах на других ОС. Все-таки нативные приложения нужно делать. А эмулятор полезен как временное решение.
     
     
  • 2.30, Аноним (1), 18:07, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На маке Розетта 2 все ещё широко используется.
     
     
  • 3.32, Аноним (31), 18:13, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >На маке Розетта 2 все ещё широко используется.

    Cкорее всего там и камень разрабатывался с учетом эмуляции. Да и исходники эмулируемой системы у них на руках.

     
     
  • 4.38, МИСАКА (?), 19:01, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как жаль, что код Linux недоступен разработчикам FEX...
     
  • 4.55, Аноним (53), 23:09, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Да и исходники эмулируемой системы у них на руках.

    Бобёр, выдыхай.

     
  • 3.41, _kp (ok), 19:42, 04/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > На маке Розетта 2 все ещё широко используется.

    Не шикарно. Что то старое или тяжелое не работает вовсе.
    На м1 8/256 некоторые игры и в диафильм превращаются, из за значительных растрат ОЗУ.
    Впрочем, по сравнению с поедыдущими эмуляторами, Розетта значительный шаг вперед, и мотивацию к развитию подобных эмуляторов.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру