Jaký je rozdíl mezi složkami System32 a SysWOW64 v systému Windows?
V 64bitových verzích systému Windows máte dvě samostatné složky Program Files. Ale to tam nekončí. Máte také dva samostatné systémové adresáře, kde jsou uloženy knihovny DLL a spustitelné soubory: System32 a SysWOW64. Přes názvy System32 je plná 64bitových souborů a SysWOW64 je plná 32bitových souborů. Takže to, co dává?
Co je systém32?
Adresář System32 obsahuje systémové soubory systému Windows, soubory knihovny DLL používané programy a programové nástroje .EXE, které jsou součástí systému Windows. Zatímco většina souborů, které naleznete zde, je součástí operačního systému Windows, softwarové programy třetích stran někdy instalují do této složky také své vlastní soubory DLL.
Aplikace spuštěné ve vašem systému mohou být nainstalovány ve složce Program Files nebo jinde, ale často načtou systémové knihovny ze složky System32.
Separace 32bitových a 64bitových knihoven
V 64bitové verzi systému Windows máte složku C: \ Program Files obsahující 64bitové programy a jejich soubory a složku C: \ Program Files (x86) obsahující 32bitové programy a jejich soubory. Je užitečné, aby byly tyto soubory odděleny, protože 64bitové programy potřebují 64bitové soubory DLL a 32bitové programy potřebují 32bitové soubory DLL.
Pokud 32bitový program spustí načtení souboru DLL, který potřebuje, najde 64bitovou verzi a pokusí se jej načíst, dojde k selhání. Oddělením 64bitového a 32bitového softwaru do dvou různých složek programových souborů zajišťuje systém Windows, že se nezmizí a nezpůsobí problémy.
Avšak ne všechny soubory DLL jsou uloženy v programových souborech. Mnoho knihoven systému zahrnutých v systému Windows je uloženo v C: \ System32 a některé programy také vypisují své soubory knihovny zde. Takže, stejně jako Windows má samostatné 32bitové a 64bitové složky Program Files, má také samostatné 32bitové a 64bitové verze složky System32.
System32 a SysWOW64
Na 32bitovém počítači ukládají všechny 32bitové programy své soubory v C: \ Program Files a systémová knihovna je C: \ System32.
Na 64bitovém počítači ukládají 64bitové programy své soubory do C: \ Program Files a systémová složka C: \ Windows \ System32 obsahuje 64bitové knihovny. 32bitové programy ukládají své soubory do C: \ Program Files (x86) a systémová složka je C: \ Windows \ SysWOW64.
To je určitě neintucitivní. Přes název "32" ve složce System32 obsahuje 64bitové knihovny. A přes složku 64 v názvu obsahuje složka SysWOW64 32bitové knihovny - přinejmenším v 64bitových verzích systému Windows.
Obecně to nebudete muset vědět. Operační systém Windows a programy, které používáte, automaticky umístí své soubory na správné místo a použijí správný adresář. Pokud však někdy budete muset ručně nainstalovat soubor DLL na správném místě nebo zjistit, kde je nainstalován, což je velmi vzácné, budete potřebovat vědět, který z nich je.
WOW64, vysvětlil
Část názvu "WOW64" zde odkazuje na software společnosti Microsoft "32bitový systém Windows na 64bitovém systému Windows", který je součástí operačního systému. To umožňuje systému Windows spustit 32bitové programy v 64bitové verzi systému Windows. WoW64 přesměruje přístup k souborům a zajistí, aby programy fungovaly správně.
Například pokud instalujete 32bitový program na 64bitovou verzi systému Windows a pokusí se zapisovat do složky C: \ Program Files, WoW64 to ukáže na C: \ Program Files (x86). A pokud chce získat přístup ke složce C: \ Windows \ System32, WoW64 to ukáže na C: \ Windows \ SysWOW64. Systém Windows jej používá přes přesměrovač souborů.
To vše se děje automaticky a transparentně na pozadí. Program ani nemusí vědět, že běží na 64bitovém operačním systému, který umožňuje, aby starší 32bitové programy běží bez úprav v 64bitových verzích systému Windows. WOW64 také přesměruje přístup k registru zajišťující, že existují oddělené oblasti registru pro 64bitové a 32bitové programy.
Takže proč je System32 64bitový a SysWOW64 32bitový?
Vše, co nás přivádí zpět k milionové dolarové otázce: Proč je 64bitová složka "System32" a 32bitová SysWOW64?
Odpověď se zdá být, že mnoho 32bitových aplikací bylo hardcoded používat adresář C: \ Windows \ System32. Když vývojáři kompilovali tyto aplikace pro 64bitové verze systému Windows, pokračovali v používání adresáře C: \ Windows \ System32.
Spíše než přejmenovat adresář a vynucovat vývojáře k přesunu na nový, přerušení mnoha aplikací v procesu, Microsoft opustil "System32" jako standardní knihovnu systémové knihovny. Vytvořili nový adresář knihovny pro aplikace spuštěné pod vrstvou WoW64, které nazvali "SysWOW64". Když o tom přemýšlíte, toto jméno má větší smysl.
Ano, je trochu hloupé, že adresář s názvem "32" v názvu je nyní 64bitový. Možná, že by Microsoft měl vidět, že přišel v roce 1990, když jej pojmenovali C: \ Windows \ System32. Ale i když by bylo jednodušší pojmenování poměrně příjemné, nestojí za to, že by se rozbíjelo spousta programů a vytváření více práce pro vývojáře, aby se tam dostali. To znamená, že jsme v dohledné budoucnosti zablokovali systémy System32 a SysWOW64.