Hardware Abstraction System File in MS-DOS 6.22

In MS-DOS 6.22, operating system tasks are split between high-level service management and low-level hardware interaction. This article explains the role of IO.SYS, the specific system file responsible for low-level hardware abstraction. It details how this file communicates directly with the ROM BIOS and standard peripheral devices, its role during the boot sequence, and how it differs from the core DOS kernel file, MSDOS.SYS.

The Hardware Abstraction File: IO.SYS

In MS-DOS 6.22, the system file that handles low-level hardware abstraction is IO.SYS. Located in the root directory of the boot drive as a hidden, system, and read-only file, IO.SYS functions as the hardware-dependent interface layer between the ROM BIOS and the MS-DOS operating system kernel.

Core Functions of IO.SYS

IO.SYS provides the essential device drivers that allow the operating system to interact with standard computer peripherals without requiring individual applications to manage the underlying hardware circuitry. Its primary responsibilities include:

  • Default Device Drivers: It initializes and manages default resident device drivers, including the console (CON), serial communications ports (AUX or COM), parallel printer ports (PRN or LPT), the system real-time clock (CLOCK$), and standard block devices (floppy and hard disk drives).
  • BIOS Interfacing: It translates generic input/output requests into the specific software interrupts required by the computer's ROM BIOS (such as INT 10h for video and INT 13h for disk operations).
  • Driver Extension: It provides the framework for loading third-party or extended device drivers defined in the CONFIG.SYS file via DEVICE or DEVICEHIGH directives.

Role in the Boot Process

During system startup, the boot sector of the active partition reads IO.SYS into memory and executes its initialization code. Once loaded, IO.SYS:

  1. Detects standard system hardware and initializes low-level device tables.
  2. Loads MSDOS.SYS into memory.
  3. Processes the CONFIG.SYS configuration file, allocating system buffers and loading custom device drivers.
  4. Executes the command processor specified in the configuration, which defaults to COMMAND.COM.

IO.SYS vs. MSDOS.SYS

Understanding the distinction between IO.SYS and MSDOS.SYS is critical to understanding MS-DOS architecture:

  • IO.SYS (Hardware-Dependent Layer): Acts as the hardware abstraction layer. It adapts DOS to work with the specific physical hardware and BIOS routines of the machine.
  • MSDOS.SYS (Hardware-Independent Layer): Functions as the core operating system kernel. It provides the MS-DOS API (accessed via INT 21h), managing file systems (FAT), directories, process execution, and memory allocation independent of the underlying physical hardware.