Wat is het verschil tussen de mappen System32 en SysWOW64 in Windows?
Op 64-bits versies van Windows hebt u twee afzonderlijke mappen Program Files. Maar daar houdt het niet op. U hebt ook twee afzonderlijke systeemmappen waar DLL-bibliotheken en uitvoerbare bestanden zijn opgeslagen: System32 en SysWOW64. Ondanks de namen zit System32 vol met 64-bits bestanden en SysWOW64 zit vol met 32-bits bestanden. Dus wat geeft?
Wat is System32?
De System32-map bevat Windows-systeembestanden, zowel DLL-bibliotheekbestanden die door programma's worden gebruikt als .EXE-programmahulpprogramma's die deel uitmaken van Windows. Hoewel de meeste bestanden die u hier aantreft deel uitmaken van het Windows-besturingssysteem, installeren externe softwareprogramma's soms ook hun eigen DLL-bestanden in deze map..
Toepassingen die op uw systeem worden uitgevoerd, kunnen in uw map Program Files of elders worden geïnstalleerd, maar vaak worden systeembibliotheken vanuit de System32-map geladen.
Scheiden van 32-bits en 64-bits bibliotheken
Op een 64-bits versie van Windows hebt u een map C: \ Program Files met 64-bits programma's en hun bestanden en een map C: \ Program Files (x86) met 32-bits programma's en hun bestanden. Het is handig dat deze bestanden worden gescheiden omdat 64-bits programma's 64-bits DLL-bestanden nodig hebben en 32-bits programma's 32-bits DLL-bestanden nodig hebben.
Als een 32-bits programma een DLL-bestand gaat laden dat het nodig heeft, een 64-bits versie zoekt en probeert het te laden, zal het crashen. Door 64-bits en 32-bits software in twee verschillende programmabestandenmappen te scheiden, zorgt Windows ervoor dat ze niet door elkaar worden gehaald en problemen veroorzaken.
Niet alle DLL-bestanden worden echter opgeslagen in Program Files. Veel systeembrede bibliotheken die bij Windows worden geleverd, worden opgeslagen in C: \ System32 en sommige programma's dumpen hier ook hun eigen bibliotheekbestanden. Dus net zoals Windows afzonderlijke 32-bits en 64-bits programmabestandenmappen heeft, heeft het ook aparte 32-bits en 64-bits versies van de System32-map.
System32 en SysWOW64
Op een 32-bits computer slaan alle 32-bits programma's hun bestanden op in C: \ Program Files en de systeembrede bibliotheeklocatie is C: \ System32.
Op een 64-bits computer slaan 64-bits programma's hun bestanden op in C: \ Program Files en de systeemomvattende map C: \ Windows \ System32 bevat 64-bits bibliotheken. 32-bits programma's slaan hun bestanden op in C: \ Program Files (x86) en de systeemomvattende map is C: \ Windows \ SysWOW64.
Dit is absoluut niet intuïtief. Ondanks de "32" in de naam, bevat de map System32 64-bits bibliotheken. En ondanks de 64 in de naam bevat de map SysWOW64 32-bits bibliotheken-tenminste op 64-bits versies van Windows.
Over het algemeen hoeft u dit niet te weten. Het Windows-besturingssysteem en de programma's die u gebruikt, plaatsen hun bestanden automatisch op de juiste locatie en gebruiken de juiste map. Als u echter ooit een DLL-bestand handmatig op de juiste locatie moet installeren of wilt zoeken waar het is geïnstalleerd (wat zeer zeldzaam is), moet u weten welke is welke.
WOW64, Explained
Het gedeelte "WOW64" van de naam verwijst hier naar Microsofts "Windows 32-bit op Windows 64-bit" -software, die deel uitmaakt van het besturingssysteem. Hierdoor kan Windows 32-bits programma's uitvoeren op een 64-bits versie van Windows. WoW64 leidt bestandstoegang om om ervoor te zorgen dat programma's correct werken.
Als u bijvoorbeeld een 32-bits programma installeert op een 64-bits versie van Windows en probeert te schrijven naar de map C: \ Program Files, wijst WoW64 dit naar C: \ Program Files (x86). En als het de map C: \ Windows \ System32 wil openen, wijst WoW64 het naar C: \ Windows \ SysWOW64. Windows doet dit met behulp van een redirector van het bestandssysteem.
Dit gebeurt allemaal automatisch en transparant op de achtergrond. Het programma hoeft niet eens te weten dat het wordt uitgevoerd op een 64-bits besturingssysteem, waardoor oudere 32-bits programma's zonder aanpassingen kunnen worden uitgevoerd op 64-bits versies van Windows. WOW64 leidt ook de registertoegang om, zodat er afzonderlijke delen van het register zijn voor 64-bits en 32-bits programma's.
Dus waarom is System32 64-bit en SysWOW64 32-bit?
Dat alles brengt ons terug naar de miljoen-dollar vraag: Waarom is de "System32" -map 64-bit en SysWOW64 32-bit?
Het antwoord lijkt te zijn dat veel 32-bits applicaties hardcoded zijn om de map C: \ Windows \ System32 te gebruiken. Toen ontwikkelaars deze toepassingen opnieuw compileerden voor 64-bits versies van Windows, bleven ze de directory C: \ Windows \ System32 gebruiken.
In plaats van de naam van de map te wijzigen en ontwikkelaars te dwingen naar de nieuwe te gaan, waardoor veel toepassingen werden verbroken, verliet Microsoft "System32" als de standaarddirectory van de systeembibliotheek. Ze hebben een nieuwe bibliotheekmap gemaakt voor toepassingen die onder de WoW64-laag lopen, die ze "SysWOW64" noemden. Als je er zo over nadenkt, is de naam logischer.
Ja, het is een beetje dwaas dat een directory met "32" in de naam nu 64-bit is. Misschien had Microsoft dat moeten zien aankomen toen ze het in de jaren 90 C: \ Windows \ System32 noemden. Maar hoewel een eenvoudiger systeem van naamgeving leuk zou zijn, is het niet de moeite waard een aantal programma's te doorbreken en meer werk voor ontwikkelaars te creëren om er maar heen te komen. Dat betekent dat we vastzitten met System32 en SysWOW64 voor de nabije toekomst.