WOW64: Unterschied zwischen den Versionen

aus WB Wiki; freien Wissensdatenbank rund ums Thema Computer
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: == Einleitung == WOW steht für „Windows on Windows“ und ist ganz grob dafür gedacht, ältere Anwendungen auf aktuellen Windows Systemen ohne Modifikationen auszuf...)
 
K
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== Einleitung ==
 
== Einleitung ==
WOW steht für „Windows on Windows“ und ist ganz grob dafür gedacht, ältere Anwendungen auf aktuellen Windows Systemen ohne Modifikationen auszuführen. Die erste Version war so z.B. dafür gedacht, alte 16-Bit Anwendungen unter Windows NT (einem 32-Bit Betriebssystem) auszuführen.
+
WOW steht für „'''Windows on Windows'''“ und ist ganz grob dafür gedacht, ältere Anwendungen auf aktuellen [[Windows]]-Systemen ohne Modifikationen auszuführen. Die erste Version war so z.B. dafür gedacht, alte 16-Bit-Anwendungen unter [[Windows NT]] (einem 32-Bit-[[Betriebssystem]]) auszuführen.
  
Mit Einführung von [[64-Bit]] Betriebssystemen wie Windows XP x64 oder [[Microsoft Windows Vista|VISTA 64]] war ein völlig neues Subsystem notwendig. Mit Hilfe dem sogenannte „Microsoft Windows-32-on-Windows-64" (WOW64) ist es also möglich, 32-Bit-Programme ohne Modifikationen auf einem 64-Bit System auszuführen. 16-Bit Anwendungen bleiben damit allerding außen vor und können nicht mehr verwendet werden.
+
Mit Einführung von [[64-Bit]]-Betriebssystemen, wie Windows XP x64 oder [[Microsoft Windows Vista|VISTA 64]] war ein völlig neues [[Subsystem]] notwendig. Mit Hilfe dem sogenannten „Microsoft Windows-32-on-Windows-64" (WOW64) ist es also möglich, 32-Bit-Programme ohne Modifikationen auf einem 64-Bit-System auszuführen. 16-Bit-Anwendungen bleiben damit allerdings außen vor und können nicht mehr verwendet werden.
  
 
== Was aber steckt genau hinter WOW oder genauer hinter WOW64 ? ==
 
== Was aber steckt genau hinter WOW oder genauer hinter WOW64 ? ==
Das Betriebssystem muss Anfragen einer 32-Bit Anwendung und einer 64-Bit Anwendung an das Dateisystem und die Registry klar trennen. Grund ist die Tatsache, dass z.B. bestimmte DLL`s oder Registry-Einstellungen unter dem gleichen Namen für beide Welten bereitgestellt werden müssen und untereinander nicht kompatibel sind. Es muss daher konsequent verhindert werden, dass ein 64-Bit Prozess auf 32-Bit Systemdateien und Einstellung zugreift. Anders herum darf ein 32-Bit Prozess natürlich auch nicht auf 64-Bit Bereich zugreifen.
+
Das [[Betriebssystem]] muss Anfragen einer 32-Bit-[[Anwendung]] und einer 64-Bit-Anwendung an das Dateisystem und die [[Registry]] klar trennen. Grund ist die Tatsache, dass z.B. bestimmte DLL`s oder Registry-Einstellungen unter dem gleichen Namen für beide Welten bereitgestellt werden müssen und untereinander nicht kompatibel sind. Es muss daher konsequent verhindert werden, dass ein 64-Bit-Prozess auf 32-Bit-Systemdateien und Einstellungen zugreift. Anders herum darf ein 32-Bit-Prozess natürlich auch nicht auf 64-Bit-Bereiche zugreifen.
Es geht konkret im Filesystem um den Bereich unter '''SYSTEM32''' und in der Registry vornehmlich um einige Bereich unter '''HKEY_LOCAL_MASCHINE\SOFTWARE'''.
+
Es geht konkret im Filesystem um den Bereich unter '''SYSTEM32''' und in der Registry vornehmlich um einige Bereiche unter '''HKEY_LOCAL_MASCHINE\SOFTWARE'''.
  
So werden Anfragen an das System32-Verzeichnis von einem 32-Bit Prozess von WOW64 an das Verzeichnis '''%systemroot%\SysWOW64''' weitergeleitet. Anfragen eines 64-Bit Prozesses ganz normal an '''%systemroot%\System32'''. Auch wenn es der Name anders vermuten lässt, befinden sich also unter SYSTEM32 nur 64-Bit Programme.
+
So werden Anfragen an das System32-Verzeichnis von einem 32-Bit-Prozess von WOW64 an das Verzeichnis '''%systemroot%\SysWOW64''' weitergeleitet. Anfragen eines 64-Bit-Prozesses ganz normal an '''%systemroot%\System32'''. Auch wenn es der Name anders vermuten lässt, befinden sich also unter SYSTEM32 nur 64-Bit-Programme.
Anfragen eines 32-Bit Prozesses an '''HKEY_LOCAL_MASCHINE\SOFTWARE''' werden umgeleitet nach '''HKEY_LOCAL_MASCHINE\SOFTWARE\Wow6432Node'''.
+
Anfragen eines 32-Bit-Prozesses an '''HKEY_LOCAL_MASCHINE\SOFTWARE''' werden umgeleitet nach '''HKEY_LOCAL_MASCHINE\SOFTWARE\Wow6432Node'''.
Greift eine 32-Bit Anwendung nun also auf '''%systemroot%\System32\crypt32.dll''' zu, wird diese Anfrage vom Betriebssystem nach '''%systemroot%\ SysWOW64\crypt32.dll''' umgeleitet.
+
Greift eine 32-Bit-Anwendung nun also auf '''%systemroot%\System32\crypt32.dll''' zu, wird diese Anfrage vom Betriebssystem nach '''%systemroot%\ SysWOW64\crypt32.dll''' umgeleitet.
  
Da in den Unterverzeichnissen SPOOL, CATROOT, CATROOT1 und DRIVERS\ETC Informationen wie Zertifikate oder Einstellungen gespeichert sind, die von beiden Systemen benötigt werden, gilt für diese Verzeichnisse die Umleitung nicht.
+
Da in den Unterverzeichnissen SPOOL, CATROOT, CATROOT1 und DRIVERS\ETC Informationen, wie [[Zertifikat]]e oder Einstellungen gespeichert sind, die von beiden [[System]]en benötigt werden, gilt für diese Verzeichnisse die Umleitung nicht.
  
Ähnlich wie bei SYSTEM32 sieht es auch bei dem Verzeichnis  '''%ProgramFiles%''' aus. Alle Anfragen von 32-Bit Anwendungen an '''%ProgramFiles%''' werden von WOW64 nach '''%ProgramFiles(x86)%''' umgeleitet.  
+
Ähnlich wie bei SYSTEM32 sieht es auch bei dem Verzeichnis  '''%ProgramFiles%''' aus. Alle Anfragen von 32-Bit-Anwendungen an '''%ProgramFiles%''' werden von WOW64 nach '''%ProgramFiles(x86)%''' umgeleitet.  
 
Wer dies einmal testen möchte, kann unter C:\Windows\SysWOW64 die CMD.EXE starten und dort den Befehl „'''CD %ProgramFiles%'''“ eingeben. Anschließend unter C:\Windows\System32 ebenfalls die CMD.EXE starten und den gleichen Befehl eingeben. Nun das Ergebnis vergleichen.
 
Wer dies einmal testen möchte, kann unter C:\Windows\SysWOW64 die CMD.EXE starten und dort den Befehl „'''CD %ProgramFiles%'''“ eingeben. Anschließend unter C:\Windows\System32 ebenfalls die CMD.EXE starten und den gleichen Befehl eingeben. Nun das Ergebnis vergleichen.
In der 32-Bit Eingabeaufforderung landen wir unter '''C:\Programm Files (x86)''' und in der 64-Bit Eingabeaufforderung unter '''C:\Programm Files'''.
+
In der 32-Bit-[[Eingabeaufforderung]] landen wir unter '''C:\Programm Files (x86)''' und in der 64-Bit-Eingabeaufforderung unter '''C:\Programm Files'''.
  
Wer diese Technik verinnerlicht hat, versteht auch sehr schnell, warum sehr systemnahe Anwendungen trotz der WOW64-Technik unter VISTA nicht funktionieren. Betroffen sind hiervon unter anderem Defragmentierungs- und Antivirusprogramme. Sie greifen nämlich direkt auf den System-Kernel zu können deshalb von WOW nicht profitieren.
+
Wer diese Technik verinnerlicht hat, versteht auch sehr schnell, warum sehr systemnahe Anwendungen trotz der WOW64-Technik unter [[VISTA]] nicht funktionieren. Betroffen sind hiervon unter anderem Defragmentierungs- und Antivirusprogramme. Sie greifen nämlich direkt auf den System-Kernel zu können deshalb von WOW nicht profitieren.
Auch ist zu verstehen, warum 32-Bit Shell-Extensions unter VISTA nicht mehr funktionieren können. Der 64-Bit Explorer darf keine 32-Bit DLL`s laden. Ein konkretes Beispiel wären z.B. Kontextmenüeinträge von WinRAR im Datei-Explorer. Eine alte, nicht 64-Bit kompatible WinRAR Version kann diese Kontextmenüeinträge unter VISTA nicht anlegen.
+
Auch ist zu verstehen, warum 32-Bit-Shell-Extensions unter VISTA nicht mehr funktionieren können. Der 64-Bit-[[Explorer]] darf keine 32-Bit DLL`s laden. Ein konkretes Beispiel wären z.B. Kontextmenüeinträge von [[WinRAR]] im Datei-Explorer. Eine alte, nicht 64-Bit kompatible WinRAR- Version kann diese Kontextmenüeinträge unter VISTA nicht anlegen.
 +
 
 +
[[Kategorie:Software]]
 +
[[Kategorie:Betriebssystem]]
 +
[[Kategorie:Windows]]

Aktuelle Version vom 12. Januar 2008, 17:18 Uhr

Einleitung

WOW steht für „Windows on Windows“ und ist ganz grob dafür gedacht, ältere Anwendungen auf aktuellen Windows-Systemen ohne Modifikationen auszuführen. Die erste Version war so z.B. dafür gedacht, alte 16-Bit-Anwendungen unter Windows NT (einem 32-Bit-Betriebssystem) auszuführen.

Mit Einführung von 64-Bit-Betriebssystemen, wie Windows XP x64 oder VISTA 64 war ein völlig neues Subsystem notwendig. Mit Hilfe dem sogenannten „Microsoft Windows-32-on-Windows-64" (WOW64) ist es also möglich, 32-Bit-Programme ohne Modifikationen auf einem 64-Bit-System auszuführen. 16-Bit-Anwendungen bleiben damit allerdings außen vor und können nicht mehr verwendet werden.

Was aber steckt genau hinter WOW oder genauer hinter WOW64 ?

Das Betriebssystem muss Anfragen einer 32-Bit-Anwendung und einer 64-Bit-Anwendung an das Dateisystem und die Registry klar trennen. Grund ist die Tatsache, dass z.B. bestimmte DLL`s oder Registry-Einstellungen unter dem gleichen Namen für beide Welten bereitgestellt werden müssen und untereinander nicht kompatibel sind. Es muss daher konsequent verhindert werden, dass ein 64-Bit-Prozess auf 32-Bit-Systemdateien und Einstellungen zugreift. Anders herum darf ein 32-Bit-Prozess natürlich auch nicht auf 64-Bit-Bereiche zugreifen. Es geht konkret im Filesystem um den Bereich unter SYSTEM32 und in der Registry vornehmlich um einige Bereiche unter HKEY_LOCAL_MASCHINE\SOFTWARE.

So werden Anfragen an das System32-Verzeichnis von einem 32-Bit-Prozess von WOW64 an das Verzeichnis %systemroot%\SysWOW64 weitergeleitet. Anfragen eines 64-Bit-Prozesses ganz normal an %systemroot%\System32. Auch wenn es der Name anders vermuten lässt, befinden sich also unter SYSTEM32 nur 64-Bit-Programme. Anfragen eines 32-Bit-Prozesses an HKEY_LOCAL_MASCHINE\SOFTWARE werden umgeleitet nach HKEY_LOCAL_MASCHINE\SOFTWARE\Wow6432Node. Greift eine 32-Bit-Anwendung nun also auf %systemroot%\System32\crypt32.dll zu, wird diese Anfrage vom Betriebssystem nach %systemroot%\ SysWOW64\crypt32.dll umgeleitet.

Da in den Unterverzeichnissen SPOOL, CATROOT, CATROOT1 und DRIVERS\ETC Informationen, wie Zertifikate oder Einstellungen gespeichert sind, die von beiden Systemen benötigt werden, gilt für diese Verzeichnisse die Umleitung nicht.

Ähnlich wie bei SYSTEM32 sieht es auch bei dem Verzeichnis %ProgramFiles% aus. Alle Anfragen von 32-Bit-Anwendungen an %ProgramFiles% werden von WOW64 nach %ProgramFiles(x86)% umgeleitet. Wer dies einmal testen möchte, kann unter C:\Windows\SysWOW64 die CMD.EXE starten und dort den Befehl „CD %ProgramFiles%“ eingeben. Anschließend unter C:\Windows\System32 ebenfalls die CMD.EXE starten und den gleichen Befehl eingeben. Nun das Ergebnis vergleichen. In der 32-Bit-Eingabeaufforderung landen wir unter C:\Programm Files (x86) und in der 64-Bit-Eingabeaufforderung unter C:\Programm Files.

Wer diese Technik verinnerlicht hat, versteht auch sehr schnell, warum sehr systemnahe Anwendungen trotz der WOW64-Technik unter VISTA nicht funktionieren. Betroffen sind hiervon unter anderem Defragmentierungs- und Antivirusprogramme. Sie greifen nämlich direkt auf den System-Kernel zu können deshalb von WOW nicht profitieren. Auch ist zu verstehen, warum 32-Bit-Shell-Extensions unter VISTA nicht mehr funktionieren können. Der 64-Bit-Explorer darf keine 32-Bit DLL`s laden. Ein konkretes Beispiel wären z.B. Kontextmenüeinträge von WinRAR im Datei-Explorer. Eine alte, nicht 64-Bit kompatible WinRAR- Version kann diese Kontextmenüeinträge unter VISTA nicht anlegen.