From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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]

The file is located in the root directory of the bootable FAT-formatted drive/partition (typically C:\) and typically has the hidden, read-only, and system file attributes set.[4][5][2][3] 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.[4][5][6][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. 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][7]

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

  1. Loads the rest of itself into memory. For this to work, IBMBIO.COM and its directory entry must be located at fixed physical positions on the disk and stored in consecutive sectors, conditions of which the SYS utility must take care of.
  2. Loads the DOS kernel. The kernel is stored in IBMDOS.COM.
  3. Initializes each default device driver in turn (console, disk, serial port, et cetera). At this point, the default devices are available.
  4. Calls the DOS kernel's initialization routine.

Under DR-DOS, the first step is skipped, since a DR-DOS boot sector mounts the FAT filesystem, locates the IBMBIO.COM (or DRBIOS.SYS) file in the root directory and loads it into memory by itself.[2][8][6][3] It is not necessary for the IBMBIO.COM file to reside at a fixed physical position or be stored in consecutive sectors, therefore it is no longer necessary to set the system attribute.[4][5][6][3] Instead, it can be simply copied to the disk (without SYS), given a DR-DOS boot sector already resides on the disk.[4][5][2][6][3]

Microsoft sometimes calls this component the I/O system,[9] but it is generally known as DOS BIOS (the DOS-related part of the Basic Input/Output System). The term was originally coined by Gary Kildall in 1975 for CP/M,[10][11][12][13][14][15] but is also used to describe a similar component or layer in other operating systems by Digital Research, IBM, Microsoft and many others.

See also[edit]


  1. ^ Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994). Undocumented DOS - A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 (2 ed.). Addison Wesley. ISBN 0-201-63287-X. ISBN 978-0-201-63287-3. 
  2. ^ a b c d e f g Paul, Matthias (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. 
  3. ^ a b c d e f g Paul, Matthias (2017-08-14) [2017-08-07]. "The continuing saga of Windows 3.1 in enhanced mode on OmniBook 300". MoHPC - the Museum of HP Calculators. Archived from the original on 2017-10-06. Retrieved 2017-10-06. […] the DR-DOS FDISK does not only partition a disk, but can also format the freshly created volumes and initialize their boot sectors in one go, so there's no risk to accidentally mess up the wrong volume and no need for FORMAT /S or SYS. Afterwards, you could just copy over the remaining DR-DOS files, including the system files. It is important to know that, in contrast to MS-DOS/PC DOS, DR-DOS has "smart" boot sectors which will actually "mount" the file-system to search for and load the system files in the root directory instead of expecting them to be placed at a certain location. Physically, the system files can be located anywhere and also can be fragmented. […] 
  4. ^ a b c d Paul, Matthias (1997-07-30). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP (e-book) (in German) (edition 3, release 157 ed.). Archived from the original on 2016-11-05. Retrieved 2012-01-11.  NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.
  5. ^ a b c d Paul, Matthias (2001-04-09). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP (e-book) (in German) (edition 3, release 183 ed.). 
  6. ^ a b c d Paul, Matthias (2002-02-20). "Can't copy". opendos@delorie. Archived from the original on 2017-10-06. Retrieved 2017-10-06. […] The DR-DOS boot sector loads the whole IBMBIO.COM file into memory before it executes it. It does not care at all about the IBMDOS.COM file, which is loaded by IBMBIO.COM. […] The DR-DOS boot sector […] will find the […] kernel files as long as they are logically stored in the root directory. Their physical location on the disk, and if they are fragmented or not, is don't care for the DR-DOS boot sector. Hence, you can just copy the kernel files to the disk (even with a simply COPY), and as soon as the boot sector is a DR-DOS sector, it will find and load them. Of course, it is difficult to put all this into just 512 bytes, the size of a single sector, but this is a major convenience improvement if you have to set up a DR-DOS system, and it is also the key for the DR-DOS multi-OS LOADER utility to work. The MS-DOS kernel files must reside on specific locations, but the DR-DOS files can be anywhere, so you don't have to physically swap them around each time you boot the other OS. Also, it allows to upgrade a DR-DOS system simply by copying the kernel files over the old ones, no need for SYS, no difficult setup procedures as required for MS-DOS/PC DOS. You can even have multiple DR-DOS kernel files under different file names stored on the same drive, and LOADER will switch between them according to the file names listed in the BOOT.LST file. […] 
  7. ^ DR-DOS 7.03 WHATSNEW.TXT - Changes from DR-DOS 7.02 to DR-DOS 7.03. Caldera, Inc. 1998-12-24. 
  8. ^ Paul, Matthias (2001-01-17). "FAT32 in DR-DOS". opendos@delorie. Archived from the original on 2017-10-06. Retrieved 2017-10-06. […] The DR-DOS boot sector […] searches for the IBMBIO.COM (DRBIOS.SYS) file and then loads the *whole* file into memory before it passes control to it. […] 
  9. ^ Duncan, Ray (1988). The MS-DOS Encyclopedia - version 1.0 through 3.2. Microsoft Press. ISBN 1-55615-049-0. 
  10. ^ Kildall, Gary Arlen (June 1975). CP/M 1.1 or 1.2 BIOS and BDOS for Lawrence Livermore Laboratories. An excerpt of the BDOS.PLM file header in the PL/M source code of CP/M 1.1 or CP/M 1.2 for Lawrence Livermore Laboratories (LLL) 
    /* C P / M   B A S I C   I / O    S Y S T E M    (B I O S)
                        COPYRIGHT (C) GARY A. KILDALL
                                 JUNE, 1975                   */
    /*  B A S I C   D I S K    O P E R A T I N G   S Y S T E M  (B D O S)
                        COPYRIGHT (C) GARY A. KILDALL
                                JUNE, 1975                          */
  11. ^ Kildall, Gary Arlen (January 1980). "The History of CP/M, The Evolution of an Industry: One Person's Viewpoint". 5 (1). Dr. Dobb's Journal of Computer Calisthenics & Orthodontia: 6–7. Archived from the original on 2016-11-24. Retrieved 2013-06-03. […] The first commercial licensing of CP/M took place in 1975 with contracts between Digital Systems and Omron of America for use in their intelligent terminal, and with Lawrence Livermore Laboratories where CP/M was used to monitor programs in the Octopus network. Little attention was paid to CP/M for about a year. In my spare time, I worked to improve overall facilities […] By this time, CP/M had been adapted for four different controllers. […] In 1976, Glenn Ewing approached me with a problem: Imsai, Incorporated, for whom Glenn consulted, had shipped a large number of disk subsystems with a promise that an operating system would follow. I was somewhat reluctant to adapt CP/M to yet another controller, and thus the notion of a separated Basic I/O System (BIOS) evolved. In principle, the hardware dependent portions of CP/M were concentrated in the BIOS, thus allowing Glenn, or anyone else, to adapt CP/M to the Imsai equipment. Imsai was subsequently licensed to distribute CP/M version 1.3, which eventually evolved into an operating system called IMDOS. […] 
  12. ^ Shustek, Len (2016-08-02). "In His Own Words: Gary Kildall". Remarkable People. Computer History Museum. 
  13. ^ Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott; Kildall, Kristin, eds. "Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry" (Manuscript, part 1). Kildall Family. Archived (PDF) from the original on 2016-11-17. Retrieved 2016-11-17. 
  14. ^ Killian, A. Joseph "Joe" (2001). "Gary Kildall's CP/M: Some early CP/M history - 1976-1977". Thomas "Todd" Fischer, IMSAI. Retrieved 2013-06-03. […] When we failed to produce an operating system in a timely manner, Glenn started talking with Gary about CPM […] It took several months of twisting Gary's arm to get Gary to port it to the 8080. The final success came when Glenn talked Gary into just separating the I/O from the rest of it, with Glenn promising to re-write the I/O module for the IMSAI 8080 (which he did). So CPM on the IMSAI was a joint effort between Glenn and Gary. […] 
  15. ^ Fraley, Bob; Spicer, Dag (2007-01-26). "Oral History of Joseph Killian, Interviewed by: Bob Fraley, Edited by: Dag Spicer, Recorded: January 26, 2007, Mountain View, California, CHM Reference number: X3879.2007," (PDF). Computer History Museum. Retrieved 2013-06-03. Killian: "[…] Glenn […] would be talking with Gary, and he started twisting Gary's arm. He said, "Hey Gary, why can't we run this in this IMSAI?" "The I/O's all different, won't run." But Glenn persists and finally makes a deal with Gary. He says, "Okay Gary, if you split out the I/O, I'll write the BIOS, basic I/O's system," and Glenn named it then. "We'll split it out separately. I'll write that part, as long as you can make a division in the program there." And he got Gary to do that and Glenn put those two pieces together and was running Gary's CP/M on an IMSAI. Glenn let us know that, and it wasn't too much later than Bill was down there making arrangements with Gary Kildall to license CP/M. […] Now that the BIOS is separated out, anybody could write a BIOS for their machine, if it was 8080-based, and run this, so he started selling that separately under the company Digital Research that he formed and did quite well."