Hangover un projet pour lancer des applications Windows sur ARM64

Image de Wine-Android

Développeurs de projets viticoles Stefan Dösinger et André Hentschel ont fait l'annonce de la première version publique de l'émulateur Hangover, Quoi permet d'exécuter des applications Windows 32 bits et 64 bits conçu pour les architectures x86 et x86_64 dans les environnements Linux et Android basés sur l'architecture ARM64 (Aarch64).

Contrairement à l'exécution de Wine avec un environnement système minimal en utilisant QEMU en mode d'émulation au niveau de l'appel système (en utilisant le même noyau que le système principal).

À propos de l'émulateur Hangover

Le projet Hangover permet à l'utilisateur d'être en mesure d'avoir des performances nettement supérieures. L'accélération de ce projet est réalisé en transférant la couche d'émulation au niveau API Win32 / Win64, au lieu d'émuler les appels système réguliers avec une post-émulation de l'API Win32 / Win64 basée sur eux.
Actuellement, le projet permet à l'utilisateur d'exécuter uniquement des applications et des jeux simples qui utilisent les API Win64 et Win32.

Pour Linux, la prise en charge de Direct3D a été implémentée, ce qui n'est pas encore disponible pour Android en raison d'une prise en charge incomplète d'OpenGL ES dans Wine.

La prise en charge du débogueur est inexistante et la gestion des exceptions a des bogues connus. Pour ces raisons, les systèmes de protection contre la copie et anti-triche sont susceptibles d'être en moins bon état que dans les versions régulières de Wine.

En général, on peut s'attendre à ce que les applications 64 bits soient en meilleure forme que les applications 32 bits, car aucune structure de données d'aucune sorte n'est requise.
Pour garantir le travail, une installation régulière de Wine est utilisée, complétée par diverses bibliothèques et couches DLL.
Dans un environnement Linux, les applications Windows s'exécutent automatiquement lorsque QEMU se trouve dans le répertoire Wine ("C: \ x86 \ qemu-x86_64.exe.so").

Alors que, sur Android, il est proposé d'utiliser l'utilitaire cmd pour effectuer l'exécution.
L'espace d'adressage est limité à 4 Go lors de la réservation de chaque adresse inférieure à 4 Go.

La plupart des principales bibliothèques Wine sont précédemment chargées au-dessus de 4 Go pour garder l'espace ci-dessus en dessous de 4 Go aussi libre que possible. L'inconvénient est que le démarrage d'un nouveau processus prend environ 2 secondes.

vin-4.0

Gueule de bois un vin pour ARM64

Wine voit chaque processus comme un processus 64 bits, donc sa couche WoW64 n'est pas active. Cela fonctionnera bien pour les applications 32 bits pures ou 64 bits pures, mais posera des problèmes pour les applications mixtes qui s'attendent à une distinction entre, par exemple, C: \ windows \ system32 et C: \ windows \ syswow64.

Concernant la sortie des applications Windows 32 bits (x86), sont traités au niveau de la traduction des structures transmises entre l'application et Wine (Le modèle LLP64 sur Windows préserve la compatibilité du framework de base entre WinAPI 32 bits et 64 bits)

Pour exécuter des applications Windows 32 bits, des assemblys Wine 64 bits sont utilisés et chaque processus est d'abord traité comme 64 bits.

Du côté de l'hôte, seules les architectures ARM64 et x86_64 sont prises en charge, mais le code est unifié, ce qui permet au projet d'être déplacé vers d'autres architectures dans l'ordre des octets de la plus jeune à la plus ancienne (petit-boutiste) sans trop d'effort.

Il y a encore beaucoup à polir

La performance de Hangover en ce moment laisse beaucoup à désirer. Depuis eLe principal goulot d'étranglement est la performance du code généré par QEMU.

Toutefois, lors de l'exécution sur un appareil TV avec Android Nvidia Shield. Les performances sont suffisantes pour faire tourner des jeux des années 2000.

Les applications testées à Hangover incluent Notepad ++, ANNO 1602, Age of Wonders, Warhammer 40k: Dawn of War, The Settlers II 10th Anniversary, Prince of Persia 3D, Worms 2 et Worms Armageddon. Les exemples du SDK DirectX 9 fonctionnent également à des vitesses acceptables.

La version est basée sur le code de base de Wine 4.0, qui est reflété dans le numéro de version de Hangover 0.4.0. La couche d'émulation est basée sur le projet QEMU.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.