Open Course by Ferdian Sonatha , Padepokan Kanuragan Blankon Malang
http://malang.di.blankon.in/opencourse/
synchronization primitives. This allows for the possibility of using either direct procedure
calls or interprocess communication (IPC) to communicate between modules, and hence
for the potential location of modules in different address spaces (for example in either
kernel space or server processes). Other design goals shared with Mach included
support for diverse architectures, a kernel with abstractions general enough to allow
multiple operating system personalities to be implemented on top of it and an object-
oriented organisation.
The reason NT is not a micro-kernel system is that nearly all of the subsystems
providing system services, including the entire Executive, run in kernel mode (in the
same address space as the microkernel itself), rather than in user-mode server
processes, as would be the case with a microkernel design. This is an attribute NT
shares with early versions of Mach, as well as all commercial systems based on Mach,
and stems from the superior performance offered by using direct procedure calls in a
single memory space, rather than IPC, for communication amongst subsystems.
In describing NT, the list of subsystems that do not run in kernel mode is far shorter than
the list of those that do. The user-mode subsystems on NT include one or more
emulation subsystems, each of which provides an operating system personality to
applications, the Session Manager Subsystem (smss.exe), which starts the emulation
subsystems during system startup and the Local Security Authority Subsystem
Service (lsass.exe), which enforces security on the system. The subsystems are not
written to a particular OS personality, but rather to the native NT API (or Native API).
The primary operating system personality on Windows is the Windows API, which is
always present. The emulation subsystem which implements the Windows personality is
called the Client/Server Runtime Subsystem (csrss.exe). On versions of NT prior to 4.0,
this subsystem process also contained the window manager, graphics device interface
and graphics device drivers. For performance reasons, however, in version 4.0 and later,
these modules (which are often implemented in user mode even on monolithic systems,
especially those designed without internal graphics support) run as a kernel-mode
subsystem.
As of 2007, one other operating system personality, UNIX, is offered as an optionally
installed system component on certain versions of Windows Vista and Windows Server
2003 R2. The associated subsystem process is the Subsystem for UNIX-Based
Applications (psxss.exe), which was formerly part of a Windows add-on called Windows
Services for UNIX. An OS/2 subsystem (os2ss.exe) was supported in older versions of
Windows NT, as was a very limited POSIX subsystem (psxss.exe). The POSIX
subsystem was supplanted by the UNIX subsystem, hence the identical executable
name.
[4]