La vie secrète de Windows : Historique - Un long voyage

Rejoignez notre journaliste de Windows - Confidentiel pour un tour complet de tous les répertoires contenant le terme « système » dans leur nom.

Raymond Chen

Une fois était autre, à l'époque de 16 bits Windows, il était un répertoire nommé C:\Windows\System. C'était ce dernier temps que était simple.

Avec l'introduction de Win32, il était un deuxième répertoire de système ajouté nommé C:\Windows\System32. Ce deuxième répertoire contenait les fichiers de système 32 bits. Les fichiers système 16 bits sont restées dans le répertoire système ancien. Hé bien, à ceci près que sous Windows 95, les deux fichiers de système 32 bits et 16 bits résidaient dans le même répertoire, conserver son ancien nom de C:\Windows\System. Nous ne pourrons pas parler à nouveau de Windows 95.

Fichiers de commandes exécutaient des programmes à partir de C:\Windows\System32 dans l'attente que le programme qui en résulte renverrait le système d'exploitation natif. Ces attentes n'étaient pas explicites, mais ils ont été impliquées par la nature de l'activité. Si le répertoire System32 était rempli avec les programmes 32 bits, puis un fichier de commandes qui s'exécutait le programme C:\Windows\System32\REG.EXE à perturber un paramètre du Registre système peut exécuter la version 32 bits de REG.EXE, ce qui signifie que qu'il aurait à être jour la version de simulation de 32 bits du Registre au lieu de la version 64 bits réelle. Autres types de fichiers de script (telles que les fichiers REG) ont le même problème.

Il existe un certain nombre des programmes 32 bits de ce chemin d'accès de coder en dur le System32, plutôt que d'appeler la fonction GetSystemDirectory. Lorsque ces programmes sont recompilés pour Windows 64 bits, ils essaieront toujours d'accéder au répertoire System32, s'attendant à trouver des fichiers 64 bits (parce que le programme est compilé maintenant de 64 bits). Écrit dans le Registre ou les fichiers de configuration de chemins d'accès doivent avoir un sens pour les processus 32 bits et 64 bits, mais est nécessaire faire référence dans le répertoire approprié en fonction de la largeur de “ bits ” du programme effectuant la demande.

Désactivez que boue ?

Pour extricate lui-même à partir de cette situation confuse, l'équipe Windows a décidé que le répertoire System32 contient des fichiers 64 bits sur les systèmes 64 bits et 32 bits des fichiers sur les systèmes 32 bits. Les 32 est juste une partie du nom et ne veut pas dire quoi que ce soit. Il est similaire pour le DVD est simplement un nom et n'a pas de dire exactement quoi que ce soit, ou le nombre de grandes entreprises a officiellement modifier leur nom à une séquence de lettres qui peuvent avoir en même temps debout pour le formulaire juste quelque chose, mais maintenant un nom, tel que HSBC, KFC, BP et KPMG.

La redirection du système de fichiers pour les processus 32 bits ajoute une couche de complexité cette histoire déjà déroutant. Lorsqu'un processus 32 bits accède au répertoire C:\windows\system32 sur un système 64 bits, ses opérations sont redirigées vers le répertoire C:\Windows\SysWOW64, ce qui est que vous trouverez les DLL de système 32 bits.

Par conséquent, vous devez considérer System32 comme nom pour le répertoire “ DLL système dans le même nombre de bits que l'application est en cours d'exécution ” un peu étrange. Dans un monde idéal de plus, quelque chose comme ceci devrait avoir été appelé le répertoire SysExec car il contient des fichiers correspondant à l'environnement d'exécution.

Mais Wait, il n'existe plus

Que se passe-t-il si vous souhaitez accéder au répertoire de système réel 64 bits à partir d'un processus 32 bits ? Redirection du système de fichiers prend votre tentative d'accéder au répertoire C:\Windows\System32 et rediriger vers le répertoire C:\Windows\SysWOW64. Par programme, vous pouvez utiliser des fonctions avec noms difficile à manipuler que Wow64 ­ désactiver ­ Wow64 ­ FS ­ la redirection, mais celles désactive la redirection pour toutes les opérations jusqu'à ce qu'ils sont réactivés. Cela provoque des problèmes si vous souhaitez réaliser toute action plus complexe que l'ouverture d'un seul fichier. Une opération complexe peut entraîner l'accès à plusieurs fichiers ou de créer éventuellement des threads de travail.

C'est la fin de notre visite guidée rond-point des répertoires différents avec le système dans leur nom. Si elle semble être déroutant, rappelez-vous simplement que rarement la signification de l'annuaire correspond à son nom.

Raymond Chen

Raymond Chen Web site, The Old New Thing, et même intitulée livre (Addison-Wesley, 2007) traite de l'historique de Windows, programmation Win32 et les compétences illusory réparation de la bande électrique noir.

Contenu associé