COMPTOIR
  
register

L'émulation libre du x86 sur ARM est possible avec une bonne gueule de bois !

Alors que les premiers projets portant Linux sur les ordinateurs portables vendus sous Windows 10 ARM pointent le bout de leur nez, voici qu'un logiciel bigrement appétissant pointe le bout de son nez. Nommé Hangover (nous vous laissons le soin de trouver la traduction), ce dernier permet de faire mouliner des binaires x86 Windows sous Linux ARM, si c'est pas beau !

 

Actuellement en alpha, cette première release nommée 0.4 tire ses racines de WINE, le non-émulateur Windows, et de QEMU, un (vrai) émulateur. Bien que Windows propose lui aussi une émulation des programmes pour PC de bureau, celle-ci est limitée aux applications 32 bits, là où Hangover sait câliner le 64 bits, un bon point pour le projet.

 

Ne soyez cependant pas trop hypés : la performance n'est clairement pas l'objectif principal du bouzin. Il est certes possible de jouer à des titres, mais il faudra se contenter de ceux des années 1990-2000 (testés sur une NVIDIA Shield sous Linux). Pour donner un ordre d'idée, Warhammer 40k: Dawn of War, un titre de 2004, se lance vers 30 fps et ralentit jusqu'au niveau "Diaporama - Épreuve du code de la route" lorsque de nombreuses unités apparaissent à l'écran... On peut imaginer que les choses s'amélioreront légèrement à l'avenir, mais il est fort probable que le projet n'arrive jamais à la hauteur de Proton - le WINE passé à la moulinette Valve pour faire tourner tous les titres Steam sous Linux à une vitesse acceptable. Nous saluons tout de même l'initiative ! (Source : Phoronix)

 

wine logo

Même si le vin est une spécialité française, le créateur de Wine - Alexandre Julliard - est suisse !

 

Un poil avant ?

Fuite des performances de la 1660 Ti sur FF XV, alors ?

Un peu plus tard ...

Test • ASUS ROG Strix Gaming RTX 2080 Ti

Les 13 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par SeBL4RD, le Mercredi 20 Février 2019 à 12h13  
par Nicolas D., le Mardi 19 Février 2019 à 21h02
Je tente l'expérience sur un GPU externe en ExpressCard et je ne peux que confirmer tes dires, par contre le bouzin fonctionne assez mal pour les vieux titres (en tout cas Mass Effect... :tear.
Il faut que tu regarde les retours concernant ton jeu sur protondb.com, parfois il arrive qu'il faille legerement mettre les mains dans le cambouis.
Mass Effect
par Nicolas D., le Mardi 19 Février 2019 à 21h02  
par SeBL4RD, le Mardi 19 Février 2019 à 20h09
"pour faire tourner tous les titres Steam sous Linux à une vitesse acceptable."
Pour les utilisateurs AMD en fait, ils ont meme beaucoup plus de frames, surtout sur les jeux OpenGL car Proton recommande fortement d'installer les pilotes libres (Mesa drivers). Quand aux utilisateurs d'Nvidia c'est pas loin des perfs sous Windows, la seule difference c'est que les drivers Linux d'Nvidia (proprietaire) sont moins bien maintenu que sous Windows. La ou se situe le gain de perf également, c'est sur le scheduling processeur, et un swap plus stable que la memoire virtuelle Windowsienne.
Je tente l'expérience sur un GPU externe en ExpressCard et je ne peux que confirmer tes dires, par contre le bouzin fonctionne assez mal pour les vieux titres (en tout cas Mass Effect... :tear.
par SeBL4RD, le Mardi 19 Février 2019 à 20h09  
"pour faire tourner tous les titres Steam sous Linux à une vitesse acceptable."
Pour les utilisateurs AMD en fait, ils ont meme beaucoup plus de frames, surtout sur les jeux OpenGL car Proton recommande fortement d'installer les pilotes libres (Mesa drivers). Quand aux utilisateurs d'Nvidia c'est pas loin des perfs sous Windows, la seule difference c'est que les drivers Linux d'Nvidia (proprietaire) sont moins bien maintenu que sous Windows. La ou se situe le gain de perf également, c'est sur le scheduling processeur, et un swap plus stable que la memoire virtuelle Windowsienne.
par Nicolas D., le Mardi 19 Février 2019 à 05h33  
Déjà l'émulation WINE, ça reste une niche qu'on le veuille ou non (parce que bon, WINE ne tourne pas sur les serveurs qui sont la majorité du parc Tux ), alors de l'émulation Windows sur ARM, dans un futur proche a part un Raspberry ou un smartphone effectivement il n'y a pas cinquante usages.

A mon avis, hard et soft sont liés : voir une telle adaptation est un signe de la prise du puissance d'ARM côté desktop/mid-perf davantage qu'un émulateur réellement performant.. Mais c'est ma manière propre de voir les choses pour le coup .
par Un ragoteur qui draille embusqué, le Mardi 19 Février 2019 à 01h31  
par Un ragoteur bio en Nouvelle-Aquitaine, le Lundi 18 Février 2019 à 21h29
Je ne parle pas de la vitesse d'exécution actuelle mais de l'avenir, j'imagine que ce projet aura un avenir radieux sur les machines de bidouilleur, c'est pour cela que je ne le vois pas réussir sur Android mais bien sur Linux.
Donc cela restera pour une niche si on te suit, au final, je ne sais pas si c'est la meilleure solution pour la vision future de la chose en question.
Pour l'instant, la nouvelle c'est juste de dire qu'ils l'ont fait mais pour le reste, la caravane passe...
Y a encore énormément de progrès a faire pour en faire quelque chose de potable.
C'est juste un début, mais le problème de l'émulation arm, on connait...ce n'est pas la panacé quand même..
A voir ce que cela deviendra par la suite, mais franchement si le truc ne veut pas être perdu dans la nature au bout de peu de temps, je pense au contraire que le but est de le penser pour la démocratisation car quand on bidouille trop seul, on finit seul...et avec peu de moyen.Ce n'est que mon point de vue, mais quelque chose comme cela ne survivra pas longtemps ou ne sera pas attirant si ce projet est dédié a une niche de bidouilleurs.
par Un ragoteur bio en Nouvelle-Aquitaine, le Lundi 18 Février 2019 à 21h29
Je ne parle pas de la vitesse d'exécution actuelle mais de l'avenir, j'imagine que ce projet aura un avenir radieux sur les machines de bidouilleur, c'est pour cela que je ne le vois pas réussir sur Android mais bien sur Linux.
par Un ragoteur bio en Nouvelle-Aquitaine, le Lundi 18 Février 2019 à 21h29  
par cpu en Auvergne-Rhône-Alpes, le Lundi 18 Février 2019 à 21h04
bas non justement. Si c'est tres lent sur un tegra x1 ou sur un snapdragon 835 alors imagine sur un Broadcom BCM2837 (raspberry 3)
Je ne parle pas de la vitesse d'exécution actuelle mais de l'avenir, j'imagine que ce projet aura un avenir radieux sur les machines de bidouilleur, c'est pour cela que je ne le vois pas réussir sur Android mais bien sur Linux.
par cpu en Auvergne-Rhône-Alpes, le Lundi 18 Février 2019 à 21h04  
par Un ragoteur bio en Nouvelle-Aquitaine, le Lundi 18 Février 2019 à 20h35
L'intérêt il est que ça sera utilisable sur toutes les machines ARM exécutant Linux et donc pas que Android.
Je pense que ce projet à tout son avenir sur des machines comme les Framboise 3.14159 et consorts ainsi que le Librem 5 et les machines qui le suivront.
bas non justement. Si c'est tres lent sur un tegra x1 ou sur un snapdragon 835 alors imagine sur un Broadcom BCM2837 (raspberry 3)
par Un ragoteur bio en Nouvelle-Aquitaine, le Lundi 18 Février 2019 à 20h35  
par cpu en Auvergne-Rhône-Alpes, le Lundi 18 Février 2019 à 19h41
Bla
L'intérêt il est que ça sera utilisable sur toutes les machines ARM exécutant Linux et donc pas que Android.
Je pense que ce projet à tout son avenir sur des machines comme les Framboise 3.14159 et consorts ainsi que le Librem 5 et les machines qui le suivront.
par cpu en Auvergne-Rhône-Alpes, le Lundi 18 Février 2019 à 19h41  
par Jemporte, le Lundi 18 Février 2019 à 18h57
Deux choses
Lol ! Une APK de combien de Go d'exécutables sous exe machine arm... et sans java. Bref, c'est pas fait pour un un smartphone lambda même de 12Go de RAM.
et c'est fait pourquoi alors ?
les cpu arm les plus puissants se trouve dans les smartphones justement (en dehors des cpu serveurs qui se compte dans les doigts de la main)
donne moi un cpu arm hors cpu serveur plus puissant que le snapdragon 845 (ou l'a12 d'apple) ?

si le mec a fait des test avec un nvidia shield, nul doute de doute maniere qu'un snapdragon 845/855 sera plus performant

et enfin si ce produit est concu pour android, lis le readme du projet il parle de alncer un docker android pour le compiler justement...
par Jemporte, le Lundi 18 Février 2019 à 18h57  
Deux choses
par CPU en Auvergne-Rhône-Alpes, le Lundi 18 Février 2019 à 18h07
dommage qu'ils ne fournissent pas un apk android à installer pour pouvoir l'essayer facilement
Lol ! Une APK de combien de Go d'exécutables sous exe machine arm... et sans java. Bref, c'est pas fait pour un un smartphone lambda même de 12Go de RAM. A la limite développable pour un smartphone hacké pour accéder aux ressources sinon ça sera pas optimisé donc n'aura pas de vitesse utilisable.
Pour info, un émulateur PC existait il y a 10 ans sous Symbian (architecture ARM ultra de base 32 bits mono-core et 64 ou 128 Mo de RAM) et permettait de faire tourner gentiment des applis MS-DOS et des Windows 3.1 assez honnêtement mais Windows 95 déjà à la ramasse).
Bon alors, pour hangover :
1er point : emulation JIT dans QEMU. Ca garantit des perfs proches de X86 correspondant à l'ARM utilisé (au pire 2 à 3x plus lentes), du moins pour les instructions de base.
deuxième point : c'est un peu limite niveau droits. Les instructions x64 sont encore brevetées mais un usage du JIT intelligent (transcodage d'exécutable de bas niveau chiffré illisible temporaire) permet de les contourner.
Pour les capacités et légalité de la partie Windows, il faut voir ce qui concerne Wine...
le problème de manque de performance ne semble pas lié au simulatuer CPU mais à l'absence de traduction de l'accélération graphique. Il faudrait simuler un GPU récent AMD ou Nvidia, à partir des infos présentes dans les pilotes Linux et réaliser l'équivalent sur le GPU accompagnant le CPU ARM.
Message de CPU en Auvergne-Rhône-Alpes supprimé par un modérateur : Doublon (?)
par CPU en Auvergne-Rhône-Alpes, le Lundi 18 Février 2019 à 18h07  
le lien du projet :
https://github.com/AndreRH/hangover

dommage qu'ils ne fournissent pas un apk android à installer pour pouvoir l'essayer facilement
j'ai pas envie de me farcir une compilation (qui en plus a de grande chance de pas marcher du 1er coup si j'en crois le readme)

pour etre honnete je sais pas si ce genre de projets pourrons exister dans un avenir proche.
j'ai un snapdragon 835 et j'ai déja plusieurs fois tenter une émulation x86 avec qemu mais c'est vraiement lent...
a moins que le snapdragon 855 fasse des miracle ou bien qu'un ARMv9 sorte avec des jeux d'instructions optimisé pour l'émulation x86, cela me semble vraiement pas faisable avant au moins 10ans a ce rythme.

c'est d'autant plus dommage avec des smartphone android qui ont 12go de ram qui ne demmande qu'a etre utilisé.