Hvad er forskellen mellem System32 og SysWOW64 -mapper i Windows?
På 64-bit versioner af Windows har du to separate programfiler mapper. Men det slutter ikke der. Du har også to separate systemkataloger, hvor DLL-biblioteker og eksekverbare filer er gemt: System32 og SysWOW64. Trods navne er System32 fuld af 64-bit filer, og SysWOW64 er fuld af 32-bit filer. Så hvad giver?
Hvad er System32?
System32-mappen indeholder Windows-systemfiler, begge .DLL-biblioteksfiler, der bruges af programmer og .EXE-programværktøjer, som er en del af Windows. Mens de fleste af de filer, du finder her er en del af Windows-operativsystemet, installeres tredjeparts softwareprogrammer nogle gange deres egne DLL-filer til denne mappe..
Applikationer, der kører på dit system, kan installeres i mappen Program Files eller andre steder, men de indlæser ofte systembredde biblioteker fra mappen System32.
Adskille 32-bit og 64-bit biblioteker
På en 64-bit version af Windows har du en mappe C: \ Program Files, der indeholder 64-bit-programmer og deres filer, og en mappe C: \ Program Files (x86), der indeholder 32-bit-programmer og deres filer. Det er nyttigt, at disse filer skilles, fordi 64-bit-programmer har brug for 64-bit DLL-filer, og 32-bit-programmer kræver 32-bit DLL-filer.
Hvis et 32-bit program går til at indlæse en DLL-fil, som den har brug for, finder en 64-bit version, og forsøger at indlæse den, det vil gå 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.
Men ikke alle DLL-filer gemmes 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 programfiler mapper, har den 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 den systembaserede biblioteksplacering er C: \ System32.
På en 64-bit computer gemmer 64-bitsprogrammer deres filer i C: \ Program Files, og den hele systemet C: \ Windows \ System32 indeholder 64-bit biblioteker. 32-bit programmer gemmer deres filer i C: \ Program Files (x86), og den hele systemet er C: \ Windows \ SysWOW64.
Dette er absolut modstridende. Trods "32" i navnet indeholder System32-mappen 64-bit biblioteker. Og til trods for 64 i navnet indeholder SysWOW64-mappen 32-bit biblioteker-i hvert fald på 64-bit versioner af Windows.
Generelt behøver du ikke at vide dette. Windows-operativsystemet og programmerne, du bruger, placerer automatisk deres filer på det rigtige sted og bruger den korrekte mappe. Men hvis du nogensinde har brug for manuelt at installere en DLL-fil på den rigtige placering eller finde ud af, hvor en er installeret, hvilket er meget sjældent, skal du vide, hvilket er hvilket.
WOW64, Forklaret
"WOW64" -delen af navnet her refererer til Microsofts "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 programmerne fungerer korrekt.
Hvis du f.eks. Installerer et 32-bit program på en 64-bit version af Windows, og det forsøger at skrive til mappen C: \ Program Files, peger WoW64 på C: \ Program Files (x86). Og hvis den ønsker at få adgang til mappen C: \ Windows \ System32, peger WoW64 på C: \ Windows \ SysWOW64. Windows gør dette ved hjælp af et omdirigeringssystem til filsystemet.
Alt dette sker automatisk og gennemsigtigt i baggrunden. Programmet behøver ikke engang at vide, at det kører på et 64-bit operativsystem, hvilket gør det muligt for æ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 der bringer os tilbage til spørgsmålet om million dollar: Hvorfor er "System32" -mappen 64-bit og SysWOW64 32-bit?
Svaret synes at være, at mange 32-bit applikationer var hardcoded for at bruge C: \ Windows \ System32 biblioteket. Når udviklere genkompilerede disse applikationer til 64-bit versioner af Windows, fortsatte de at bruge C: \ Windows \ System32-mappen.
I stedet for at omdøbe biblioteket og tvinge udviklere til at flytte til den nye, der bryder mange applikationer i processen, forlod Microsoft "System32" som standard systembibliotekskatalog. De oprettede et nyt bibliotekskatalog for programmer, der kører under WoW64-laget, som de hedder "SysWOW64". Når du tænker på det på denne måde, gør navnet mere fornuftigt.
Ja, det er lidt dumt, at en mappe med "32" i navnet nu er 64-bit. Måske burde Microsoft have set det, der kom, da de kaldte det C: \ Windows \ System32 i 90'erne. Men selv om en mere ligetil navngivningssystem ville være rart, er det ikke værd at slå en masse programmer og skabe mere arbejde for udviklere, bare for at komme derhen. Det betyder, at vi sidder fast med System32 og SysWOW64 i overskuelig fremtid.