Vývojári vinárskych projektov Stefan Dösinger a André Hentschel ohlásili prvú verejnú verziu emulátora Hangover, že umožňuje beh 32-bitových a 64-bitových aplikácií Windows určené pre architektúry x86 a x86_64 v prostrediach Linux a Android založených na architektúre ARM64 (Aarch64).
Na rozdiel od spustenia aplikácie Wine s minimálnym prostredím systému pomocou QEMU v režime emulácie na úrovni systémového volania (s použitím rovnakého jadra ako hlavný systém).
O emulátore Hangover
Projekt Hangover umožňuje používateľovi dosiahnuť podstatne vyšší výkon. Urýchlenie tohto projektu je dosiahnuté prenosom emulačnej vrstvy na úroveň Win32 / Win64 API, namiesto emulácie bežných systémových hovorov s následnou emuláciou rozhrania Win32 / Win64 API na ich základe.
V súčasnosti tento projekt umožňuje používateľovi spúšťať iba jednoduché aplikácie a hry, ktoré používajú API Win64 a Win32.
Pre Linux bola implementovaná podpora Direct3D, ktorá pre Android zatiaľ nie je k dispozícii z dôvodu neúplnej podpory OpenGL ES vo Wine.
Podpora debuggeru neexistuje a spracovanie výnimiek obsahuje známe chyby. Z týchto dôvodov sú systémy na ochranu proti kopírovaniu a proti podvádzaniu pravdepodobne v horšom stave ako v bežných verziách Wine.
Všeobecne možno očakávať, že 64-bitové aplikácie budú v lepšej kondícii ako 32-bitové aplikácie, pretože sa nevyžaduje nijaká dátová štruktúra.
Na zabezpečenie práce sa používa pravidelná inštalácia programu Wine doplnená rôznymi knižnicami a vrstvami DLL.
V prostredí Linuxu sa aplikácie Windows spúšťajú automaticky, keď je QEMU v adresári Wine („C: \ x86 \ qemu-x86_64.exe.so“).
Zatiaľ čo v systéme Android sa navrhuje vykonať program pomocou nástroja cmd.
Pri rezervácii každej adresy pod 4 GB je adresný priestor obmedzený na 4 GB.
Väčšina hlavných knižníc s vínom je predtým načítaná nad 4 GB aby bol vyššie uvedený priestor pod 4 GB čo najviac voľný. Nevýhodou je, že spustenie nového procesu trvá asi 2 sekundy.
Kocovina víno pre ARM64
Wine vníma každý proces ako 64-bitový, takže jeho vrstva WoW64 nie je aktívna. Toto bude fungovať dobre pre čisté 32-bitové alebo čisté 64-bitové aplikácie, ale spôsobí problémy zmiešaným aplikáciám, ktoré očakávajú rozdiel medzi napríklad C: \ windows \ system32 a C: \ windows \ syswow64.
Pokiaľ ide o vydanie 32-bitových (x86) aplikácií pre Windows, sa spracúvajú na úrovni prekladu štruktúr prenášaných medzi aplikáciou a Wine (Model LLP64 v systéme Windows zachováva základnú kompatibilitu rámcov medzi 32-bitovým a 64-bitovým WinAPI).
Na spustenie 32-bitových aplikácií Windows sa používajú 64-bitové zostavy Wine a s každým procesom sa najskôr zaobchádza ako s 64-bitovými.
Na strane hostiteľa sú podporované iba architektúry ARM64 a x86_64, ale kód je zjednotený, čo umožňuje presunúť projekt na iné architektúry v bajtovom poradí od najmladšej po najstaršiu (little-endian) bez veľkého úsilia.
Stále je čo leštiť
Výkon Kocoviny v súčasnosti zostáva veľmi požadovaný. Pretože naprHlavným problémom je výkon kódu, ktorý generuje QEMU.
Avšak, keď bežíte na televíznom zariadení s Android Nvidia Shield. Výkon je dostatočný na spustenie hier od roku 2000.
Medzi aplikácie testované na Hangover patria Notepad ++, ANNO 1602, Age of Wonders, Warhammer 40k: Dawn of War, 10. výročie The Settlers II, Prince of Persia 3D, Worms 2 a Worms Armageddon. Príklady DirectX 9 SDK tiež bežia pri prijateľných rýchlostiach.
Vydanie je založené na základnom kóde Wine 4.0, čo sa odráža v čísle verzie Hangover 0.4.0. Emulačná vrstva je založená na projekte QEMU.