/ / Hvad er forskellen mellem mapperne “System32” og “SysWOW64” i Windows?

Hvad er forskellen mellem mapperne “System32” og “SysWOW64” i Windows?

På 64-bit versioner af Windows har du toseparate mapper til programfiler. Men det slutter ikke der. Du har også to separate systemkataloger, hvor DLL-biblioteker og eksekverbare filer er gemt: System32 og SysWOW64. På trods af navnene er System32 fuld af 64-bit filer og SysWOW64 er fuld af 32-bit filer. Så hvad giver?

Hvad er System32?

RELATEREDE: Hvad er DLL-filer, og hvorfor mangler en fra min pc?

System32-biblioteket indeholder Windows-systemfiler, begge .DLL-biblioteksfiler, der bruges af programmer og .EXE-programværktøjer, der er en del af Windows. Mens de fleste af de filer, du finder her, er en del af Windows-operativsystemet, installerer tredjepartsprogrammer undertiden også deres egne DLL-filer i denne mappe.

Programmer, der kører på dit system, kan muligvis installeres i mappen Programfiler eller andetsteds, men de indlæser ofte systemdækkende biblioteker fra mappen System32.

Adskillelse af 32-bit og 64-bit biblioteker

RELATEREDE: Hvad er forskellen mellem mapperne “Programfiler (x86)” og “Programfiler” i Windows?

På en 64-bit version af Windows har du en C:Programmapper-mappe, der indeholder 64-bit-programmer og deres filer, og en C: Program-filer (x86) -mappe, der indeholder 32-bit-programmer og deres filer. Det er nyttigt, at disse filer adskilles, fordi 64-bit-programmer har brug for 64-bit DLL-filer, og 32-bit-programmer har brug for 32-bit DLL-filer.

Hvis et 32-bit-program går til at indlæse en DLL-fil, er dethar brug for, finder en 64-bit version og prøver at indlæse den, den går ned. Ved at adskille 64-bit og 32-bit software i to forskellige programfiler-mapper, sikrer Windows, at de ikke bliver blandet og forårsaget problemer.

Dog er ikke alle DLL-filer gemt i ProgramFiler. Mange systembrede biblioteker inkluderet i Windows gemmes i C: System32, og nogle programmer dumper også deres egne biblioteksfiler her. Så ligesom Windows har separate 32-bit og 64-bit Program Files-mapper, har det også separate 32-bit og 64-bit versioner af System32-mappen.

System32 og SysWOW64

På en 32-bit computer gemmer alle 32-bit-programmer deres filer i C: Program Files, og det hele systemet bibliotek placering er C: System32.

På en 64-bit computer gemmer 64-bit programmer deresfiler i C: Programfiler og den hele C: WindowsSystem32-mappen indeholder 64-bit biblioteker. 32-bit-programmer gemmer deres filer i C: Program-filer (x86), og den hele systemmappen er C: WindowsSysWOW64.

Dette er bestemt counterintuitive. På trods af “32” i navnet indeholder System32-mappen 64-bit biblioteker. Og på trods af 64 i navnet indeholder SysWOW64-mappen 32-bit biblioteker - i det mindste på 64-bit-versioner af Windows.

Generelt behøver du ikke vide dette. Windows-operativsystemet og programmer, du bruger, placerer automatisk deres filer på det rigtige sted og bruger den rigtige mappe. Hvis du dog nogensinde har brug for manuelt at installere en DLL-fil på det rigtige sted eller finde, hvor en er installeret - hvilket er meget sjældent - skal du vide, hvilken der er hvilken.

WOW64, forklaret

RELATEREDE: Hvorfor er de fleste programmer stadig 32-bit på en 64-bit version af Windows?

"WOW64" -delen af ​​navnet her henviser tilMicrosofts “Windows 32-bit på Windows 64-bit” -software, som er en del af operativsystemet. Dette gør det muligt for Windows at køre 32-bit programmer på en 64-bit version af Windows. WoW64 omdirigerer filadgang for at sikre, at programmer fungerer korrekt.

Hvis du for eksempel installerer et 32-bit-program på en64-bit version af Windows, og den prøver at skrive til mappen C: Program Files, WoW64 peger den på C: Program Files (x86). Og hvis den vil have adgang til mappen C: WindowsSystem32, peger WoW64 den på C: WindowsSysWOW64. Windows gør dette ved hjælp af en omdirigering af filsystemet.

Alt dette sker automatisk og gennemsigtigti baggrunden. Programmet behøver ikke engang at vide, at det kører på et 64-bit operativsystem, som tillader ældre 32-bit-programmer at køre uden ændring på 64-bit versioner af Windows. WOW64 omdirigerer også adgang til registreringsdatabasen og sikrer, at der er separate områder i registreringsdatabasen til 64-bit og 32-bit-programmer.

Så hvorfor er System32 64-bit og SysWOW64 32-bit?

Alt det, der bringer os tilbage til spørgsmålet om millioner dollars: Hvorfor er "System32" -mappen 64-bit og SysWOW64 32-bit?

Svaret ser ud til at være så mange 32-bitapplikationer blev hardkodet for at bruge C: WindowsSystem32-biblioteket. Da udviklere genkompilerede disse applikationer til 64-bit versioner af Windows, fortsatte de at bruge C: WindowsSystem32-biblioteket.

I stedet for at omdøbe kataloget og tvingeudviklere til at flytte til den nye, idet mange programmer blev brudt i processen, forlod Microsoft “System32” som standard systembibliotekskatalog. De oprettede et nyt bibliotekskatalog til applikationer, der kører under WoW64-laget, som de kaldte “SysWOW64”. Når du tænker på det på denne måde, giver navnet mere mening.

Ja, det er lidt fjollet, at et bibliotek med “32”i navnet er nu 64-bit. Måske burde Microsoft have set det komme, da de navngav det C: WindowsSystem32 i 90'erne. Men selvom et mere ligetil navneplan ville være rart, er det ikke værd at bryde en masse programmer og skabe mere arbejde for udviklere bare for at komme dertil. Det betyder, at vi sidder fast med System32 og SysWOW64 i en overskuelig fremtid.