The Role of IO.SYS in Windows 95 Startup
During the Windows 95 startup sequence, the IO.SYS file
served as the foundational real-mode operating system kernel that
bridged the gap between the computer's BIOS and the 32-bit graphical
operating system. In Windows 95, Microsoft significantly overhauled
IO.SYS to consolidate the initialization roles of legacy
MS-DOS system files, process basic configurations automatically, and
launch the core protected-mode Windows environment.
Consolidation of MS-DOS System Files
In earlier versions of MS-DOS, booting relied on two distinct binary
files: IO.SYS, which managed hardware-specific input/output
interfaces, and MSDOS.SYS, which contained the DOS kernel
routines.
Windows 95 merged both functions into a single, unified
IO.SYS binary. The original MSDOS.SYS was
repurposed into a human-readable text configuration file containing boot
settings (such as BootGUI=1 or BootMenu=0).
Consequently, IO.SYS became solely responsible for loading
the real-mode DOS subsystem that Windows 95 needed during early
initialization.
Automatic System Configuration
To modernize the boot sequence and reduce reliance on manual
configuration files, the Windows 95 version of IO.SYS
integrated several essential drivers and settings internally. Even if
CONFIG.SYS and AUTOEXEC.BAT were completely
missing from the root directory, IO.SYS automatically
loaded default parameters:
- Built-in Memory Management: It loaded
HIMEM.SYSinto memory by default to enable extended memory access. - Core Drivers: It automatically initialized
IFSHLP.SYS(Installable File System Helper) andSETVER.EXE. - Resource Allocation: It assigned default values for
standard DOS directives, such as
FILES=60,BUFFERS=30,STACKS=9,256, andFCBS=4.
If a custom CONFIG.SYS file existed, IO.SYS
parsed it to override these default values with user-specified
settings.
Parsing Boot Configuration
Once hardware detection and baseline memory setup were complete,
IO.SYS parsed the plain-text MSDOS.SYS file.
It checked for user directives, including startup delays, boot menus,
safe mode triggers, and whether to load the graphical user interface
automatically.
Transitioning to Protected Mode
The final responsibility of IO.SYS was to launch the
primary operating system environment. Unless configured to stop at a
command prompt (by setting BootGUI=0 or pressing F8 during
boot), IO.SYS executed WIN.COM. This initiated
the transition from 16-bit real mode into 32-bit protected mode, loading
the Virtual Machine Manager (VMM32.VXD) and the rest of the
Windows 95 graphical architecture.