Hangover et prosjekt for å starte Windows-applikasjoner på ARM64

Vin-Android-featured-image

Vinprosjektutviklere Stefan Dösinger og André Hentschel har kunngjort den første offentlige versjonen av Hangover-emulatoren, que tillater kjøring av 32-biters og 64-biters Windows-applikasjoner designet for x86- og x86_64-arkitekturer i Linux- og Android-miljøer basert på ARM64 (Aarch64) -arkitekturen.

I motsetning til å kjøre Wine med et minimalt systemmiljø ved bruk av QEMU i emuleringsmodus på systemanropsnivå (bruker samme kjerne som hovedsystemet).

Om Hangover-emulatoren

Prosjektet Hangover gjør at brukeren kan ha en betydelig høyere ytelse. Akselerasjonen av dette prosjektet oppnås ved å overføre emuleringslaget til Win32 / Win64 API-nivå, i stedet for å etterligne vanlige systemanrop med Win32 / Win64 API-postemulering basert på dem.
Foreløpig tillater prosjektet brukeren å kjøre bare enkle applikasjoner og spill som bruker Win64 og Win32 APIer.

For Linux er støtte for Direct3D implementert, som foreløpig ikke er tilgjengelig for Android på grunn av ufullstendig støtte for OpenGL ES in Wine.

Feilsøkingsstøtte er ikke eksisterende, og unntakshåndtering har kjent feil. På grunn av disse årsakene er det sannsynlig at kopibeskyttelses- og anti-cheat-systemene er i dårligere form enn i de vanlige versjonene av Wine.

Generelt kan 64-biters applikasjoner forventes å være i bedre form enn 32-bits applikasjoner fordi det ikke kreves noen datastruktur av noe slag.
For å garantere arbeidet brukes en vanlig installasjon av Wine, supplert med forskjellige biblioteker og DLL-lag.
I et Linux-miljø kjører Windows-applikasjoner automatisk når QEMU er i vinkatalogen ("C: \ x86 \ qemu-x86_64.exe.so").

Mens det på Android foreslås å bruke cmd-verktøyet til å utføre utførelsen.
Adresseområdet er begrenset til 4 GB når du reserverer hver adresse under 4 GB.

De fleste store vinbibliotekene er tidligere lastet over 4 GB for å holde den ovennevnte plassen under 4 GB så ledig som mulig. Ulempen med dette er at å starte en ny prosess tar omtrent 2 sekunder.

vin-4.0

Hangover a Wine for ARM64

Vin ser hver prosess som en 64-biters prosess, så WoW64-laget er ikke aktivt. Dette fungerer bra for rene 32-biters eller rene 64-biters applikasjoner, men vil føre til problemer for blandede applikasjoner som forventer et skille mellom for eksempel C: \ windows \ system32 og C: \ windows \ syswow64.

Når det gjelder utgivelsen av 32-biters (x86) Windows-applikasjoner, behandles på oversettelsesnivå for strukturene som overføres mellom applikasjonen og Wine (LLP64-modellen på Windows bevarer den grunnleggende kompatibiliteten til strukturer mellom 32-bit og 64-bit WinAPI).

For å kjøre 32-biters Windows-applikasjoner brukes 64-biters vinsamlinger, og hver prosess blir først behandlet som 64-biters.

På vertssiden støttes bare ARM64- og x86_64-arkitekturer, men koden er enhetlig, slik at prosjektet kan flyttes til andre arkitekturer i byterekkefølge fra yngste til eldste (liten endian) uten mye anstrengelse.

Det er fortsatt mye å polere

Hangover-forestillingen for øyeblikket overlater mye å være ønsket. Siden eHovedflaskehalsen er ytelsen til koden som QEMU genererer.

Imidlertid når du kjører på en TV-enhet med Android Nvidia Shield. Ytelsen er tilstrekkelig til å kjøre spill fra 2000-tallet.

Applikasjoner testet på Hangover inkluderer Notisblokk ++, ANNO 1602, Age of Wonders, Warhammer 40k: Dawn of War, The Settlers II 10th Anniversary, Prince of Persia 3D, Worms 2 og Worms Armageddon. DirectX 9 SDK-eksemplene kjører også med akseptable hastigheter.

Utgivelsen er basert på Wine 4.0-basiskoden, som gjenspeiles i Hangover 0.4.0-versjonsnummeret. Emuleringslaget er basert på QEMU-prosjektet.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.