Quelle est la différence entre les dossiers «System32» et «SysWOW64» dans Windows?
Sur les versions 64 bits de Windows, vous avez deux dossiers distincts Program Files. Mais cela ne s'arrête pas là. Vous disposez également de deux répertoires système distincts dans lesquels les bibliothèques et les exécutables DLL sont stockés: System32 et SysWOW64. Malgré les noms, System32 est plein de fichiers 64 bits et SysWOW64 est plein de fichiers 32 bits. Alors qu'est-ce qui donne?
Qu'est-ce que System32?
Le répertoire System32 contient les fichiers système Windows, à la fois les fichiers de la bibliothèque .DLL utilisés par les programmes et les utilitaires du programme .EXE faisant partie de Windows. Bien que la plupart des fichiers que vous trouverez ici font partie du système d'exploitation Windows, des logiciels tiers installent parfois leurs propres fichiers DLL dans ce dossier..
Les applications exécutées sur votre système peuvent être installées dans votre dossier Program Files ou ailleurs, mais elles chargent souvent des bibliothèques système à partir du dossier System32..
Séparation des bibliothèques 32 bits et 64 bits
Sur une version 64 bits de Windows, vous avez un dossier C: \ Program Files contenant des programmes 64 bits et leurs fichiers, ainsi qu'un dossier C: \ Program Files (x86) contenant des programmes 32 bits et leurs fichiers. Il est utile de séparer ces fichiers car les programmes 64 bits nécessitent des fichiers DLL 64 bits et les programmes 32 bits nécessitent des fichiers DLL 32 bits..
Si un programme 32 bits va charger un fichier DLL dont il a besoin, trouve une version 64 bits et essaie de le charger, il se bloquera. En séparant les logiciels 64 bits et 32 bits en deux dossiers Program Files différents, Windows garantit qu'ils ne seront pas mélangés et causeront des problèmes.
Cependant, tous les fichiers DLL ne sont pas stockés dans Program Files. De nombreuses bibliothèques système incluses avec Windows sont stockées dans C: \ System32 et certains programmes enregistrent également leurs propres fichiers de bibliothèque ici. Ainsi, tout comme Windows possède des dossiers distincts Program Files 32 bits et 64 bits, il existe également des versions distinctes 32 bits et 64 bits du dossier System32..
System32 et SysWOW64
Sur un ordinateur 32 bits, tous les programmes 32 bits stockent leurs fichiers dans C: \ Program Files et l'emplacement de la bibliothèque à l'échelle du système est C: \ System32..
Sur un ordinateur 64 bits, les programmes 64 bits stockent leurs fichiers dans C: \ Program Files et le dossier C: \ Windows \ System32 du système contient des bibliothèques 64 bits. Les programmes 32 bits stockent leurs fichiers dans C: \ Program Files (x86). Le dossier du système est C: \ Windows \ SysWOW64..
C'est absolument contre-intuitif. Malgré le «32» dans le nom, le dossier System32 contient des bibliothèques 64 bits. Et, malgré les 64 dans le nom, le dossier SysWOW64 contient des bibliothèques 32 bits, du moins sur les versions 64 bits de Windows..
En général, vous n'aurez pas besoin de le savoir. Le système d'exploitation Windows et les programmes que vous utilisez placent automatiquement leurs fichiers au bon emplacement et utilisent le bon dossier. Toutefois, si vous devez installer manuellement un fichier DLL au bon emplacement ou en trouver un, ce qui est très rare, vous devez savoir lequel est le fichier..
WOW64, a expliqué
La partie «WOW64» du nom fait ici référence au logiciel «Windows 32 bits sur Windows 64 bits» de Microsoft, qui fait partie du système d'exploitation. Cela permet à Windows d'exécuter des programmes 32 bits sur une version 64 bits de Windows. WoW64 redirige l'accès aux fichiers pour garantir le bon fonctionnement des programmes.
Par exemple, si vous installez un programme 32 bits sur une version 64 bits de Windows et que celui-ci essaie d'écrire dans le dossier C: \ Program Files, WoW64 le pointe sur C: \ Program Files (x86). Et, s'il souhaite accéder au dossier C: \ Windows \ System32, WoW64 le désigne sous C: \ Windows \ SysWOW64. Windows le fait en utilisant un redirecteur de système de fichiers.
Tout cela se passe automatiquement et de manière transparente en arrière-plan. Le programme n'a même pas besoin de savoir qu'il fonctionne sur un système d'exploitation 64 bits, ce qui permet aux programmes 32 bits plus anciens de s'exécuter sans modification sur les versions 64 bits de Windows. WOW64 redirige également l'accès au registre, en veillant à ce qu'il y ait des zones distinctes dans le registre pour les programmes 64 bits et 32 bits.
Alors, pourquoi System32 64 bits et SysWOW64 32 bits?
Tout cela nous ramène à la question à un million de dollars: pourquoi le dossier «System32» est-il 64 bits et SysWOW64 32 bits??
La réponse semble être que de nombreuses applications 32 bits ont été codées en dur pour utiliser le répertoire C: \ Windows \ System32. Lorsque les développeurs ont recompilé ces applications pour les versions 64 bits de Windows, ils ont continué à utiliser le répertoire C: \ Windows \ System32..
Plutôt que de renommer le répertoire et d’obliger les développeurs à passer au nouveau, interrompant ainsi le processus, Microsoft a laissé «System32» en tant que répertoire de bibliothèque système standard. Ils ont créé un nouveau répertoire de bibliothèque pour les applications exécutées sous la couche WoW64, qu’ils ont nommée «SysWOW64». Quand on y pense de cette façon, le nom a plus de sens.
Oui, il est un peu ridicule qu'un répertoire avec "32" dans le nom soit maintenant 64 bits. Peut-être que Microsoft aurait dû voir cela venir quand ils l'ont nommé C: \ Windows \ System32 dans les années 90. Mais, bien qu'un schéma de nommage plus simple serait bien, il ne vaut pas la peine de casser un tas de programmes et de créer plus de travail pour les développeurs, rien que pour y arriver. Cela signifie que nous sommes bloqués avec System32 et SysWOW64 dans un avenir prévisible.