Qu'est-ce que System32?
Le répertoire System32 contient les fichiers système Windows, les fichiers de bibliothèque.DLL utilisés par les programmes et les utilitaires de programmes.EXE faisant partie de Windows. Alors que la plupart des fichiers que vous trouvez 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
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 ne poseront pas problème.
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 exportent également leurs propres fichiers de bibliothèque ici. Ainsi, tout comme Windows possède des dossiers Program Files distincts en 32 bits et en 64 bits, il existe également des versions séparées en 32 bits et en 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 définitivement contre-intuitif. Malgré le «32» dans le nom, le dossier System32 contient des bibliothèques 64 bits. Et, malgré le nom 64, le dossier SysWOW64 contient des bibliothèques 32 bits, du moins sur les versions 64 bits de Windows.
En général, vous n’avez pas besoin de savoir cela. 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 à l’emplacement approprié ou en trouver un (ce qui est très rare), vous devez savoir lequel est lequel.
WOW64, a expliqué
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 est exécuté 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, ce qui a eu pour effet d’interrompre de nombreuses applications, 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.