Window 95 - Architecture

Architecture

Windows 95 was designed to be maximally compatible with existing MS-DOS and 16-bit Windows programs and device drivers, while offering a more stable and better performing system. Windows 95 architecture is an evolution of Windows for Workgroups' 386 enhanced mode. The lowest level of the operating system consists of a large number of virtual device drivers (VxDs) running in 32-bit protected mode and one or more virtual DOS machines running in virtual 8086 mode. The virtual device drivers are responsible for handling physical devices (such as video and network cards), emulating virtual devices used by the virtual machines, or providing various system services. The three most important virtual device drivers are:

Virtual Machine Manager (VMM32.VXD)
Responsible for memory management, event handling, interrupt handling, loading and initializing virtual device drivers, creating new virtual machines and thread scheduling
Configuration Manager (CONFIGMG)
Responsible for implementing Plug and Play functionality, monitoring hardware configuration changes, detecting devices using bus enumerators, and allocating I/O ports, IRQs, DMA channels and memory in a conflict free fashion
Installable File System Manager (Input/Output Subsystem)
Coordinates access to supported file systems. Windows 95 initially shipped with support for FAT12, FAT16, VFAT extension, ISO 9660 (CDFS) and network redirectors. Later releases included support for FAT32.

Access requests to physical media are sent to Input/Output Supervisor, a component responsible for scheduling the requests. Each physical media has its own device driver: Access to the disk is performed by a port driver, while access to a SCSI device is handled by a miniport driver working atop the SCSI layer. Port and miniport drivers perform I/O operations in 32-bit protected mode, bypassing MS-DOS and BIOS, giving a significant performance improvement. In case there is no native Windows driver for a certain storage device, or if a device is forced to run in compatibility mode, the Real Mode Mapper can access it through MS-DOS.

32-bit Windows programs are assigned their own memory segments, which can be adjusted to any size the user wishes. Memory area outside the segment cannot be accessed by a program. It they crash, they do not harm anything else. Before this, programs used fixed non-exclusive 64 KB segments. While the 64 KB size was a serious handicap in DOS and Windows 3.x, lack of guarantee of exclusiveness was the cause of stability issues because programs sometimes overwrote each others' segments. A crashing Windows 3.x program could knock out surrounding processes.

The Win32 API is implemented by three modules, each consisting of a 16-bit and a 32-bit component:

Kernel
Provides high level access to memory and process management, and access to the file system. Consists of KRNL386.EXE, KERNEL32.DLL, and VWIN32.VXD.
User
Responsible for managing and drawing the various user interface components, such as windows, menus and buttons. Consists of USER.EXE and USER32.DLL.
Graphics Device Interface (GDI)
Responsible for drawing graphics in a device-independent way. Consists of GDI.EXE and GDI32.DLL.

Read more about this topic:  Window 95

Famous quotes containing the word architecture:

    They can do without architecture who have no olives nor wines in the cellar.
    Henry David Thoreau (1817–1862)