Retournement de situation pour Windows 8. Sera-t-il possible de faire tourner des applications x86 sur la version ARM ? Peut-être...
Retournement de situation pour Windows 8. Sera-t-il possible de faire tourner des applications x86 sur la version ARM ? Peut-être...
Windows 7 Edition Familiale Premium 64 Bits (OEM) - PC
à partir de 99,89 €
Comparer les prix
Sony Vegas Pro 11
à partir de 619,97 €
Comparer les prix
Windows 7 Edition Intégrale (Ultimate) Mise à Jour - PC
à partir de 152,50 €
Comparer les prix
Windows 7 Edition Intégrale (Ultimate) 32 bits - PC
à partir de 258,99 €
Comparer les prix
CeBIT 2012
CeBIT 2010
Réactions
Ç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.
Dans cette course à l'unification, il n'y aurait que Google qui soit en phase avec le marché.
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)
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.
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.