Windows 9x Architecture and Design
Windows 9x represents a pivotal era in computing, serving as a series of monolithic 16/32-bit operating systems. Designed to bridge the gap between the legacy of MS-DOS and the modern requirements of 32-bit computing, its architecture balances backward compatibility with the introduction of protected mode operations.
Key Facts
- Kernel Type: Monolithic 16/32-bit architecture.
- Memory Model: 4 GiB virtual memory space (2 GiB for applications, 2 GiB for kernel).
- Core Component: The Virtual Machine Manager (VMM) handles memory, processes, and multitasking.
- File System: Native support for FAT12, FAT16, and FAT32; no native NTFS support.
- Compatibility: Strong legacy support for MS-DOS and Win16 applications.
- Security: Designed as a single-user system with limited access control.
Kernel and Memory Management
The Windows 9x system is divided into kernel space and user space. While it implements some memory protection, the first megabyte of memory remains unprotected from userland applications to ensure compatibility. This design choice created a known point of instability; if a faulty application wrote data into this critical region, it could freeze or crash the entire operating system.
User Mode
User mode is comprised of three primary subsystems: Win16, Win32, and MS-DOS. A notable limitation in Windows 9x and Me was the allocation of two 64 KiB memory blocks for GDI (Graphics Device Interface) and heap resources. If these resources dropped below 10% availability due to long uptimes or resource-heavy applications, the system frequently became unstable.
Kernel Mode
The kernel mode operates at privilege level 0 (Ring 0) and includes the following components:
- Virtual Machine Manager (VMM): The 32-bit protected mode core.
- Installable File System Manager (IFSHLP): Manages file system access.
- Configuration Manager: Handles system settings.
- WDM Driver Manager (NTKERN): Introduced in Windows 98 and later.
[ไม่มีภาพประกอบ]
The Virtual Machine Manager (VMM)
The VMM is the heart of the operating system, responsible for creating, monitoring, and terminating MS-DOS, Win16, and Win32 virtual machines. It provides preemptive multitasking, allowing the CPU to share time between multiple threads and applications.
The VMM utilizes virtual devices—loadable kernel modules typically consisting of 32-bit Ring 0 code—to intercept interrupts and faults. This allows the system to control how applications access hardware and software. The file vmm32.vxd serves as a compressed archive for core VxDs, including ifsmgr.vxd, which enables 32-bit file system access without relying on real-mode DOS code.
System Configuration and the Registry
Windows 9x transitioned from using .INI files (such as SYSTEM.INI and WIN.INI) to a centralized database known as the Windows Registry. This change was necessary because the FAT filesystem limitations made numerous .INI files unwieldy as the OS grew in complexity.
| Storage Method | Files Used | Purpose |
|---|---|---|
| Registry | User.dat, System.dat (Classes.dat in Me) | User, hardware, and system-wide configurations. |
| Legacy Files | AUTOEXEC.BAT, CONFIG.SYS, .INI files | Backward compatibility and real-mode system settings. |
Software and File System Support
Windows 9x was designed primarily for ANSI encoding and lacks native Unicode support, though the Microsoft Layer for Unicode can be installed as an add-on. Regarding storage, the system natively supports FAT-based systems. While early versions of Windows 95 lacked FAT32, later versions introduced VFAT, which allowed filenames up to 255 characters, breaking the traditional 8.3 filename limitation.
Unlike the Windows NT family, Windows 9x does not natively support NTFS or HPFS, nor does it feature built-in event logging, tracing, or error reporting.
Security and Stability
Designed as a single-user system, Windows 9x lacks the robust security model found in Windows NT. Because FAT file systems do not support Access Control Lists (ACLs) or file-level encryption, any user with drive access can modify any file, including critical boot sectors and kernel images.
This openness made the system vulnerable to viruses and a phenomenon known as DLL hell, where installation software would overwrite or delete shared system files without verifying versions. To combat this, Windows Me introduced System File Protection and System Restore.
Hardware and Driver Architecture
Drivers in Windows 9x generally fall into three categories:
- Virtual Device Drivers (VxDs): 32-bit drivers (
.vxdor.386) loaded by themsgsrv32message server. - WDM Drivers: Introduced in Windows 98 (
.sysextension). - .DRV Drivers: User-mode drivers in New Executable format, often used for multimedia.
Because drivers share the same address space as the kernel, a single faulty driver could overwrite critical OS sections, leading to system crashes. Furthermore, the OS lacks native support for modern CPU technologies like Hyper-Threading, Symmetric Multiprocessing (SMP), or multi-core processors.
The Role of MS-DOS
In Windows 95, MS-DOS served as the boot loader and the 16-bit legacy driver layer. During startup, MS-DOS would load CONFIG.SYS and AUTOEXEC.BAT before WIN.COM launched the VMM and switched the CPU into protected mode. Once in protected mode, the 32-bit file system manager took over.
To maintain compatibility, Windows 9x uses Virtualization to run DOS applications in a Virtual DOS Machine. For software requiring direct hardware access, the OS provides a native DOS Mode, allowing the system to boot without the GUI or protected mode. This mode is often used for removing viruses or repairing corrupted registry files.
User Interface
The system offers both a Command-Line Interface (CLI) via MS-DOS and a Graphical User Interface (GUI). The default GUI is Windows Explorer, though alternatives like LiteStep or Program Manager were available. Notably, the GDI in Windows 9x runs in user mode, which prevents it from supporting alpha compositing or transparency effects found in Windows NT.
Frequently Asked Questions
What is the Virtual Machine Manager (VMM)?
The VMM is the 32-bit protected mode kernel at the core of Windows 9x. It manages memory, processes, and interrupts, and is responsible for running MS-DOS, Win16, and Win32 virtual machines.
What was "DLL hell" in Windows 9x?
DLL hell occurred when software installers replaced or deleted shared system files (Dynamic Link Libraries) without checking if the files were in use or if a newer version already existed, often breaking other installed applications.
Does Windows 9x support multiple users?
While it supports user profiles for convenience, it is effectively a single-user system. It lacks access privileges, meaning any user or process can modify any file on the system.
How does DOS Mode differ from a DOS window?
A DOS window is a virtualized environment running within the Windows GUI. DOS Mode is a boot option that starts the computer in real-mode MS-DOS without loading the Windows GUI or switching the CPU to protected mode.
Why was the Windows Registry introduced?
The Registry replaced .INI files because the increasing complexity of the OS made managing numerous individual configuration files inefficient and unwieldy under the FAT filesystem.