Content deleted Content added
→Thunking: Clarify |
Undid revision 1302175074 by 128.124.108.87 (talk) |
||
(45 intermediate revisions by 25 users not shown) | |||
Line 1:
{{Short description |Discontinued subsystem for 32-bit Windows for running 16-bit Windows programs}}
{{multiple|
{{primary sources|date=October 2018}}
Line 11 ⟶ 13:
| other_names = WOW
| developer = [[Microsoft]]
| released = {{Start date and age|1993|07|27}}
| replaces =
| operating system = [[Microsoft Windows]]
| platform = [[IA-32]]
| genre = [[Compatibility layer]]
| license = [[Proprietary software|Proprietary]] [[commercial software]]
}}
In [[computing]], '''Windows on Windows''' (commonly referred to as '''WOW'''
This subsystem will be retired with the [[Product lifecycle#Phase 4: Service|end of support]] of [[Windows 10]] in October 14, 2025. The last version of Windows to include this subsystem is Windows 10, as [[Windows 11]] (and [[Windows Server 2008 R2]] and later) only run the [[x86-64]] processor in [[long mode]] and therefore cannot run 16-bit software without emulation software.
==Background==
Many 16-bit Windows legacy programs can run without changes on newer [[32-bit]] editions of Windows. The reason designers made this possible was to allow software developers time to remedy their software during the industry transition from [[Windows 3.
The [[Windows 9x]] series of operating systems, reflecting their roots in [[DOS]], functioned as hybrid 16- and 32-bit systems in the sense that the underlying operating system was not truly 32-bit,{{
===Thunking===
{{Main article|Thunk#Interoperability}}
The WOW subsystem of the operating system {{Clarify|text=thunks legacy 16-bit APIs to their newer 32-bit equivalents|date=July 2020}} in order to provide support for 16-bit [[pointer (computer programming)|pointer]]s, memory models and [[address space]].
All 16-bit programs run by default in a single [[virtual DOS machine]] with shared memory space. However, they can be configured to run in their own separate memory space, in which case each 16-bit process has its own dedicated virtual machine. The separate memory space increases system stability by preventing buggy 16-bit programs from interfering with one another, at the expense of reduced 16-bit [[inter-process communication]] and increased memory utilization.▼
▲All 16-bit programs run by default in a single [[virtual DOS machine]] with shared memory space. However, they can be configured to run in their own separate memory space, in which case each 16-bit process has its own dedicated [[virtual machine]]. The separate memory space increases system stability by preventing buggy 16-bit programs from interfering with one another, at the expense of reduced 16-bit [[inter-process communication]] and increased memory utilization.
The {{mono|WOWEXEC.EXE}} process on a [[Windows NT]] system facilitates Windows-on-Windows.<ref>{{cite web|url=http://support.microsoft.com/kb/105992|title=Windows NT Subsystems and Associated Files|date=October 31, 2006|
===Shimming===
{{Main article|Shim (computing)}}
Application compatibility issues, notably around [[long filename]]s, multiple users and the concept of [[Principle of least privilege|least privilege]], may prevent some applications from working. For example, they may incorrectly assume full write access to the whole [[file system]] whereas [[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 compatibility]] with [[8.3 filename]]s to allow legacy applications to continue to work on the platform. Windows 95 and later operating systems therefore support a compatibility mode whereby both a long filename and a short filename are stored in the [[
Furthermore, legacy applications that attempt to access hardware directly cannot do so in [[Protection ring|user mode]]. Legacy applications may also fail if system configuration files from the DOS and Windows 9x era are not present in Windows NT based kernels, hence the reason for zero-length versions of files like {{mono|[[AUTOEXEC.BAT]]}} and {{mono|[[CONFIG.SYS]]}} having to be carried forward on operating systems that do not use them.
A considerable number of shims are present in the [[compatibility layer|application compatibility layer]] of later versions of Windows to intercept and modify [[Application programming interface|API]] calls made by legacy applications that were written with a different set of assumptions and operating system best practices in mind.<ref>{{cite web|website=TechNet|publisher=[[Microsoft]]|url=https://technet.microsoft.com/en-us/library/ee461265(v=ws.10).aspx|title=Application Compatibility|
==See also==
* [[Wine (software)]]
* [[Virtual DOS machine#WineVDM|OTVDM]], a third-party project based on code from Wine which runs 16-bit Windows programs on 64-bit versions of Windows.
==References==
Line 53 ⟶ 57:
* [http://www.microsoft.com/technet/archive/winntas/training/ntarchitectoview/ntarc_5.mspx?mfr=true Windows NT subsystems]
* [http://kb.iu.edu/data/acxn.html What are NTVDM and WOW?]
* {{cite web |url = http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/prork/preb_mon_ewvl.mspx |title= Monitoring 16-bit Windows applications |series= TechNet |publisher= Microsoft |url-status= dead |archive-date=
* [https://technet.microsoft.com/en-us/magazine/ff756590.aspx Optimize How Windows 7 Runs 16-Bit and MS-DOS-Based Programs]
Line 59 ⟶ 63:
{{DEFAULTSORT:Windows On Windows}}
[[Category:Discontinued Windows components]]
[[Category:1993 software]]
[[Category:Compatibility layers]]
|