IBMBIO.COM is a system file in many DOS operating systems. It contains the system initialization code and all built-in device drivers. It also loads the DOS kernel (IBMDOS.COM) and optional pre-loadable system components (like for disk compression or security),[1][2] displays boot menus, processes configuration files (like CONFIG.SYS) and launches the shell (like COMMAND.COM).
The file is part of IBM's PC DOS (all versions) as well as of DR DOS 5.0 and higher (with the exception of DR-DOS 7.06).[2][3] It serves the same purpose as the file IO.SYS in MS-DOS, or DRBIOS.SYS in DR DOS 3.31 to 3.41.[2][3] (For compatibility purposes with some DOS applications the IBMBIO.COM file name was briefly also used by the IBM version of OS/2 1.0, where it resembled the OS2BIO.COM file as used by Microsoft.)
The file is located in the root directory of the bootable FAT-formatted drive/partition (typically C:\) and typically has the system, hidden, and (since DOS 2.0 also the) read-only file attributes set.[4][5][6][2][3] Under DR-DOS the file may be optionally password-protected as well.[3][nb 1] Under PC DOS, the system attribute is set in order to mark the file as non-movable, a restriction technically not necessary under DR-DOS.[7][5][6][8][3] As IBMBIO.COM is a binary image containing executable code rather than a true COM-style program, the hidden attribute is set to keep the file from being accidentally invoked at the command prompt, which would lead to a crash.[5] This is no longer necessary for DR-DOS 7.02 and higher, because under these systems the file is a fat binary also containing a tiny COM-style stub just displaying some version info and exiting gracefully when not being loaded by a boot sector.[2][5][9]
In the PC bootup sequence, the first sector of the boot volume contains a boot loader called the volume boot record (VBR) and is loaded into memory and executed.
If this is a VBR of PC DOS before 3.3 it would load both system files into memory by itself.[4][10] As the PC DOS VBR cannot mount the FAT file system, the system files have to be stored in the first directory entries on the disk and be located at fixed physical positions on the disk stored in consecutive sectors, conditions of which the SYS utility must take care of.[4][10]
If the loaded boot sector is a PC DOS 3.3 (or newer) VBR, the requirements are slightly relaxed. The system files still have to be stored in the first two root directory entries on the disk, but the VBR will use only the first entry to load the first three sectors of IBMBIO.COM into memory and transfer control to it.[10][nb 2] This part of IBMBIO.COM then contains a somewhat larger boot loader which:
Under DR DOS 5.0 and higher, the first step is skipped, since a DR-DOS VBR is capable of mounting the FAT file system, locate the IBMBIO.COM (or DRBIOS.SYS) file anywhere in the root directory and load it into memory by itself.[7][2][5][11][8][3][nb 3][nb 4] The filename of the IBMBIO.COM file to be loaded by the boot sector is stored in the boot sector rather than necessarily in the first root directory entry, likewise the filename of the IBMDOS.COM file to be loaded by IBMBIO.COM is stored in IBMBIO.COM itself rather than necessarily in the second directory entry on the disk.[12][2][5][3] Also, similar to the IBMBIO.COM loader in the VBR, the IBMDOS.COM loader in IBMBIO.COM is capable of rudimentarily mounting the filesystem as well, therefore it is not necessary for the system files to be stored in the first two directory entries, to reside at fixed physical positions or be stored in consecutive sectors. Consequently, it is also no longer necessary to set the system attribute.[7][5][6][8][3] Instead, the system files can be simply copied to the disk (without SYS), given a DR-DOS boot sector already resides on the disk.[5][6][2][8][3]
Microsoft sometimes calls this component the I/O system,[4][13][14] but it is generally known as DOS BIOS (the DOS-related part of the Basic Input/Output System). The term BIOS was originally coined by Gary Kildall in 1975 for CP/M,[15][16][17][18][19][20] but is also used to describe a similar component or layer in other operating systems by Digital Research, IBM, Microsoft and many others.
In a more generic sense, some vendors refer to this portion as the RAM BIOS of operating systems such as DOS or CP/M in order to contrast it with the built-in ROM BIOS of a machine.[21]
Schulman_1994_Undocumented-DOS
was invoked but never defined (see the help page).Paul_1997_OD-A3
was invoked but never defined (see the help page).Paul_2017
was invoked but never defined (see the help page).Duncan_1988_MS-DOS_Encyclopedia
was invoked but never defined (see the help page).Paul_1997_NWDOSTIP
was invoked but never defined (see the help page).Paul_2001_NWDOSTIP
was invoked but never defined (see the help page).Rosch_1991_SYS
was invoked but never defined (see the help page).Paul_2002
was invoked but never defined (see the help page).Caldera_1998_NEW703
was invoked but never defined (see the help page).Chappell_1994_DOS-Internals
was invoked but never defined (see the help page).Paul_2001
was invoked but never defined (see the help page).Novell_1993_LOADER
was invoked but never defined (see the help page).Paterson_1994_Origins_DOS
was invoked but never defined (see the help page).Paterson_2007_Design-DOS
was invoked but never defined (see the help page).Kildall_1975_BIOS
was invoked but never defined (see the help page).Kildall_1980_CPM
was invoked but never defined (see the help page).Shustek_2016
was invoked but never defined (see the help page).Kildall_1993
was invoked but never defined (see the help page).Fischer_2001_Ewing
was invoked but never defined (see the help page).Fraley_2007_Killian
was invoked but never defined (see the help page).ACT_1984_Apricot-Portable
was invoked but never defined (see the help page).
Cite error: There are <ref group=nb>
tags on this page, but the references will not show without a {{reflist|group=nb}}
template (see the help page).