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.