Windows 95 Boot: CONFIG.SYS and AUTOEXEC.BAT
During startup, Windows 95 handled CONFIG.SYS and
AUTOEXEC.BAT primarily to ensure backward compatibility
with legacy 16-bit MS-DOS software and hardware drivers. Although
Windows 95 was architected as a 32-bit operating system utilizing
protected-mode drivers, its bootstrap loader still executed real-mode
configuration files sequentially during the early phases of the boot
process before fully initializing the graphical environment and 32-bit
Virtual Machine Manager.
The Role of the Unified IO.SYS
In Windows 95, MS-DOS components were merged. The startup process was
initiated by a modernized IO.SYS, which combined the
functions of the traditional MS-DOS IO.SYS and
MSDOS.SYS.
To streamline booting and reduce the need for manual configuration,
Windows 95 built core driver loading directly into IO.SYS.
By default, IO.SYS automatically loaded essential real-mode
drivers and settings into memory without requiring entries in
CONFIG.SYS. These defaults included:
HIMEM.SYS(Extended memory manager)IFSHLP.SYS(Installable File System Helper)SETVER.EXE(MS-DOS version emulator)- Default configuration values for
FILES,BUFFERS,STACKS, andSHELL
Processing CONFIG.SYS
If a CONFIG.SYS file existed in the root directory of
the boot drive, IO.SYS parsed it immediately after applying
its internal defaults.
During this step, any unique 16-bit real-mode drivers—such as
proprietary SCSI adapters, legacy CD-ROM drivers, or specialized sound
drivers—were loaded into conventional or upper memory blocks (UMBs). If
a parameter in CONFIG.SYS overridden an internal default
(such as a higher FILES= allocation), the value specified
in CONFIG.SYS took precedence.
Executing AUTOEXEC.BAT
Once CONFIG.SYS processing concluded,
IO.SYS launched the command processor specified by the
shell (typically COMMAND.COM), which subsequently looked
for and processed AUTOEXEC.BAT.
During the AUTOEXEC.BAT phase, the system executed:
- Global environment variables, primarily
PATH,PROMPT, andTEMP. - Real-mode Terminate-and-Stay-Resident (TSR) programs (e.g.,
DOSKEY, legacy mouse drivers, or MSCDEX for CD-ROM access). - Custom batch commands required prior to entering protected mode.
Transition to Protected Mode and Driver Hand-off
At the conclusion of AUTOEXEC.BAT, the system
automatically launched WIN.COM to transition the processor
from 16-bit real mode into 32-bit protected mode.
During this transition, the Windows 95 Virtual Machine Manager
(VMM32.VXD) and peripheral virtual device drivers (VxDs)
initialized. Windows inspected the hardware to see if 32-bit
protected-mode drivers were available for the devices previously claimed
by real-mode drivers in CONFIG.SYS or
AUTOEXEC.BAT.
If a corresponding 32-bit driver existed (such as a 32-bit
protected-mode IDE driver replacing a real-mode driver, or the 32-bit
CDFS replacing MSCDEX.EXE), Windows 95 intercepted the
hardware calls and placed the legacy 16-bit driver into a dormant state.
If no protected-mode driver was available, Windows 95 maintained the
real-mode driver, utilizing "MS-DOS compatibility mode" for that
subsystem, which preserved backward compatibility at the expense of
system performance.