WOW64

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

WOW64 (Windows-On-Windows 64-bit) ist ein Subsystem des Windows-Betriebssystems, das in der Lage ist, 32-Bit-Anwendungen auszuführen. WOW64 ist in allen 64-Bit-Versionen von Windows enthalten: Windows 2000 Advanced Server Limited Edition, Windows XP Professional x64 Edition, IA-64- und AMD64-Versionen von Windows Server 2003 sowie 64-Bit-Versionen von Windows Vista, Windows Server 2008, Windows 7, Windows 8 und Windows Server 2008 R2. WOW64 berücksichtigt sämtliche Unterschiede zwischen 32-Bit-Windows und 64-Bit-Windows, insbesondere strukturelle Änderungen an Windows selbst.

Übersetzungs-Bibliotheken[Bearbeiten]

Das WOW64-Subsystem ist eine leichtgewichtige Übersetzungsschicht, die auf allen 64-Bit-Versionen von Windows ähnliche Schnittstellen anbietet. Sein hauptsächlicher Zweck ist die Schaffung einer 32-Bit-Umgebung, welche sämtliche Schnittstellen zur Verfügung stellt, die 32-Bit-Windows-Anwendungen benötigen, um ohne Anpassungen auf einem 64-Bit-System zu laufen. Aus technischer Sicht ist WOW64 in drei Programmbibliotheken (DLLs) implementiert:

  • Wow64.dll beinhaltet die Hauptschnittstellen zum Kernel von Windows NT welche zwischen 32-Bit- und 64-Bit-Aufrufen übersetzen, inklusive Zeiger- und Call-Stack-Manipulationen
  • Wow64win.dll stellt die entsprechenden Einsprungspunkte für 32-Bit-Anwendungen zur Verfügung
  • Wow64cpu.dll berücksichtigt die Umschaltung des Prozessors zwischen 32-Bit- und 64-Bit-Modus

Architekturen[Bearbeiten]

Trotz der äußerlichen Ähnlichkeit auf allen 64-Bit-Versionen von Windows unterscheidet sich die Implementierung von WOW64 aufgrund der Architektur des Ziel-Prozessors. Die 64-Bit-Version von Windows beispielsweise, welche für Intel-Itanium-2-Prozessoren entwickelt wurde (bei Microsoft IA-64-Architektur genannt), benutzt die Wow64win.dll für die Emulation von x86-Anweisungen mittels des Befehlssatzes des Itanium 2. Diese Emulation ist rechenaufwendiger als die Funktionen der Wow64win.dll auf AMD64-Architekturen, welche lediglich den Prozessor aus dem 64-Bit-Modus in den 32-Bit-Modus schalten, während ein 32-Bit-Thread ausgeführt wird. Auf AMD64-Systemen ist für WOW64 keine Emulation notwendig.

Registrierungsdatenbank und Dateisystem[Bearbeiten]

Das WOW64-Subsystem berücksichtigt auch andere wichtige Aspekte für die Ausführung von 32-Bit-Anwendungen. Das betrifft unter anderem die Verwaltung von Zugriffen auf die Windows-Registrierungsdatenbank (siehe HKEY_LOCAL_MACHINE\Software\WOW6432Node)) sowie auf das Dateisystem, welche in den 64-Bit-Versionen von Windows geringfügige Unterschiede aufweisen.

Normalerweise würde man – wie damals beim Schritt von 16 nach 32 Bit – von einem 64-Bit-Windows erwarten, dass sich die neuen 64-Bit-Systemkomponenten im Verzeichnis %SystemRoot%\system64 befinden und Namen wie kernel64.dll, user64.dll usw. tragen. Das wäre relativ unproblematisch, da die entsprechende 64-Bit-Software ohnehin neu compiliert werden muss.

Zwecks Rückwärts-Kompatibilität nutzt das Betriebssystem jedoch das %SystemRoot%\system32-Verzeichnis und unveränderte DLL-Namen für seine 64-Bit-Komponenten. Bei der Ausführung von 32-Bit-Anwendungen werden Zugriffe auf Bibliotheken aus diesem Verzeichnis nach %SystemRoot%\SysWOW64 umgeleitet, wo sich die entsprechenden 32-Bit-Versionen befinden.

Implementierungen außerhalb von Windows[Bearbeiten]

Neben dem in aktuellen Windows-Versionen enthaltenen WOW64-Subsystem von Microsoft, gibt es auch Varianten für andere Betriebssysteme. Diese Nachbildungen dienen dazu, Windows-32Bit-Anwendungsprogramme ohne Windows-Betriebssystem auf einer Win64-API zu nutzen. So entwickelt z.B. das Wine[1]-Projekt eine freie WOW64-Nachbildung die für Linux- und anderen Unix-Systeme verfügbar ist. Aus rechtlichen Gründen sind nicht alle Funktion des original Subsystems vorhanden, was die Kompatibilität mit Anwendungsprogrammen einschränken kann. Da aber die wenigsten Anwendungsprogramme alle Funktionen der Win32-API benötigen, sind viele trotzdem voll nutzbar.

Einzelnachweise[Bearbeiten]

  1. Andre Hentschel: Win64 Support for Wine. Wine-Project, 5. April 2013, abgerufen am 29. August 2013 (englisch).

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]