Role of IO.SYS in MS-DOS 6.22 Boot Architecture
In MS-DOS 6.22, IO.SYS serves as the primary bridge
between the machine's ROM BIOS and the operating system kernel. This
article examines the critical function of IO.SYS during the
system startup sequence, detailing how it is loaded by the boot sector,
its initialization of fundamental low-level device drivers, its role in
loading the MSDOS.SYS kernel, and how it prepares the
system to process startup configuration files.
Position in the Boot Sequence
The execution of IO.SYS marks the transition from
firmware-driven bootstrapping to operating system control. After the
computer completes the Power-On Self-Test (POST), the BIOS reads the
Master Boot Record (MBR), which locates the active partition's Volume
Boot Record (VBR). The VBR contains a small bootstrap program
specifically looking for IO.SYS as the first contiguous
entry in the root directory. The boot sector code loads the initial
sectors of IO.SYS into low conventional memory and
transfers CPU execution to it.
Hardware Abstraction and Default Drivers
IO.SYS functions as the hardware abstraction layer for
MS-DOS 6.22. It provides the default character and block device drivers
that the rest of the operating system relies on before any third-party
drivers are introduced. These core drivers include:
- CON: The console driver handling standard keyboard input and screen output.
- AUX / COM1: The serial communication interface.
- PRN / LPT1: The parallel printer port interface.
- CLOCK$: The system real-time clock driver.
- Block Device Drivers: Low-level routines for communicating with floppy drives and hard disk partitions.
By packaging these drivers into IO.SYS, MS-DOS separates
machine-specific hardware interactions from the file system and
programmatic logic contained in the core kernel.
Initialization and Kernel Loading
Once loaded, IO.SYS performs essential setup routines.
It relocates its own code to an optimal area in conventional memory,
initializes the default peripheral devices, and resets the disk
system.
Immediately following device initialization, IO.SYS
locates and reads MSDOS.SYS—the MS-DOS 6.22 operating
system kernel—from the storage drive into memory. Unlike later
iterations such as MS-DOS 7.0 (included with Windows 95), where
MSDOS.SYS became a text configuration file, MS-DOS 6.22
maintains MSDOS.SYS as a compiled binary containing the
high-level operating system logic, memory allocation structures, and the
DOS API (Interrupt 21h).
Handoff to Configuration Processing
After MSDOS.SYS is placed in memory, control shifts to
the kernel to establish core system tables and data structures. The
kernel then works in tandem with IO.SYS to locate and parse
CONFIG.SYS. During this phase, IO.SYS assists
in loading external hardware drivers specified by DEVICE or
DEVICEHIGH directives, as well as allocating buffers and
system memory. Once CONFIG.SYS routines finish,
IO.SYS facilitates the execution of the command
interpreter, typically COMMAND.COM, which then runs
AUTOEXEC.BAT and presents the command prompt to the
user.