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.