/ / Vad är skillnaden mellan "System32" och "SysWOW64" mappar i Windows?

Vad är skillnaden mellan mapparna "System32" och "SysWOW64" i Windows?

På 64-bitarsversioner av Windows har du tvåseparata Program Files-mappar. Men det slutar inte där. Du har också två separata systemkataloger där DLL-bibliotek och körbara filer lagras: System32 och SysWOW64. Trots namnen är System32 full av 64-bitars filer och SysWOW64 är full av 32-bitars filer. Så vad ger?

Vad är System32?

RELATERAD: Vad är DLL-filer, och varför saknas en från min dator?

System32-katalogen innehåller Windows-systemfiler, både .DLL-biblioteksfiler som används av program och .EXE-programverktyg som ingår i Windows. Medan de flesta av filerna du hittar här är en del av Windows-operativsystemet, installerar tredjepartsprogram ibland också sina egna DLL-filer i den här mappen.

Program som körs på ditt system kan installeras i mappen Programfiler eller någon annanstans, men de laddar ofta systemomfattande bibliotek från System32-mappen.

Separera 32-bitars och 64-bitars bibliotek

RELATERAD: Vad är skillnaden mellan mapparna "Programfiler (x86)" och "Programfiler" i Windows?

På en 64-bitarsversion av Windows har du en C:Programmappmapp som innehåller 64-bitarsprogram och deras filer och en C: Program Files (x86) -mapp som innehåller 32-bitarsprogram och deras filer. Det är bra att separera dessa filer eftersom 64-bitarsprogram behöver 64-bitars DLL-filer och 32-bitarsprogram behöver 32-bitars DLL-filer.

Om ett 32-bitarsprogram läser in en DLL-fil går detbehöver, hittar en 64-bitarsversion och försöker ladda den, den kraschar. Genom att separera 64-bitars och 32-bitars programvara i två olika mappar för programfiler ser Windows till att de inte blandas och orsakar problem.

Men inte alla DLL-filer lagras i programmetFiler. Många systemomfattande bibliotek som ingår i Windows lagras i C: System32, och vissa program dumpar också sina egna biblioteksfiler här. Precis som Windows har separata 32-bitars och 64-bitars mappar för programfiler, har den också separata 32-bitars- och 64-bitarsversioner av System32-mappen.

System32 och SysWOW64

På en 32-bitars dator lagrar alla 32-bitarsprogram sina filer i C: Program Files och den systemomfattande biblioteksplatsen är C: System32.

På en 64-bitars dator lagrar 64-bitars program sinafiler i C: Program Files och den hela C: WindowsSystem32-mappen innehåller 64-bitars bibliotek. 32-bitarsprogram lagrar sina filer i C: Program Files (x86) och den systemomfattande mappen är C: WindowsSysWOW64.

Detta är definitivt kontraintuitivt. Trots "32" i namnet innehåller mappen System32 64-bitars bibliotek. Och trots 64 i namnet innehåller SysWOW64-mappen 32-bitars bibliotek - åtminstone på 64-bitarsversioner av Windows.

I allmänhet behöver du inte veta detta. Windows-operativsystemet och programmen du använder placerar automatiskt sina filer på rätt plats och använder rätt mapp. Men om du någonsin behöver installera en DLL-fil manuellt på rätt plats eller hitta var en är installerad - vilket är mycket sällsynt - måste du veta vilken som är vilken.

WOW64, förklaras

RELATERAD: Varför är de flesta program fortfarande 32-bitars i en 64-bitarsversion av Windows?

”WOW64” -delen av namnet här refererar tillMicrosofts programvara "Windows 32-bit på Windows 64-bit", som är en del av operativsystemet. Detta gör att Windows kan köra 32-bitarsprogram på en 64-bitarsversion av Windows. WoW64 omdirigerar filåtkomst för att säkerställa att programmen fungerar korrekt.

Till exempel om du installerar ett 32-bitarsprogram på en64-bitarsversionen av Windows och den försöker skriva till mappen C: Program Files, WoW64 pekar på C: Program Files (x86). Och om den vill komma åt mappen C: WindowsSystem32 pekar WoW64 den på C: WindowsSysWOW64. Windows gör detta med en omdirigerare för filsystem.

Allt detta sker automatiskt och öppeti bakgrunden. Programmet behöver inte ens veta att det körs på ett 64-bitars operativsystem, vilket gör att äldre 32-bitarsprogram kan köras utan modifiering på 64-bitarsversioner av Windows. WOW64 omdirigerar också registeråtkomst och ser till att det finns separata områden i registret för 64-bitars- och 32-bitarsprogram.

Så varför är System32 64-bitars och SysWOW64 32-bitars?

Allt som leder oss tillbaka till miljonfrågan: Varför är ”System32” -mappen 64-bitars och SysWOW64 32-bitars?

Svaret verkar vara så många 32-bitarsapplikationer hårdkodades för att använda katalogen C: WindowsSystem32. När utvecklare kompilerade om dessa applikationer för 64-bitarsversioner av Windows fortsatte de att använda C: WindowsSystem32-katalogen.

Snarare än att byta namn på katalogen och tvingautvecklare att flytta till den nya, bryta många applikationer i processen, lämnade Microsoft "System32" som standard systembibliotek katalog. De skapade en ny bibliotekskatalog för applikationer som körs under WoW64-lagret, som de kallade "SysWOW64". När du tänker på det här sättet är namnet vettigare.

Ja, det är lite dumt att en katalog med “32”i namnet är nu 64-bitars. Kanske borde Microsoft ha sett det komma när de namngav det C: WindowsSystem32 på 90-talet. Men även om ett enklare namnplan skulle vara trevligt, är det inte värt att bryta en massa program och skapa mer arbete för utvecklare bara för att komma dit. Det betyder att vi har fastnat med System32 och SysWOW64 under överskådlig framtid.