Peut-on installer un programme 64 bits sur un système d’exploitation 32 bits ?


La plupart des autres réponses ont raison de dire que vous ne pouvez pas installer et exécuter un programme 64 bits sur un système d'exploitation 32 bits, mais que vous pouvez généralement installer et exécuter des programmes 32 bits sur un système d'exploitation 64 bits.

Cependant, la plupart des réponses semblent tenir pour acquis que l'exécution de 32 sur 64 est simple et facile.


En ce qui concerne l'installation d'un système d'exploitation 32 bits sur un processeur Intel compatible 64 bits, cela est rendu possible parce que ces processeurs sont rétrocompatibles et que le "mode" 64 bits est en fait activé par un logiciel, parfois pendant les premières phases du processus de démarrage.

Un système d'exploitation 32 bits ne fera évidemment pas cela et le processeur restera en mode 32 bits et fera joyeusement fonctionner le système d'exploitation 32 bits, qui peut ne jamais remarquer qu'il fonctionne sur un processeur à capacité 64 bits.

Les applications 32 bits fonctionneront sur le système d'exploitation 32 bits installé sur un processeur à capacité 64 bits sans problème, en grande partie parce que le processeur à capacité 64 bits laissé en mode 32 bits se comporte comme un processeur 32 bits à toutes fins pratiques.

En revanche, faire tourner des applications 32 bits sur une version 64 bits du système d'exploitation Windows n'était certainement pas accordé ni facile au départ !

Faire tourner des binaires 32 bits sur une version 64 bits du système d'exploitation Windows n'est possible que grâce à un ENORME investissement de Microsoft (en particulier l'équipe du noyau) pour s'assurer que les applications 32 bits se chargent et s'exécutent sur Windows 64 bits comme elles le feraient sur une version 32 bits du système d'exploitation.

Regardez votre dossier WindowsSysWow64 et considérez que chaque fichier qui s'y trouve est une version 32 bits spéciale du composant système 64 bits correspondant, conçu pour soit émuler la fonction, soit traduire / transmettre / retransmettre les appels de fonction aux services système de la plateforme 64 bits native sous-jacente.

Sans tout cela, l'exécution d'une app 32 bits sur Windows 64 ne serait pas "très facile" mais tout simplement impossible.

J'ai trouvé une explication décente sur le web : Les dossiers 'Program Files (x86)&apos ; et 'SysWOW64&apos ; expliqués

Pour développer un peu, j'ai fait partie de l'équipe de compatibilité des apps pour la version ARM64 de Windows[1] récemment annoncée, qui, en plus des applications ARM64 natives, exécute également des applications 32 bits ARM et 32 bits Intel x86 sur les CPU ARM64.

L'exécution d'applications Intel 32 bits sur une version ARM 64 bits de Windows n'est pas très différente de l'exécution d'applications ARM 32 bits sur un système d'exploitation ARM 64 bits ou, d'ailleurs, d'applications Intel 32 bits sur une version Intel 64 bits du système d'exploitation.

Sûr, le jeu d'instructions est différent et cela a nécessité quelques étapes supplémentaires (dans le cas d'ARM, une traduction binaire et une compilation x86-to-ARM juste à temps) mais, hormis cette étape plutôt mécanique, le problème de l'exécution de trucs 32 bits sur Windows 64 est exactement le même.

Avec l'aide de notre équipe de science des données, nous avons identifié les applications et les jeux les plus populaires, couvrant la grande majorité des utilisateurs de Windows dans le monde, et nous les avons réellement installés et testés tous. Cela représente plusieurs centaines d'applications différentes et des milliers d'heures de tests automatisés et manuels.

Pendant plusieurs mois, des milliers de bogues ont été répertoriés et des centaines de problèmes ont été corrigés dans les couches d'émulation pour garantir une expérience fluide aux utilisateurs finaux. À certaines occasions, nous avons tendu la main aux éditeurs et travaillé avec eux pour assurer la compatibilité.

Donc, dans le monde Windows, les applications 32 bits sur un OS 64 bits, à architecture croisée ou non, ne se produisent pas gratuitement ou par accident, c'est le résultat d'un travail acharné de beaucoup de personnes au sein de nombreuses équipes Windows, des personnes chargées de la configuration qui installent vos applications aux personnes chargées du noyau qui fournissent les services de base de l'OS et à peu près tout le monde entre les deux, et des tonnes et des tonnes de code spécial pour émuler l'environnement auquel l'application 32 bits s'attend et dont elle a besoin pour pouvoir fonctionner.

Footnotes

[1] Microsoft launches Windows 10 on ARM, with HP and ASUS promising 20+ hours of battery life