Running Nonnative Applications in Windows 2000 Professional

The architecture of Windows 2000 provides a separate address space for each environment subsystem or VDM, thus protecting it from all other environments and preserving the robustness of the operating system. Most applications also run in their own address space. This allows Windows 2000 to run all operating system services and all applications by preemptive multitasking — working on more than one task at a time by periodically interrupting the execution of each.

Figure B.1 shows the structure of the Windows 2000 emulation environment subsystems and VDMs. A description of the major emulation environment features follows.


Figure B.1 Windows 2000 Emulation Environments

Win32 Subsystem    Win32 processes 32-bit applications and is the native environment of Windows 2000. It contains the console, which provides text window support, shutdown, and hard-error handling for all subsystems. Applications created for earlier versions of Microsoft Windows NT and Windows 95 or Windows 98 — which are also 32-bit operating systems — run on this subsystem.

MS-DOS VDM    The MS-DOS environment is implemented as a VDM, a 32-bit Windows–based application that emulates an Intel 486 computer running MS-DOS. Each MS-DOS–based application runs in its own separate VDM. Any number of these VDMs can be run at once, limited only by system resources. Each has its own address space, thus protecting the applications from each other and protecting the core operating system from the VDMs.

Win16 VDM    Extra layers added to the basic MS-DOS VDM emulate the 16-bit functionality of Microsoft Windows 3.1 (Win16). By default, a single multithreaded VDM is used to run all 16-bit Windows-based applications; each application has its own thread in this VDM. Windows 2000 multitasks the VDM preemptively with respect to other processes but multitasks the applications running within it cooperatively (without interrupting processing) with respect to each other. You can also run a 16-bit Windows-based application in its own separate VDM. The result is that Windows 2000 preemptively multitasks the application because it preemptively multitasks the VDM itself and there is no other application running within the VDM.

OS/2 Subsystem    The OS/2 subsystem supports 16-bit character-based OS/2-based applications on x 86-based computers. It emulates OS/2 version 1.3 and supports version 1. x , but not 2. x or later.

POSIX Subsystem    The POSIX subsystem supports applications written to the POSIX.1 standard. Applications must conform strictly to POSIX.1, or to the related standards set by the International Standards Organization (ISO) and the International Electrotechnical Commission (IEC) — commonly known as the ISO/IEC standards.