/ / Quelle est la différence entre les dossiers «System32» et «SysWOW64» dans Windows?

Quelle est la différence entre les dossiers «System32» et «SysWOW64» dans Windows?

Sur les versions 64 bits de Windows, vous avez deuxdossiers séparés de Program Files. Mais cela ne se termine 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?

APPARENTÉ, RELIÉ, CONNEXE: Que sont les fichiers DLL et pourquoi en manque-t-il sur mon PC?

Le répertoire System32 contient le système Windowsfichiers, fichiers de la bibliothèque .DLL utilisés par les programmes et 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

APPARENTÉ, RELIÉ, CONNEXE: Quelle est la différence entre les dossiers «Program Files (x86)» et «Program Files» dans Windows?

Sur une version 64 bits de Windows, vous avez un C:Dossier Program Files contenant les programmes 64 bits et leurs fichiers, et un dossier C: Program Files (x86) contenant les 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, ila besoin, trouve une version 64 bits et essaie de la charger, elle va planter. 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 le programmeDes dossiers. 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 possède également des versions 32 bits et 64 bits distinctes 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 leursfichiers dans C: Program Files et le dossier C: WindowsSystem32 du système entier contient des bibliothèques 64 bits. Les programmes 32 bits stockent leurs fichiers dans C: Program Files (x86) et le dossier du système est C: WindowsSysWOW64.

C'est absolument 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 à l'emplacement correct et utilisent le dossier approprié. 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é

APPARENTÉ, RELIÉ, CONNEXE: Pourquoi la plupart des programmes sont-ils toujours 32 bits sur une version 64 bits de Windows?

La partie «WOW64» du nom fait référence ici àLe logiciel Microsoft «Windows 32 bits sur Windows 64 bits», 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 un ordinateurVersion 64 bits de Windows et il essaie d’écrire dans le dossier C: Program Files, WoW64 le pointe vers C: Program Files (x86). Et, s'il souhaite accéder au dossier C: WindowsSystem32, WoW64 le désigne sous C: WindowsSysWOW64. Windows le fait en utilisant un redirecteur de système de fichiers.

Tout cela se passe automatiquement et de manière transparenteen 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 beaucoup de 32 bitsles applications ont été codées en dur pour utiliser le répertoire C: WindowsSystem32. Lorsque les développeurs ont recompilé ces applications pour les versions 64 bits de Windows, ils ont continué à utiliser le répertoire C: WindowsSystem32.

Plutôt que de renommer le répertoire et de forcerles développeurs pour passer à la nouvelle, coupant ainsi 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, c’est un peu ridicule qu’un répertoire avec «32»dans le nom est maintenant 64 bits. Peut-être que Microsoft aurait dû voir cela venir quand ils l'ont nommé C: WindowsSystem32 dans les années 90. Mais, bien qu’un schéma de nommage plus simple serait bien, cela 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.