Was ist der Unterschied zwischen den Ordnern System32 und SysWOW64 in Windows?
Bei 64-Bit-Versionen von Windows verfügen Sie über zwei separate Programmordner. Aber es endet nicht dort. Sie haben auch zwei separate Systemverzeichnisse, in denen DLL-Bibliotheken und ausführbare Dateien gespeichert sind: System32 und SysWOW64. Trotz der Namen ist System32 voller 64-Bit-Dateien und SysWOW64 ist voller 32-Bit-Dateien. Was gibt es also??
Was ist System32??
Das System32-Verzeichnis enthält Windows-Systemdateien, sowohl DLL-Bibliotheksdateien, die von Programmen verwendet werden, als auch .EXE-Programmdienstprogramme, die Teil von Windows sind. Während die meisten Dateien, die Sie hier finden, Teil des Windows-Betriebssystems sind, installieren Softwareprogramme von Drittanbietern manchmal auch ihre eigenen DLL-Dateien in diesem Ordner.
Anwendungen, die auf Ihrem System ausgeführt werden, sind möglicherweise in Ihrem Programmordner oder an einem anderen Ort installiert. Sie laden jedoch häufig systemweite Bibliotheken aus dem Ordner System32.
Trennung von 32-Bit- und 64-Bit-Bibliotheken
In einer 64-Bit-Version von Windows verfügen Sie über einen Ordner C: \ Programme, der 64-Bit-Programme und deren Dateien enthält, und einen Ordner C: \ Program Files (x86), der 32-Bit-Programme und deren Dateien enthält. Es ist hilfreich, diese Dateien zu trennen, da 64-Bit-Programme 64-Bit-DLL-Dateien und 32-Bit-Programme 32-Bit-DLL-Dateien benötigen.
Wenn ein 32-Bit-Programm eine benötigte DLL-Datei lädt, eine 64-Bit-Version sucht und versucht, sie zu laden, stürzt sie ab. Durch die Trennung von 64-Bit- und 32-Bit-Software in zwei verschiedene Programmdateien stellt Windows sicher, dass diese nicht durcheinander geraten und Probleme verursachen.
Nicht alle DLL-Dateien werden jedoch in Programmdateien gespeichert. Viele systemweite Bibliotheken, die in Windows enthalten sind, sind in C: \ System32 gespeichert, und einige Programme legen hier auch ihre eigenen Bibliotheksdateien ab. So wie Windows über separate 32-Bit- und 64-Bit-Programmordner verfügt, verfügt es auch über separate 32-Bit- und 64-Bit-Versionen des System32-Ordners.
System32 und SysWOW64
Auf einem 32-Bit-Computer speichern alle 32-Bit-Programme ihre Dateien in C: \ Programme, und der systemweite Bibliotheksspeicherort lautet C: \ System32.
Auf einem 64-Bit-Computer speichern 64-Bit-Programme ihre Dateien in C: \ Programme, und der systemweite Ordner C: \ Windows \ System32 enthält 64-Bit-Bibliotheken. 32-Bit-Programme speichern ihre Dateien in C: \ Programme (x86), und der systemweite Ordner lautet C: \ Windows \ SysWOW64.
Dies ist definitiv nicht intuitiv. Trotz der "32" im Namen enthält der Ordner "System32" 64-Bit-Bibliotheken. Und trotz der 64 im Namen enthält der SysWOW64-Ordner 32-Bit-Bibliotheken - zumindest in 64-Bit-Versionen von Windows.
Im Allgemeinen müssen Sie das nicht wissen. Das Windows-Betriebssystem und die von Ihnen verwendeten Programme legen ihre Dateien automatisch am richtigen Ort ab und verwenden den richtigen Ordner. Wenn Sie jedoch eine DLL-Datei manuell am richtigen Speicherort installieren müssen oder suchen müssen, wo eine installiert ist (was sehr selten ist), müssen Sie wissen, welche Datei welche ist.
WOW64, erklärt
Der „WOW64“ -Teil des Namens bezieht sich hier auf Microsofts „Windows 32-Bit unter Windows 64-Bit“ -Software, die Teil des Betriebssystems ist. Dadurch kann Windows 32-Bit-Programme unter einer 64-Bit-Version von Windows ausführen. WoW64 leitet den Dateizugriff um, um sicherzustellen, dass die Programme ordnungsgemäß funktionieren.
Wenn Sie beispielsweise ein 32-Bit-Programm in einer 64-Bit-Version von Windows installieren und versuchen, in den Ordner C: \ Programme zu schreiben, verweist WoW64 auf C: \ Program Files (x86). Wenn er auf den Ordner C: \ Windows \ System32 zugreifen möchte, verweist WoW64 auf C: \ Windows \ SysWOW64. Windows macht dies mit einem Dateisystem-Redirector.
Dies geschieht automatisch und transparent im Hintergrund. Das Programm muss nicht einmal wissen, dass es auf einem 64-Bit-Betriebssystem ausgeführt wird, wodurch ältere 32-Bit-Programme ohne Modifikation unter 64-Bit-Versionen von Windows ausgeführt werden können. WOW64 leitet außerdem den Registrierungszugriff um, wobei sichergestellt wird, dass separate Bereiche der Registrierung für 64-Bit- und 32-Bit-Programme vorhanden sind.
Warum ist System32 64-Bit und SysWOW64 32-Bit??
All dies bringt uns zurück zur Millionenfrage: Warum ist der Ordner "System32" 64-Bit und SysWOW64 32-Bit??
Die Antwort scheint zu sein, dass viele 32-Bit-Anwendungen für die Verwendung des Verzeichnisses C: \ Windows \ System32 hartcodiert wurden. Beim Neukompilieren dieser Anwendungen für 64-Bit-Versionen von Windows verwendeten sie weiterhin das Verzeichnis C: \ Windows \ System32.
Anstatt das Verzeichnis umzubenennen und Entwickler zu zwingen, zum neuen Verzeichnis zu wechseln, wodurch viele Anwendungen zerstört wurden, beließ Microsoft „System32“ als Standardverzeichnis der Systembibliothek. Sie erstellten ein neues Bibliotheksverzeichnis für Anwendungen, die unter der WoW64-Schicht ausgeführt wurden und die als "SysWOW64" bezeichnet wurde. Wenn Sie so darüber nachdenken, ist der Name sinnvoller.
Ja, es ist ein bisschen dumm, dass ein Verzeichnis mit "32" im Namen jetzt 64-Bit ist. Vielleicht hätte Microsoft das sehen sollen, wenn es in den 90er Jahren C: \ Windows \ System32 genannt wurde. Auch wenn ein einfacheres Benennungsschema schön wäre, lohnt es sich nicht, eine Reihe von Programmen zu brechen und mehr Arbeit für Entwickler zu schaffen, nur um dorthin zu gelangen. Das bedeutet, dass wir uns auf absehbare Zeit mit System32 und SysWOW64 beschäftigen.