WOW64

from Wikipedia, the free encyclopedia

WOW64 ( W indows- O n W indow 64 -bit ) is a subsystem of Windows - operating system that is capable of 32-bit run applications. WOW64 is included in all 64-bit versions of Windows since Windows 2000 and Microsoft Windows XP . WOW64 takes into account all differences between 32-bit Windows and 64-bit Windows, in particular structural changes to Windows itself.

Translation libraries

The WOW64 subsystem is a lightweight translation layer that offers similar interfaces on all 64-bit versions of Windows. Its main purpose is to create a 32-bit environment that provides all interfaces that 32-bit Windows applications need to run on a 64-bit system without adjustments. From a technical point of view, WOW64 is implemented in four program libraries (DLLs):

  • Wow64.dllcontains the main interfaces to the Windows NT kernel which translate between 32-bit and 64-bit calls, including pointer and call stack manipulations
  • Wow64win.dllprovides the corresponding entry points for 32-bit applications
  • Wow64cpu.dll takes into account the switchover of the processor between 32-bit and 64-bit mode
  • Ntdll.dll is the DLL for NT layers

Architectures

Despite the external similarity on all 64-bit versions of Windows, the implementation of WOW64 differs due to the architecture of the target processor . The 64-bit version of Windows, for example, which for Intel - Itanium 2 processors has been developed (for Microsoft IA-64 architecture called) uses Wow64win.dllfor emulation of x86 statements by the instruction set of the Itanium 2. This emulation is computationally more complicated than the functions of the Wow64win.dllon AMD64 architectures which switch only the processor from the 64-bit mode to 32-bit mode, while a 32-bit thread is executed. No emulation is required for WOW64 on AMD64 systems.

Registration database and file system

During program execution, Wow64.dll loads the 32-bit version of Ntdll.dll and all necessary 32-bit DLLs, which are largely unchanged 32-bit versions.

The WOW64 subsystem also takes into account other important issues for running 32-bit applications. This concerns, among other things, the management of access to the Windows registry database (see HKEY_LOCAL_MACHINE \ Software \ WOW6432Node ) and to the file system , which differ slightly in the 64-bit versions of Windows.

Normally - as was the case with the step from 16 to 32 bit - one would expect from a 64-bit Windows that the new 64-bit system components are in the % SystemRoot% \ system64 directory and have names such as kernel64.dll , user64.dll etc. wear. That would be relatively unproblematic, since the corresponding 64-bit software has to be recompiled anyway.

However, for backwards compatibility, the operating system uses the % SystemRoot% \ system32 directory and unchanged DLL names for its 64-bit components. When running 32-bit applications, access to libraries from this directory is redirected to % SystemRoot% \ SysWOW64 , where the corresponding 32-bit versions are located. The directories are excluded from this automatic redirection

   %SystemRoot%\system32\catroot
   %SystemRoot%\system32\catroot2
   %SystemRoot%\system32\driverstore 
   %SystemRoot%\system32\drivers\etc
   %SystemRoot%\system32\logfiles
   %SystemRoot%\system32\spool 
   %SystemRoot%\system32\driverstore (nur bei Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP)

In the same way, accesses to the Windows registry database are redirected from HKEY_LOCAL_MACHINE \ Software to HKEY_LOCAL_MACHINE \ Software \ WOW6432Node . By referencing a purely virtual directory % SystemRoot% \ Sysnative created solely for this purpose, it is possible for 64-bit-capable applications to access the native libraries under WOW64.

Implementations outside of Windows

In addition to the Microsoft WOW64 subsystem contained in current Windows versions, there are also variants for other operating systems . These simulations are used to use Windows 32-bit application programs without a Windows operating system on a Win64 API. So developed z. For example, the Wine project is a free WOW64 replica that is available for Linux and other Unix systems. For legal reasons, not all functions of the original subsystem are available, which can limit compatibility with application programs. However, since very few application programs require all the functions of the Win32 API, many can still be fully used.

See also

Web links

Individual evidence

  1. https://msdn.microsoft.com/en-us/library/aa384187(VS.85)
  2. Shared WoW64. Building Wine. Wine-Project, accessed on May 6, 2017 .