How Windows 98 Utilized Config.sys on Startup

Microsoft Windows 98 relied on the legacy Config.sys text file during its initial boot sequence to configure hardware, establish memory allocation parameters, and load real-mode device drivers before launching its 32-bit operating environment. Because Windows 98 utilized a hybrid architecture built upon MS-DOS 7.1, Config.sys served as the critical bridge that ensured system stability and backward compatibility with older 16-bit software and peripherals prior to the graphical interface taking control.

The Boot Sequence and IO.SYS

When a Windows 98 PC powered on, the system executed the Power-On Self-Test (POST) and loaded the Master Boot Record, which directed the machine to IO.SYS. IO.SYS was the core real-mode initialization file. Immediately after initializing basic input/output hardware, IO.SYS checked the root directory of the boot drive for the presence of Config.sys.

If present, IO.SYS processed Config.sys sequentially from top to bottom. If the file was missing, Windows 98 relied on default internal values built directly into IO.SYS, ensuring the machine could still boot successfully without manual configuration.

Memory Management Directives

One of the primary functions of Config.sys in Windows 98 was setting up memory managers before the protected-mode kernel initialized. Typical lines in the file included:

  • DEVICE=C:\WINDOWS\HIMEM.SYS: Loaded the extended memory manager, granting access to memory above 1 MB and the High Memory Area (HMA).
  • DEVICE=C:\WINDOWS\EMM386.EXE: Provided expanded memory (EMS) emulation and enabled Upper Memory Blocks (UMBs) for legacy programs.
  • DOS=HIGH,UMB: Instructed the operating system to load parts of MS-DOS into the High Memory Area and allow drivers to load into UMBs, preserving conventional 640 KB memory.

Loading Real-Mode Device Drivers

Config.sys allowed users to load 16-bit real-mode hardware drivers using DEVICE= or DEVICEHIGH= commands. This was necessary for older hardware that lacked native 32-bit Windows drivers, such as proprietary CD-ROM drives, legacy sound cards, and specialized SCSI controllers.

By loading these drivers through Config.sys, the devices remained accessible during the initial startup phase, in safe mode, or when booting directly into MS-DOS mode without running the Windows graphical shell.

System Resource Allocation

Config.sys established fundamental operating limits for file handling and memory buffering. Directives like FILES=, BUFFERS=, and STACKS= determined how many file handles the system could open simultaneously, how many disk buffers were allocated, and the amount of stack space available for hardware interrupts. While Windows 98 managed these resources dynamically in protected mode, the static values in Config.sys dictated the environment during the pre-GUI phase.

Transition to 32-Bit Protected Mode

Once Config.sys (and subsequently Autoexec.bat) finished executing, the boot sequence initiated WIN.COM, which loaded the Windows Virtual Machine Manager (VMM32.VXD) and the graphical subsystem. At this point, Windows 98 took over hardware control.

Whenever possible, Windows 98 replaced the real-mode drivers loaded by Config.sys with 32-bit protected-mode virtual device drivers (VxDs). This transition improved system performance, enabled preemptive multitasking, and removed memory constraints imposed by real-mode drivers.