Розробники проекту Wine опублікували перший публічний випуск емулятора Hangover
Розробники проекту Wine опублікували перший публічний випуск емулятора Hangover, що дозволяє запускати 32- і 64-розрядні Windows-додатки, зібрані для архітектур x86 і x86_64, в оточеннях Linux і Android на базі архітектури ARM64 (A).
Розробники проекту Wine опублікували перший публічний випуск емулятора Hangover, що дозволяє запускати 32- і 64-розрядні Windows-додатки, зібрані для архітектур x86 і x86_64, в оточеннях Linux і Android на базі архітектури ARM64 (Aar Випуск базується на кодовій базі Wine 4.0, що відображено в номері версії Hangover 0.4.0. Шар емуляції базується на напрацюванні проекту QEMU.
На відміну від запуску Wine з мінімальним системним оточенням за допомогою QEMU у режимі емуляції на рівні системних викликів (використовується одне ядро з основною системою), проект Hangover дозволяє домогтися значно вищої продуктивності. Прискорення досягається за рахунок перенесення шару емуляції на рівень API Win32/Win64, замість емуляції штатних системних викликів з наступною емуляцією на основі API Win32/Win64.
В даний час проект дозволяє запускати лише прості програми та ігри, які використовують API Win64 та Win32. Для Linux реалізована підтримка Direct3D, яка поки що відсутня для Android через неповну підтримку OpenGL ES у Wine. Для забезпечення роботи використовується штатна установка Wine, доповнена рядом DLL-бібліотек та прошарків. В оточенні Linux програми Windows запускаються автоматично за наявності qemu у каталозі Wine ("C:\x86\qemu-x86_64.exe.so"). В Android для запуску пропонується використовувати утиліту cmd.
Продуктивність Hangover поки що бажає кращого. Основним вузьким місцем є продуктивність коду, який генерує QEMU. Тим не менш, при запуску на пристрої Nvidia Shield Android TV продуктивності достатньо для виконання ігор початку двохтисячних років. Серед протестованих у 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 також виконується з прийнятною швидкістю.
Щодо запуску 32-розрядних Windows-додатків (x86), їх обробка проводиться на рівні трансляції структур, що передаються між програмою та Wine (модель LLP64 у Windows передбачає збереження базової сумісності структур між 32- та 64-розрядними WinAPI). Для запуску 32-розрядних Windows додатків використовуються 64-розрядні складання Wine і кожен процес перед обробляється як 64-розрядний. На боці хост-систем поки підтримуються тільки архітектури ARM64 і x86_64, але код уніфікований, що дозволяє без великих трудовитрат портувати проект і під інші архітектури з порядком проходження байт від молодшого до старшого (little-endian).
