LINUX.ORG.RU

X86-64


13

0

Всего сообщений: 2

Нативный Wine под ARM64 (с поддержкой x86-приложений)

 , , ,

Subj.

Вообще, Wine собираться под ARM64 умеет достаточно давно, но особого смысла от этого не было. То, ради чего нужен Wine, под ARM64, понятным образом, не заработает без эмуляции, в которую сам по себе Wine не умел. В самом же оффтопе для запуска x64 используется как стандартный эмулятор/транслятор xtajit64, так и ARM64EC ABI – что-то похожее на Universal бинарники в одной известной BSD-based OS.

Добавление такого в Wine был вопрос времени и.. в Wine 10.0 таки появилась официальная (экспериментальная) поддержка ARM64EC. Собранный с таким таргетом Wine вместе с готовым эмулятором, адаптированным к работе в окружении ntdll (Win32 не подходит) позволяет запускать как нативные приложения, так и x64, используя тот же механизм, что применяется в самом Windows-on-ARM.

Кому это надо? Энтузиастам на маках с Asahi навроде меня и… неожиданно Valve, которые делают VR шлем с ARM на борту.

По сравнению с старыми способами запуска Wine под эмулированным x86 Linux окружением (FEX/box64), тут всё работает чуть стабильнее засчёт прямого доступа к линуксовым либам (libvulkan, libwayland-client, libGL, etc..). И сколько-то быстрее – по идее, fsync/ntsync должен в таком окружении поддерживаться без проблем т.к. эмулируется только CPU-часть.
WoW64 (x86_32) тоже запускается, но менее стабильно – по большей части потому, что сама по себе поддержка wow64 в вине оставляет желать лучшего. Но для запуска инсталляторов хватает (многие до сих пор 32 битные).
С Wine-10.4 добавили поддержку работы оного на ядрах с размером страниц выше 4K – не знаю, как они это смогли реализовать (ведь не существует WoA устройств с таким размером), но разницы с запуском под 4K окружением и 16К я не заметил. Всё работает одинаково, разве что костыли с виртуальной машиной для обхода ограничений железа не нужны.

Собирается легко, если в системе есть clang/llvm 20: ./configure --enable-archs=i386,arm64ec,aarch64 --disable-tests --with-mingw=clang
Забавно, что в вышеупомянутом Darwin вайн собирается, но… zsh: killed wineboot.
Похоже, что в XNU чего-то не хватает.

TL;DR игрушечки и приложения работают, на x64 стабильно, на x86_32 как повезёт.

P.S. Notepad++ на скриншоте нативный ARM64. Игра (DX12), очевидно, нет, только x64.

P.P.S. добавил тег asahi, потому что это одно из окружений, на котором wine теперь работает нативно. Скриншоты также сделаны под Asahi.

whbex
()

Макоси под линуксом x86_64

 68k, , , , , , ,

Осуществил давнишнюю свою мечту- иметь макось на рабочем месте.))) Макоси не новые, но тем не менее... Эмулятор PowerPC- SheepShaver(для корректной работы выполните перед запуском su -c 'setenforce 0'), Motorola 68k эмулируется эмулятором minivmac. Ничего не тормозит(Хотя по опыту юзания PearPC тормоза ожидались, и нехилые.). Сбылась мечта идиота, короче говоря...))))

Dorif
()