Environment Subsystems

Windows NT was designed to allow many different types of applications to run seamlessly on the same graphical desktop. It runs applications written for existing operating systems such as MS-DOS, OS/2 1.x, and Windows 3.x. It also runs applications written for newer APIs such as POSIX and Win32.

Windows NT supports a variety of applications through the use of environment subsystems, which are Windows NT processes that emulate different operating system environments.

This chapter has discussed how the Windows NT Executive provides generic services that all environment subsystems can call to perform basic operating system functions. The subsystems build on the Executive's services to produce environments that meet the specific needs of their client applications. Figure 1.11 shows a simplified view of the Windows NT environmental subsystem design.

Figure 1.11 Conceptual View of Windows NT Environment Subsystems

As shown in this figure, each subsystem runs as a separate user-mode process. Failure in one won't cause another subsystem or the Executive to be disabled. Each subsystem is protected from errors in the others. (An exception to this is if the Win32 subsystem crashes, since it handles keyboard and mouse input and screen output for all subsystems.) Applications are also user-mode processes, so they can't hinder the subsystems or Executive.

Windows NT provides these protected environments subsystems and multiple Virtual DOS Machines (VDMs):

With the exception of the Win32 subsystem, each environment is optional and is loaded only when its services are needed by a client application.