Content deleted Content added
Dan Harkless (talk | contribs) m Tag templates go _after_ punctuation, per WP:MOS. |
Undid revision 1302175074 by 128.124.108.87 (talk) |
||
(35 intermediate revisions by 20 users not shown) | |||
Line 1:
{{Short description |Discontinued subsystem for 32-bit Windows
{{multiple|
{{primary sources|date=October 2018}}
Line 12 ⟶ 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,{{citation needed |reason=What is the source of this assertion? The fact that you could boot to DOS? |date=January 2017}} and therefore could run 16-bit software natively without requiring any special emulation; [[Windows NT]] operating systems differ significantly from Windows 9x in their architecture, and therefore require a more complex solution. Two separate strategies are used in order to let 16-bit programs run on 32-bit versions of Windows (with some [[Execution_(computing)#Runtime|runtime]] limitations). They are called [[thunk]]ing and [[Shim (computing)|shimming]].
===Thunking===
Line 29 ⟶ 33:
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.
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|access-date=February 7, 2017|website=Support|publisher=[[Microsoft]]|url-status=dead|archive-url=https://web.archive.org/web/20070316022744/http://support.microsoft.com/kb/105992|archive-date=March 16, 2007}}</ref><ref>{{cite web|url=http://support.microsoft.com/kb/199671|title=PRB: Relocation of Ntvdm.exe Fails on Multiprocessor Computers|website=Support|publisher=[[Microsoft]]|access-date=February 7, 2017|date=November 21, 2006|url-status=dead|archive-url=https://web.archive.org/web/20090222173939/http://support.microsoft.com/kb/199671|archive-date=February 22, 2009}}</ref> In addition to Windows-on-Windows emulating the [[Windows 95]] and [[Windows 98]] [[kernel (operating system)|kernels]], the {{mono|WIN.COM}} file emulates a [[Windows 3.x]] kernel for [[Virtual DOS machine#Windows NTVDM|NTVDM]], which runs the 16-bit DOS-based Windows applications on Windows NT.
===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|access-date=February 7, 2017}}</ref> These fixes are updated from time-to-time as issues are discovered in popular legacy applications that are still in use.<ref>{{cite web|url=http://support.microsoft.com/kb/2272691|title=Application Compatibility Update for Windows 7 and Windows Server 2008 R2: August 2010|website=Support|publisher=[[Microsoft]]|access-date=February 7, 2017|date=August 24, 2010}}</ref>
Line 47 ⟶ 49:
==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 60 ⟶ 63:
{{DEFAULTSORT:Windows On Windows}}
[[Category:Discontinued Windows components]]
[[Category:1993 software]]
[[Category:Compatibility layers]]
|