/ / Jaký je rozdíl mezi složkami „System32“ a „SysWOW64“ ve Windows?

Jaký je rozdíl mezi složkami „System32“ a „SysWOW64“ ve Windows?

V 64bitových verzích systému Windows máte dvěsamostatné složky Program Files. Ale nekončí to. Máte také dva samostatné systémové adresáře, ve kterých jsou uloženy knihovny DLL a spustitelné soubory: System32 a SysWOW64. Přes jména je System32 plný 64bitových souborů a SysWOW64 je plný 32bitových souborů. Co tedy dává?

Co je System32?

PŘÍBUZNÝ: Co jsou soubory DLL a proč chybí jeden z mého počítače?

Adresář System32 obsahuje systém Windowssoubory, oba soubory knihovny .DLL používané programy a .exe programové nástroje, které jsou součástí systému Windows. Většina souborů, které zde najdete, je součástí operačního systému Windows, softwarové programy třetích stran někdy do této složky také instalují své vlastní soubory DLL.

Aplikace spuštěné ve vašem systému mohou být nainstalovány do složky Program Files nebo jinde, ale často načítají celé systémové knihovny ze složky System32.

Oddělení 32bitových a 64bitových knihoven

PŘÍBUZNÝ: Jaký je rozdíl mezi složkami „Program Files (x86)“ a „Program Files“ ve Windows?

V 64bitové verzi systému Windows máte C:Složka Program Files obsahující 64bitové programy a jejich soubory a složka C: Program Files (x86) obsahující 32bitové programy a jejich soubory. Je užitečné tyto soubory oddělit, protože 64bitové programy potřebují 64bitové soubory DLL a 32bitové programy potřebují 32bitové soubory DLL.

Pokud 32bitový program přejde načíst soubor DLLpotřebuje, najde 64bitovou verzi a pokusí se ji načíst, zhroutí se. Rozdělením 64bitového a 32bitového softwaru do dvou různých složek programových souborů systém Windows zajistí, že se nebudou míchat a způsobovat problémy.

Ne všechny soubory DLL jsou však uloženy v programuSoubory. Mnoho knihoven celého systému zahrnutých do systému Windows je uloženo v systému C: System32 a některé programy zde také ukládají své vlastní soubory knihovny. Stejně jako má Windows samostatné 32bitové a 64bitové složky programových souborů, má také oddělené 32bitové a 64bitové verze složky System32.

System32 a SysWOW64

V 32bitovém počítači všechny 32bitové programy ukládají své soubory do C: Program Files a umístění knihovny v celém systému je C: System32.

V 64bitovém počítači si 64bitové programy ukládají svésoubory v C: Program Files a systémová složka C: WindowsSystem32 obsahuje 64bitové knihovny. 32bitové programy ukládají své soubory do C: Program Files (x86) a složkou pro celý systém je C: WindowsSysWOW64.

To je rozhodně kontraintuitivní. Přes "32" v názvu obsahuje složka System32 64bitové knihovny. A i přes 64 v názvu obsahuje složka SysWOW64 32bitové knihovny - alespoň v 64bitových verzích Windows.

Obecně to nebudete muset vědět. Operační systém Windows a používané programy automaticky umístí své soubory na správné místo a použijí správnou složku. Pokud však budete někdy potřebovat ručně nainstalovat soubor DLL na správném místě nebo zjistit, kde je nainstalován - což je velmi vzácné - budete muset vědět, která je která.

WOW64, vysvětlil

PŘÍBUZNÝ: Proč je většina programů stále 32bitová v 64bitové verzi systému Windows?

Zde se odkazuje na část názvu „WOW64“Microsoft „32bitový software Windows pro 64bitový systém Windows“, který je součástí operačního systému. To umožňuje systému Windows spouštět 32bitové programy v 64bitové verzi systému Windows. WoW64 přesměrovává přístup k souborům, aby zajistil, že programy budou fungovat správně.

Pokud například nainstalujete 32bitový program64bitová verze systému Windows a pokouší se zapisovat do složky C: Program Files, WoW64 ji odkazuje na C: Program Files (x86). A pokud chce přistupovat ke složce C: WindowsSystem32, WoW64 to nasměruje na C: WindowsSysWOW64. Systém Windows to provádí pomocí přesměrovače systému souborů.

To vše se děje automaticky a transparentněv pozadí. Program nemusí ani vědět, že běží na 64bitovém operačním systému, který umožňuje starším 32bitovým programům běžet bez úprav na 64bitových verzích Windows. WOW64 také přesměrovává přístup k registru a zajišťuje, aby existovaly oddělené oblasti registru pro 64bitové a 32bitové programy.

Proč je tedy systém 32bitový a 32bitový SysWOW64?

To vše nás přivádí zpět k otázce milionů dolarů: Proč je složka „System32“ 64bitová a 32bitová SysWOW64?

Odpovědí je, že mnoho 32bitovýchaplikace byly pevně zakódovány pro použití adresáře C: WindowsSystem32. Když vývojáři tyto aplikace překompilovali pro 64bitové verze systému Windows, pokračovali v používání adresáře C: WindowsSystem32.

Spíše než přejmenování adresáře a nucenívývojáři, kteří se přestěhovali do nového, přerušili mnoho aplikací v tomto procesu, společnost Microsoft ponechala „System32“ jako standardní adresář systémové knihovny. Vytvořili nový adresář knihovny pro aplikace běžící pod vrstvou WoW64, které nazvali „SysWOW64“. Když o tom přemýšlíte tímto způsobem, název dává větší smysl.

Ano, je trochu hloupé, že adresář s „32“v názvu je nyní 64-bit. Možná by to Microsoft měl vidět, když to v 90. letech nazvali C: WindowsSystem32. Ale i když by bylo hezčí pojmenování jednodušší, nestojí za to rozbít spoustu programů a vytvořit více práce pro vývojáře, aby se tam dostali. To znamená, že jsme v dohledné budoucnosti zaseknutí se systémy System32 a SysWOW64.