An operating system is a resource allocator. It provides an environment for various other application software. These tasks are accomplished in the MS-DOS with three files:

  • IO.SYS
  • MSDOS.SYS
  • COMMAND.COM

IO.SYS

The IO.SYS provides various low-level routines(drivers) that interact with BIOS.
In addition to the drivers it contains a system initialization routine.
The whole content of the file (except for the system initialization routine) are kept in low memory throughout system operation.
In order for a disk to be bootable under MS-DOS (earlier versions 3.x, 4.x), IO.SYS must be the first file in the disk directory, and it must occupy at least the first available cluster on the disk. This is the disk's OS volume boot sector(VBR). However later versions eliminate this requirement.
First during the boot the IO.SYS is loaded to the memory and the control is passed to it. The the boot continues.

MSDOS.SYS

The MSDOS.SYS is listed second in the boot disk's directory and is the second file to be loaded into the memory (low-level memory and resides there throughout the system's operation) during the boot process.
It contains routines that handles OS disk and file access.

COMMAND.COM

The COMMAND.COM file serves as the MS-DOS shell and command processor.
This is the program that one interacts with at the command-line prompt.
COMMAND.COM is the third file that loads when the computer boots.
It is stored in the low level memory along with IO.SYS and MSDOS.SYS.
MS-DOS uses two types of commands in normal operation:

  • resident
  • transient

Resident commands are also called internal commands, are procedures that are coded directly into the COMMAND.COM.
So resident commands execute immediately when called from the command line.
eg: CLS, DIR etc.

Transient commands are also called external commands represent more broader and powerful group of commands.
Transient commands are not loaded with COMMAND.COM.
Instead, the commands are available as small COM or EXE file.
eg: DEBUG
Transient command must be loaded from the disk each time they are executed.
Separating the complex commands from the COMMAND.COM reduces the size.