IO.SYS is an essential part of MS-DOS and Windows 9x. It contains the default MS-DOS device drivers[1] (hardware interfacing routines) and the DOS initialization program.

Boot sequence

edit

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:

  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 MSDOS.SYS with MS-DOS and in IO.SYS with Windows 9x. At this point, "normal" file access is available.
  4. Processes the MSDOS.SYS file with Windows 9x.
  5. Processes the CONFIG.SYS file, in MS-DOS 2.0 and higher and Windows 9x.
  6. Loads COMMAND.COM (or other operating system shell if specified).
  7. 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.

The IO.SYS filename was also used by Disk Control Program [de] (DCP), an MS-DOS derivative by the former East-German VEB Robotron.[2][3]

IBM PC DOS and DR DOS use the file IBMBIO.COM for the same purpose; it in turn loads IBMDOS.COM.

In Windows 9x, the IO.SYS not only contains the DOS BIOS, but also holds the DOS kernel, which previously resided in MSDOS.SYS. Under some conditions, Windows 9x uses the alternative filenames WINBOOT.SYS[4] or JO.SYS instead. When Windows 9x is installed over a preexisting DOS install, the Windows file may be temporarily named IO.W40 for as long as Windows' dual-boot feature has booted the previous OS. Likewise, the IO.SYS of the older system is named IO.DOS for as long as Windows 9x is active.

DR-DOS 7.06 (only this version) also follows this scheme and the IO.SYS filename in order to become bootable via MS-DOS boot sectors.

Similarly, FreeDOS uses a combined system file as well, but names it KERNEL.SYS.

Disk layout requirements

edit
  • The two first entries of the root directory must be allocated by IO.SYS and MSDOS.SYS, in that order.[5][6]
  • IO.SYS must be the first file stored in the FAT directory table for files.[5][6]
  • The files IO.SYS and MSDOS.SYS must be contiguous.[5][6]

However, MS-DOS version 3.3 allows sector 4 and higher to be fragmented; version 5.0 allows the first 3 sectors of IO.SYS to be allocated anywhere (as long as they are contiguous).[nb 1][7][5][8]

COMMAND.COM can be treated like any ordinary file.

See also

edit

Notes

edit
  1. ^ The MS-DOS 5.0 manual incorrectly states that the system files no longer need to be contiguous. However, for the boot process to work the system files still need to occupy the first two directory entries and the first three sectors of IO.SYS still need to be stored contiguously. SYS continues to take care of these requirements.

References

edit
  1. ^ "MS-DOS Device Driver Names Cannot be Used As File Names". Revision 2.0. Microsoft. 2003-05-12. KB74496. Q74496. Archived from the original on 2012-07-21.
  2. ^ Anwenderdokumentation - Anleitung für den Systemprogrammierer - MOS DCP 1700 (PDF). 3.20 (in German). Dresden, East-Germany: VEB Robotron-Projekt Dresden. 1988-01-29. C3013-0000-0 M3030, Textdiskette DCP1700 T1/2 C3010-9991-2M3020, Disk-Nr.: 5962 /88 ROBOTRON PROJEKT DRESDEN KA2 DD-DS 80*16*256. Archived (PDF) from the original on 2021-08-29. Retrieved 2021-12-03.
  3. ^ Kurth, Rüdiger; Groß, Martin; Hunger, Henry (2016-11-29) [2007]. "Betriebssystem DCP". www.robotrontechnik.de (in German). Archived from the original on 2019-04-03. Retrieved 2019-04-28.
  4. ^ Paul, Matthias R. (1997-10-02) [1997-09-29]. "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT and BOOT.TXT - A short description of how OpenDOS is booted". Archived from the original on 2003-10-04. Retrieved 2009-03-29. [1] (NB. Also has a few bits on how other DOSes are booted.)
  5. ^ a b c d "SYS.COM Requirements in MS-DOS Versions 2.0–6.0". Revision 2.0. Microsoft. 2003-05-23. KB66530. Q66530. Archived from the original on 2012-07-17.
  6. ^ a b c Zbikowski, Mark; Allen, Paul; Ballmer, Steve; Borman, Reuben; Borman, Rob; Butler, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Farmer, Rick; Gates, Bill; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W.; Kermaani, Kaamel; King, Adrian; Koch, Reed; Landowski, James; Larson, Chris; Lennon, Thomas; Lipkie, Dan; McDonald, Marc; McKinney, Bruce; Martin, Pascal; Mathers, Estelle; Matthews, Bob; Melin, David; Mergentime, Charles; Nevin, Randy; Newell, Dan; Newell, Tani; Norris, David; O'Leary, Mike; O'Rear, Bob; Olsson, Mike; Osterman, Larry; Ostling, Ridge; Pai, Sunil; Paterson, Tim; Perez, Gary; Peters, Chris; Petzold, Charles; Pollock, John; Reynolds, Aaron; Rubin, Darryl; Ryan, Ralph; Schulmeisters, Karl; Shah, Rajen; Shaw, Barry; Short, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "Technical advisors". The MS-DOS Encyclopedia: versions 1.0 through 3.2. By Duncan, Ray; Bostwick, Steve; Burgoyne, Keith; Byers, Robert A.; Hogan, Thom; Kyle, Jim; Letwin, Gordon; Petzold, Charles; Rabinowitz, Chip; Tomlin, Jim; Wilton, Richard; Wolverton, Van; Wong, William; Woodcock, JoAnne (Completely reworked ed.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-049-0. LCCN 87-21452. OCLC 16581341. (xix+1570 pages; 26 cm) (NB. This edition was published in 1988 after extensive rework of the withdrawn 1986 first edition by a different team of authors. [2])
  7. ^ Chappell, Geoff (January 1994). Schulman, Andrew; Pedersen, Amorette (eds.). DOS Internals. The Andrew Schulman Programming Series (1st printing, 1st ed.). Addison Wesley Publishing Company. ISBN 978-0-201-60835-9. (xxvi+738+iv pages, 3.5"-floppy [3][4]) Errata: [5][6][7]
  8. ^ Kim, Mark K. (2004-09-24). "Re: [vox-tech] rescuing winxp?". mail-archive.com. Archived from the original on 2019-04-06. Retrieved 2019-04-06.