io.sys (earlier known as ibmbio.com)
Mostly copied from
http://www.revolvy.com
IO.SYS is an essential part of MS-DOS (and Windows 9x). It contained the default MS-DOS device drivers (its software interface) and the DOS initialization program. The operating system kernel is stored in IBMDOS.COM with PC-DOS, MSDOS.SYS with MS-DOS and in IO.SYS after Windows 95.
Boot sequence
In the 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 IO.SYS into memory and transfers control to it.
IO.SYS then:
- Loads the rest of itself into memory.
- Initializes each default device driver in turn (console, disk, serial port, etc).
Click here for Microsoft's list of default devices.
Access is via software interrupts. Click here for more detail.
- Loads the DOS kernel and calls its initialization routine. At this point, "normal" file access is available.
- Processes the CONFIG.SYS file, in MS-DOS 2.0 and higher and Windows 9x.
- Loads COMMAND.COM (or other operating system shell if specified).
- Displays the bootsplash (in Windows 9x). If LOGO.SYS is present, it is used as the bootsplash. Otherwise, the bootsplash in IO.SYS is used.
Disk layout requirements
From https://support.microsoft.com/en-us/kb/66530
- The two first entries of the root directory must be allocated by IO.SYS and MSDOS.SYS, in that order.
- IO.SYS must be the first file stored in the FAT directory table for files.
- The files IO.SYS + MSDOS.SYS must be contiguous
However, v3.3 allows sector 4 and higher to be fragmented.
v5.0 allows the first 3 sectors of IO.SYS to be allocated anywhere (as long as they are contiguous).
- COMMAND.COM can be treated like any ordinary file.
** End of page