Page 313 - DCAP403_Operating System
P. 313
Operating System
Notes converting, or thinking, 16-bit addresses into 32-bit ones. Applications that rely on the internal
structure of the 16-bit window manager or GDI may not work, because Windows on Windows
does not really implement the 16-bit API.
Windows on Windows can multitask with other processes on Windows 2000, but it resembles
Windows 3.1 in many ways. Only one Win16 application can run at a time, all applications
are single threaded and reside in the same address space, and they all share the same input
queue. These features imply that an application that stops receiving input will block all the
other Win16 applications, just as in Windows 3.x, and one Win16 application can crash other
Win16 applications by corrupting the address space. Multiple Win16 environments can coexist,
however, by using the command start/separate win16application from the command line.
Win32 Environment
The main subsystem in Windows 2000 is the Win32 subsystem. It runs Win32 applications, and
manages all keyboard, mouse, and screen I/O. Since it is the controlling environment, it is designed
to be extremely robust. Several features of Win32 contribute to this robustness. Unlike the Win16
environment, each Win32 process has its own input queue. The window manager dispatches
all input on the system to the appropriate process’s input queue, so a failed process will not
block input to other processes. The Windows 2000 kernel also provides preemptive multitasking,
which enables the user to terminate applications that have failed or are no longer needed. Win32
also validates all objects before using them, to prevent crashes that could otherwise occur if an
application tried to use an invalid or wrong handle. TheWin32 subsystem verifies the type of the
object to which a handle points before using that object. The reference counts kept by the object
manager prevent objects from being deleted while they are still being used, and prevents their
use after they have been deleted.
POSIX Sub-system
The POSIX subsystem is designed to run POSIX applications following the POSIX.1 standard,
which is based on the UNIX model. POSIX applications can be started by the Win32 subsystem or
by another POSIX application. POSIX applications use the POSIX subsystem server PSXSS.EXE,
the POSIX dynamic link library PSXDLL.DLL, and the POSIX console session manager POSIX.
EXE.
Although the POSIX standard does not specify printing, POSIX applications can use printers
transparently via the Windows 2000 redirection mechanism.
POSIX applications have access to any file system on the Windows 2000 system; the POSIX
environment enforces UNIX-like permissions on directory trees.
Several Win32 facilities are not supported by the POSIX subsystem, including memory-mapped
files, networking, graphics, and dynamic data exchange.
OS/2 Sub-system
Although Windows 2000 was originally intended to provide a robust OS/2 operating
environment, the success of Microsoft Windows led to a change; during the early development
of Windows 2000, the Windows environment became the default. Consequently, Windows
2000 provides only limited facilities in the OS/2 environmental subsystem. OS/2 1.x character-
based applications can run only on Windows 2000 on Intel x86 computers. Real-mode OS/2
applications can run on all platforms by using the MS-DOS environment. Bound applications,
which have dual code for both MS-DOS and OS/2, run in the OS/2 environment unless the OS/2
environment is disabled.
306 LOVELY PROFESSIONAL UNIVERSITY