Windows 8 ARM finalement capable de faire tourner des programmes x86 ?

Publié le 08 février 2012 , par Mathieu Chartier - mis à jour le 08 février 2012 à 14h - dans Logiciels - Mots clés : Windows 8, ARM, x86

Retournement de situation pour Windows 8. Sera-t-il possible de faire tourner des applications x86 sur la version ARM ? Peut-être...

>> Retour à l'article <<

Réactions


-a. - le 08/02/12 à 18:02
gesti
Pour info: Windows est aussi multi-architectures. Ce n'est pas nouveau, c'est juste un "retour aux sources": les versions actuelles de Windows sont basees sur NT, qui a supporte les archis Alpha/PowerPC/MIPS a une epoque.


Ça n'a aucun rapport : NT est compilé pour l'une ou l'autre des architectures, et il ne sait alors exécuter que des binaires pour cette architecture. À l'inverse, Linux et Mac OS X savent jongler avec des binaires pour différentes architectures sur le même système.
loulnux - le 09/02/12 à 09:41
Ce que je note c'est que les news se croisent entre Apple qui veut portabiliser OSX sur ARM et crosoft qui tente le même genre d'acrobatie, je pense que c'est louable jusqu'à un certain point car il n'y aura qu'une partie réduite des exécutable exploitables de cette manière simplement par manque de ressources matériel.
Dans cette course à l'unification, il n'y aurait que Google qui soit en phase avec le marché.
vangal - le 09/02/12 à 10:44
-a.
gesti
Pour info: Windows est aussi multi-architectures. Ce n'est pas nouveau, c'est juste un "retour aux sources": les versions actuelles de Windows sont basees sur NT, qui a supporte les archis Alpha/PowerPC/MIPS a une epoque.


Ça n'a aucun rapport : NT est compilé pour l'une ou l'autre des architectures, et il ne sait alors exécuter que des binaires pour cette architecture. À l'inverse, Linux et Mac OS X savent jongler avec des binaires pour différentes architectures sur le même système.


Je ne suis pas développeur, mais la surcouche WoW64 tourne plutôt bien et fait tourner des applis x86 très correctement sur un noyau x64, de meilleure manière en tout cas qu'un truc comme Rosetta par exemple (bon après j'imagine que la compatibilité ascendante du x86 vers x64, ça n'a rien à voir avec un changement complet d'architecture comme un passage de PPC vers x86 ou ARM)
SartMatt - le 09/02/12 à 11:07
vangal
Je ne suis pas développeur, mais la surcouche WoW64 tourne plutôt bien et fait tourner des applis x86 très correctement sur un noyau x64, de meilleure manière en tout cas qu'un truc comme Rosetta par exemple (bon après j'imagine que la compatibilité ascendante du x86 vers x64, ça n'a rien à voir avec un changement complet d'architecture comme un passage de PPC vers x86 ou ARM)
Oui, comme tu le dis dans ta parenthèse, c'est pas du tout comparable...

Tous les processeurs x64 peuvent exécuter nativement du code 32 bits, même quand ils sont démarrés en mode 64 bits (ils ne peuvent par contre exécuter du code 16 bits qu'en étant démarré en mode 32 bits, et c'est pour ça que les versions 64 bits de Windows ne peuvent plus exécuter d'anciennes applications 16 bits). Il n'y a donc aucune adaptation à faire au niveau des binaires, il faut juste s'assurer que les API exposées aux applications 32 bits savent communiquer avec le noyau 64 bits.

Pour Rosetta par contre, il fallait transcrire le code PowerPC en code x86. Dans ce sens, ça reste encore relativement jouable, d'abord parce que les processeurs x86 utilisés par Apple étaient plus puissants que les PowerPC, ensuite parce que transcrire du code RISC en code CISC reste relativement aisé. Il y a juste le manque de registres (8 en 32 bits, 16 en 64 bits, contre 32 en PowerPC) qui peut éventuellement gêner, et obliger à passer un peu plus souvent par le cache, ce qui reste raisonnable en terme de performances.

Par contre pour exécuter du x86 sur du ARM, c'est une autre affaire... Le processeur est moins puissant, et il va falloir "casser" les instructions x86 complexes pour les décomposer en instructions plus simple. Et pour limiter la perte de performances, il va falloir en plus essayer d'optimiser le code pour tirer parti des registres supplémentaires en essayant de repérer les variables mémoire les plus souvent manipulées pour les remplacer par des registres.
aubade75 - ( 1 approbation ) - le 09/02/12 à 12:06
Pour les application .NET (sans appel vers des library x86 ou des objet COM), il ne devrait pas avoir trop de problèmes s'il y a une CLR pour ARM (ce dont je ne doute pas).
Peut-être une recompilation sera nécessaire pour les directive de compilation JIT (actuellement x86, x64, toutes plateformes).

Pour les programme x86 , une décompilation-compilation JIT optimisée "à la .NET" plus une optimisation multi-core ? Mais cela reste très complexe et posera surement des problèmes avec les programme protégés.
Les commentaires sur ce document sont clos.
  • Tout
  • Hi-Tech
  • Matériel
  • Mac
  • Jeux