Разработчиците на винени проекти Стефан Дьозингер и Андре Хенчел обявиха първата публична версия на емулатора на махмурлук, че позволява стартиране на 32-битови и 64-битови приложения за Windows предназначен за архитектури x86 и x86_64 в Linux и Android среди, базирани на архитектурата ARM64 (Aarch64).
За разлика от стартирането на Wine с минимална системна среда, използваща QEMU в режим на емулация на ниво системно повикване (използвайки същото ядро като основната система).
Относно емулатора на махмурлук
Проектът Махмурлукът позволява на потребителя да има значително по-висока производителност. Ускорението на този проект се постига чрез прехвърляне на емулационния слой на ниво Win32 / Win64 API, вместо да емулира редовни системни обаждания с Win32 / Win64 API след емулация на базата на тях.
В момента проектът позволява на потребителя да изпълнява само прости приложения и игри, които използват API на Win64 и Win32.
За Linux е внедрена поддръжка за Direct3D, която все още не е налична за Android поради непълна поддръжка за OpenGL ES в Wine.
Поддръжката за отстраняване на грешки не съществува и обработката на изключения има известни грешки. Поради тези причини системите за защита срещу копиране и анти-измама вероятно са в по-лошо състояние, отколкото в обикновените версии на Wine.
Като цяло може да се очаква 64-битовите приложения да бъдат в по-добра форма от 32-битовите приложения, тъй като не се изисква каквато и да е структура на данни.
За да се гарантира работата, се използва редовна инсталация на Wine, допълнена с различни библиотеки и DLL слоеве.
В среда на Linux приложенията на Windows се изпълняват автоматично, когато QEMU е в директорията Wine ("C: \ x86 \ qemu-x86_64.exe.so").
Докато на Android се предлага да се използва помощната програма cmd за изпълнение на изпълнението.
Адресното пространство е ограничено до 4 GB при резервиране на всеки адрес под 4 GB.
Повечето основни библиотеки за вино преди са заредени над 4 GB за да запазите горното пространство под 4 GB възможно най-безплатно. Недостатъкът на това е, че стартирането на нов процес отнема около 2 секунди.
Махмурлук вино за ARM64
Wine вижда всеки процес като 64-битов процес, така че неговият слой WoW64 не е активен. Това ще работи добре за чисти 32-битови или чисто 64-битови приложения, но ще създаде проблеми за смесени приложения, които очакват разлика между например C: \ windows \ system32 и C: \ windows \ syswow64.
По отношение на издаването на 32-битови (x86) приложения за Windows, се обработват на ниво превод на структурите, предавани между приложението и Wine (Моделът LLP64 в Windows запазва основната съвместимост на рамки между 32-битова и 64-битова WinAPI).
За да стартирате 32-битови приложения на Windows, се използват 64-битови сглобки Wine и всеки процес първо се третира като 64-битов.
От страна на хоста се поддържат само архитектури ARM64 и x86_64, но кодът е унифициран, което позволява проектът да бъде преместен в други архитектури в байтов ред от най-младата към най-старата (малко ендианска) без много усилия.
Има още много да се полира
Изпълнението на махмурлука в момента оставя много да се желае. Тъй като дОсновното препятствие е работата на кода, който QEMU генерира.
Въпреки това, когато се изпълнява на телевизионно устройство с Android Nvidia Shield. Изпълнението е достатъчно за стартиране на игри от 2000-те.
Приложенията, тествани в Hangover, включват Notepad ++, ANNO 1602, Age of Wonders, Warhammer 40k: Dawn of War, The Settlers II 10th Anniversary, Prince of Persia 3D, Worms 2 и Worms Armageddon. Примерите за DirectX 9 SDK също работят с приемливи скорости.
Изданието се основава на базовия код на Wine 4.0, което е отразено в номера на версията на Hangover 0.4.0. Емулационният слой се основава на проекта QEMU.