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.