When run on Windows NT, MS-DOS-based applications run within the context of a process called a Virtual DOS Machine (VDM). A VDM is a Win32 application that establishes a complete virtual x86 (that is, 80386 or higher) computer running MS-DOS. There is no limit on the number of VDMs that can be run. Each VDM runs in its own address space, which protects the applications from each other and the rest of the operating system from the VDMs.
When Windows NT is running on an x86 processor, a processor mode called Virtual-86 mode is available. This mode allows direct execution of most instructions in an MS-DOS – based application. A few instructions, such as I/O instructions, must be emulated in order to virtualize the hardware. When Windows NT is running on a RISC processor, hardware support for executing x86 instructions is not available. In such an environment, it is necessary to emulate all of the x86 instructions in addition to providing a virtual hardware environment.
To run MS-DOS – based applications, the VDM creates a virtual computer that provides the following features:
Figure 1.12 Structure of an MS-DOS VDM
On x86-based computers, character-based applications can run either in a window or in a full screen. Graphical applications can run only in full screen. If an application is in a window and then changes the video mode, it is automatically switched to full screen. On RISC-based computers, character-based and graphical applications run only in a window.