Jump to content

Windows on Windows: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
See also: WOW64 already mentioned above, +WINE
ce
Line 1: Line 1:
{{About|the Win16 subsystem in 32-bit Windows NT|the 32-bit compatibility layer in 64-bit Windows|WOW64}}
{{About|the Win16 subsystem in 32-bit Windows NT|the 32-bit compatibility layer in 64-bit Windows|WOW64}}
{{Refimprove|date=July 2009}}
{{Refimprove|date=July 2009}}
In [[computing]], '''Windows on Windows''' - commonly referred to as '''16-bit WOW''',<ref>{{cite web|url=http://support.microsoft.com/kb/153544|title=Starting 16-Bit WOW Subsystem on Windows NT Server|date=|accessdate=11 Feb 2013|publisher=Microsoft}}</ref> '''WOWEXEC'''<ref>{{cite web|url=http://support.microsoft.com/kb/181333|title=Disabling the MSDOS and WOWEXEC Subsystems on Terminal Server|publisher=Microsoft|accessdate=13 Feb 2013|date=}}</ref> or simply by its [[acronym]] '''WOW'''<ref>{{cite web|url=http://support.microsoft.com/kb/181333|title=WOW Environment Remains in Memory After Quitting 16-Bit Program|publisher=Microsoft|accessdate=13 Feb 2013|date=}}</ref> - is a software component of [[32-bit]] versions of the Microsoft [[Windows NT]] family of [[operating system]]s that extends the [[Virtual DOS machine|NTVDM]] to provide limited support for running [[legacy code|legacy]] [[Windows API|Win16]] applications - applications written for [[Windows 3.x]]. The technology is largely redundant now that the industry is moving towards [[64-bit]] based computing; more recently "WOW" may therefore refer to support for running 32-bit applications on 64-bit versions of Windows - known as [[WOW64]].
In [[computing]], '''Windows on Windows''' - commonly referred to as '''16-bit WOW''',<ref>{{cite web|url=http://support.microsoft.com/kb/153544|title=Starting 16-Bit WOW Subsystem on Windows NT Server|date=|accessdate=11 Feb 2013|publisher=Microsoft}}</ref> '''WOWEXEC'''<ref>{{cite web|url=http://support.microsoft.com/kb/181333|title=Disabling the MSDOS and WOWEXEC Subsystems on Terminal Server|publisher=Microsoft|accessdate=13 Feb 2013|date=}}</ref> or simply by its [[acronym]] '''WOW'''<ref>{{cite web|url=http://support.microsoft.com/kb/181333|title=WOW Environment Remains in Memory After Quitting 16-Bit Program|publisher=Microsoft|accessdate=13 Feb 2013|date=}}</ref> - is a [[compatibility layer]] of [[32-bit]] versions of the Microsoft [[Windows NT]] family of [[operating system]]s that extends the [[Virtual DOS machine|NTVDM]] to provide limited support for running [[legacy code|legacy]] [[Windows API|Win16]] applications - applications written for [[Windows 3.x]]. The technology is largely redundant now that the industry is moving towards [[64-bit]] based computing; more recently "WOW" may therefore refer to support for running 32-bit applications on 64-bit versions of Windows - known as [[WOW64]].


== Background ==
== Background ==

Revision as of 10:27, 13 February 2013

In computing, Windows on Windows - commonly referred to as 16-bit WOW,[1] WOWEXEC[2] or simply by its acronym WOW[3] - is a compatibility layer of 32-bit versions of the Microsoft Windows NT family of operating systems that extends the NTVDM to provide limited support for running legacy Win16 applications - applications written for Windows 3.x. The technology is largely redundant now that the industry is moving towards 64-bit based computing; more recently "WOW" may therefore refer to support for running 32-bit applications on 64-bit versions of Windows - known as WOW64.

Background

Many 16-bit Windows (Win16) legacy applications can run without changes on newer 32-bit editions of Windows. The reason designers made this possible was to allow application developers time to remediate their applications during the industry transition from Windows 3.1x to Windows 95 and later, without restricting the ability for the operating system to be upgraded to a current version before all the applications used by a customer had been taken care of.

The Windows 9x series of operating systems, reflecting their roots in DOS, functioned as hybrid 16/32-bit systems in the sense that the underlying operating system was not truly 32-bit, and therefore could run Win16 applications natively without requiring any special emulation; Windows NT based operating systems differ signicantly from Windows 9x in their architecture, and therefore require a more complex solution. Two technologies make it possible for 16-bit applications to run unmodifed and with some runtime limitations on 32-bit Windows NT-based versions of Windows—thunking and shimming.

Thunking

The WOWEXEC subsystem of the operating system thunks legacy 16-bit APIs to their newer 32-bit equivalents in order to provide support for 16-bit pointers, memory models and address space.

All 16-bit applications run by default in a single virtual DOS machine with shared memory space. However they can be configured to each run in their own separate memory space, in which case each 16-bit process will have its own dedicated virtual machine. The separate memory space increases application stability by preventing buggy 16-bit applications from interfering with one another, at the expense of 16-bit inter-process communication and increased memory utilisation.

The Win16 subsystem is available in 32-bit editions of Windows NT, 2000, XP, Server 2003, Vista, Server 2008, 7, and 8. The 64-bit editions of Windows versions that have them, however, do not include the WoW Win16-support subsystem and therefore cannot run Win16 applications, nor do they provide the NTVDM emulator. DOS and 16-bit Windows applications, therefore cannot run in 64-bit versions of Windows without third-party emulation software (e.g. DOSBox) or a virtual machine with either a 32-bit version of Windows, Windows XP Mode, or DOS itself.

The WOWEXEC.EXE process on a Windows NT system facilitates Windows-on-Windows.[4][5] In addition to Windows-on-Windows emulating the Windows 95 and Windows 98 kernels, the WIN.COM file emulates a Windows 3.x kernel for NTVDM, which runs the 16-bit DOS-based Windows applications on Windows NT. In Windows Vista, Server 2008, 7 and 8, Microsoft has removed both NTVDM and the emulated Windows 3.x kernel; thus Windows Vista, Server, 7 and 8 only emulates the kernels of Windows 95, Windows NT 4.0, Windows 98, and later (where the emulated kernel of Windows Vista and later were only 32-bit).[citation needed]

Shimming

Application-compatibility issues, notably around long filenames, multiple users and the concept of least privilege, may prevent some applications from working if they, for example, incorrectly assume write access to the whole file system when NTFS security is in place.

When the Windows 95 line of operating systems was designed, a key requirement was for the file system to keep backward compatbility with 8.3 filenames to allow legacy applications to continue to work on the platform. Windows 95 and later operating systems therefore support a compatblity mode whereby both a long filename and a short filename are stored in the File Allocation Table.

Furthermore, legacy applications that attempt to access hardware directly cannot do so in user mode. Legacy application may also fail if system configuration files from the DOS and Windows 9.x era are not present in Windows NT based kernels, hence the reason for zero-length versions of files like AUTOEXEC.BAT and CONFIG.SYS having to be carried forward on operating systems that do not use them.

A considerable number of shims are present in the application compatibility layer of later versions of Windows to intercept and modify API calls made by legacy applications that were written with a different set of assumptions and operating system best practices in mind.[6] These fixes are updated from time-to-time as issues are discovered in popular legacy applications that are still in use.[7]

See also

References

  1. ^ "Starting 16-Bit WOW Subsystem on Windows NT Server". Microsoft. Retrieved 11 Feb 2013.
  2. ^ "Disabling the MSDOS and WOWEXEC Subsystems on Terminal Server". Microsoft. Retrieved 13 Feb 2013.
  3. ^ "WOW Environment Remains in Memory After Quitting 16-Bit Program". Microsoft. Retrieved 13 Feb 2013.
  4. ^ "Windows NT Subsystems and Associated Files". Retrieved 13 Feb 2013.
  5. ^ "PRB: Relocation of Ntvdm.exe Fails on Multiprocessor Computers". Microsoft. Retrieved 11 Feb 2013.
  6. ^ "Application Compatibility". Microsoft. Retrieved 11 Feb 2014. {{cite web}}: Cite has empty unknown parameter: |1= (help)
  7. ^ "Application Compatibility Update for Windows 7 and Windows Server 2008 R2: August 2010". Microsoft. Retrieved 11 Feb 2013.