Hangover ett projekt för att starta Windows-applikationer på ARM64

wine-android-featured-image

Vinprojektutvecklare Stefan Dösinger och André Hentschel har meddelat den första offentliga versionen av Hangover-emulatorn, que tillåter att 32-bitars och 64-bitars Windows-applikationer körs designad för x86- och x86_64-arkitekturer i Linux- och Android-miljöer baserat på ARM64 (Aarch64) -arkitekturen.

I motsats till att köra vin med minimal systemmiljö med QEMU i emuleringsläge på systemanropsnivå (med samma kärna som huvudsystemet).

Om Hangover-emulatorn

Projektet Hangover gör att användaren kan få en betydligt högre prestanda. Acceleration av detta projekt uppnås genom att överföra emuleringslagret till Win32 / Win64 API-nivå, istället för att emulera de vanliga systemanropen med efteremulering av Win32 / Win64 API baserat på dem.
För närvarande tillåter projektet att användaren endast kan köra enkla applikationer och spel som använder Win64 och Win32 API: er.

För Linux har Direct3D-stöd implementerats, vilket ännu inte är tillgängligt för Android på grund av ofullständigt stöd för OpenGL ES i vin.

Felsökningsstöd finns inte och undantagshantering har känt fel. På grund av dessa orsaker är kopieringsskyddet och anti-fusk-systemen troligtvis i sämre form än i de vanliga versionerna av vin.

I allmänhet kan 64-bitarsapplikationer förväntas vara i bättre form än 32-bitarsapplikationer eftersom ingen datastruktur av något slag krävs.
För att garantera arbetet används en vanlig installation av vin, kompletterat med olika bibliotek och DLL-lager.
I en Linux-miljö körs Windows-applikationer automatiskt när QEMU finns i vinkatalogen ("C: \ x86 \ qemu-x86_64.exe.so").

Medan det på Android föreslås att du använder cmd-verktyget för att utföra körningen.
Adressutrymmet är begränsat till 4 GB när du reserverar varje adress under 4 GB.

De flesta större vinbibliotek har tidigare laddats över 4 GB för att hålla ovanstående utrymme under 4 GB så ledigt som möjligt. Nackdelen med detta är att det tar cirka 2 sekunder att starta en ny process.

vin-4.0

Hangover a Wine för ARM64

Vin ser varje process som en 64-bitars process, så dess WoW64-lager är inte aktivt. Detta fungerar bra för rena 32-bitars eller rena 64-bitarsapplikationer, men kommer att orsaka problem för blandade applikationer som förväntar sig en skillnad mellan till exempel C: \ windows \ system32 och C: \ windows \ syswow64.

När det gäller lanseringen av 32-bitars (x86) Windows-applikationer, bearbetas på översättningsnivån för de strukturer som överförs mellan applikationen och Wine (LLP64-modellen i Windows bevarar den grundläggande kompatibiliteten för ramar mellan 32-bitars och 64-bitars WinAPI).

För att köra 32-bitars Windows-applikationer används 64-bitars vinaggregat och varje process behandlas först som 64-bitars.

På värdssidan stöds endast ARM64- och x86_64-arkitekturer, men koden är enhetlig, vilket gör att projektet kan flyttas till andra arkitekturer i byteordning från yngsta till äldsta (liten endian) utan mycket ansträngning.

Det finns fortfarande mycket att polera

Hangover prestanda för tillfället lämnar mycket att önska. Sedan eHuvudflaskhalsen är prestandan för koden som QEMU genererar.

Sin embargo, när du kör på en TV-enhet med Android Nvidia Shield. Prestandan är tillräcklig för att köra spel från 2000-talet.

Applikationer som testats vid Hangover inkluderar Notepad ++, ANNO 1602, Age of Wonders, Warhammer 40k: Dawn of War, The Settlers II 10th Anniversary, Prince of Persia 3D, Worms 2 och Worms Armageddon. DirectX 9 SDK-exemplen körs också med acceptabla hastigheter.

Släppet baseras på baskoden Wine 4.0, vilket återspeglas i Hangover 0.4.0-versionsnumret. Emuleringslagret är baserat på QEMU-projektet.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.