IO.SYS

Not to be confused with IOSYS

is the DOS BIOS of all versions of MS-DOS and Windows 9x. It contains the default MS-DOS device drivers (hardware interfacing routines) and the DOS initialization program. It is responsible and essential for every version of MS-DOS and Windows 9x to boot.

The file  in some OEM releases (especially non PC-compatible ones) have different names such as ,   and   however they all perform the same task. IBM PC DOS and DR-DOS use the file. The name of this file is not important as long as the boot sector loads it. has  attributes so it cannot be deleted or executed easily.

in Windows 9x has three parts (DOS BIOS, DOS Kernel and a bitmap). Some Emergency Boot Disks created by Windows 9x uses the file name. Similarly, FreeDOS uses a combined system file as well, but names it.

Boot sequence
In the IBM PC bootup sequence, the first sector of the boot disk is loaded into memory and executed. If this is the DOS boot sector, it loads the first three sectors of  into memory and transfers control to it. then:


 * 1) Loads the rest of itself into memory.
 * 2) Initializes each default device driver in turn console, disk, serial port, etc..). At this point, the default devices are available.
 * 3) Loads the DOS kernel and calls its initialization routine. The kernel is stored in  with MS-DOS and in   with Windows 9x. At this point, normal file access is available.
 * 4) Processes  or   with Windows 9x.
 * 5) Processes the  file, in MS-DOS 2.0 and higher.
 * 6) Processes the  file.
 * 7) Loads  or other shells if specified. (In Windows 9x, it automatically loads  )
 * 8) Displays the boot screen in Windows 9x. If  is present, it is used as the boot screen. Otherwise, the bitmap in   is used.

Disk layout requirements

 * The two first entries of the root directory must be  and , in that order. (Except for Windows 9x)
 * must be the first file stored in the FAT directory table for files. (Except for Windows 9x)
 * The files  and   must be contiguous. (Except for Windows 9x)
 * MS-DOS 3.30 allows sector 4 and higher to be fragmented
 * MS-DOS 5.00 allows the first 3 sectors of  to be allocated anywhere (as long as they are contiguous).