Hemsida » hur » Vad är skillnaden mellan System32 och SysWOW64 -mappar i Windows?

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

    På 64-bitars versioner av Windows har du två separata programfiler. Men det slutar inte där. Du har också två separata systemkataloger där DLL-bibliotek och exekveringar 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?

    System32-katalogen innehåller Windows-systemfiler, båda .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 program från tredje part ibland sina egna DLL-filer i den här mappen.

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

    Separera 32-bitars och 64-bitars bibliotek

    I en 64-bitarsversion av Windows har du en mapp C: \ Programfiler som innehåller 64-bitarsprogram och deras filer och en mapp C: \ Program Files (x86) som innehåller 32-bitarsprogram och deras filer. Det är användbart att dessa filer separeras eftersom 64-bitarsprogram behöver 64-bitars DLL-filer och 32-bitars program behöver 32-bitars DLL-filer.

    Om ett 32-bitars program går att ladda en DLL-fil som den behöver, hittar en 64-bitarsversion, och försöker ladda den, den kommer att krascha. Genom att separera 64-bitars och 32-bitars programvara i två olika programfiler, säkerställer Windows att de inte kommer att blandas och orsaka problem.

    Emellertid lagras inte alla DLL-filer i Programfiler. Många systemövergripande bibliotek som ingår i Windows lagras i C: \ System32, och vissa program dumpar även egna biblioteksfiler här. Så, precis som Windows har separata 32-bitars och 64-bitars programfiler, har det också separata 32-bitars och 64-bitars versioner av System32-mappen.

    System32 och SysWOW64

    På en 32-bitars dator lagrar alla 32-bitars program sina filer i C: \ Program Files, och den systemövergripande biblioteksplatsen är C: \ System32.

    På en 64-bitars dator lagrar 64-bitars program sina filer i C: \ Program Files, och den hela systemet C: \ Windows \ System32 innehåller 64-bitars bibliotek. 32-bitarsprogram lagrar sina filer i C: \ Program Files (x86), och den övergripande mappen är C: \ Windows \ SysWOW64.

    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 64-bitars versioner av Windows.

    Generellt behöver du inte veta det här. 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 manuellt installera en DLL-fil på rätt plats eller hitta var den är installerad, vilket är väldigt sällsynt, måste du veta vilket är vilket.

    WOW64, Förklarade

    "WOW64" -delen av namnet här refererar till Microsofts Windows 32-bitars Windows 64-bitars programvara, som ingår i operativsystemet. Detta gör det möjligt för Windows att köra 32-bitarsprogram i en 64-bitarsversion av Windows. WoW64 omdirigerar filåtkomst för att säkerställa att programmen fungerar korrekt.

    Om du till exempel installerar ett 32-bitarsprogram i en 64-bitarsversion av Windows och försöker skriva till mappen C: \ Program Files, pekar WoW64 på C: \ Program Files (x86). Och om det vill komma åt mappen C: \ Windows \ System32, pekar WoW64 på C: \ Windows \ SysWOW64. Windows gör det här med hjälp av ett omdirigeringssystem för filsystemet.

    Allt detta sker automatiskt och transparent i bakgrunden. Programmet behöver inte ens veta att det körs på ett 64-bitars operativsystem, vilket gör det möjligt för äldre 32-bitars program att köras utan ändring på 64-bitars versioner av Windows. WOW64 omdirigerar även åtkomst till registret, vilket garanterar att det finns separata områden i registret för 64-bitars och 32-bitars program.

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

    Allt som tar oss tillbaka till miljon dollarfrågan: Varför är "System32" -mappen 64 bitars och SysWOW64 32-bitars?

    Svaret verkar vara att många 32-bitars program var hårdkodade för att använda katalogen C: \ Windows \ System32. När utvecklare omkompilerade dessa program för 64-bitars versioner av Windows fortsatte de att använda katalogen C: \ Windows \ System32.

    I stället för att byta namn på katalogen och tvinga utvecklare att flytta till den nya, bryta många applikationer i processen, lämnade Microsoft "System32" som standard systembibliotekskatalog. De skapade en ny bibliotekskatalog för program som körs under WoW64-laget, som de heter "SysWOW64". När du tänker på det på så vis, är namnet mer meningsfullt.

    Ja, det är lite dumt att en katalog med "32" i namnet nu är 64-bitars. Kanske borde Microsoft ha sett det som kommit när de kallade det C: \ Windows \ System32 på 90-talet. Men, även om ett enklare namngivningssystem 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 fastnar med System32 och SysWOW64 under överskådlig framtid.