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 (AUXorCOM), parallel printer ports (PRNorLPT), 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 10hfor video andINT 13hfor disk operations). - Driver Extension: It provides the framework for
loading third-party or extended device drivers defined in the
CONFIG.SYSfile viaDEVICEorDEVICEHIGHdirectives.
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:
- Detects standard system hardware and initializes low-level device tables.
- Loads
MSDOS.SYSinto memory. - Processes the
CONFIG.SYSconfiguration file, allocating system buffers and loading custom device drivers. - 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.