BIOS (Basic Input-Output System)
With any computer system a fundamental design problem is how to provide for the basic communication between the processor (see cpu) and the devices used to obtain or display data, such as the video screen, keyboard, and parallel and serial ports.
In personal computers, the BIOS (Basic Input-Output System) solves this problem by providing a set of routines for direct control of key system hardware such as disk
drives, the keyboard, video interface, and serial and parallel ports. In PCs based on the IBm PC architecture, the BIOS is divided into two components. The fixed code is stored on a PROm (programmable read-only memory) chip commonly called the “ROm BIOS” or “BIOS chip.”
This code handles interrupts (requests for attention) from the peripheral devices (which can include their own specialized BIOS chips). During the boot sequence the BIOS code runs the POST (power-on self test) and queries various devices to make sure they are functional. (At this time the PC’s screen will display a message giving the BIOS manufacturer, model, and other information.) Once DOS is running, routines in the operating system kernel can access he hardware by making calls to the BIOS routines. In turn, application programs can call the operating system, which passes requests on to the BIOS routines.
The BIOS scheme has some flexibility in that part of the BIOS is stored in system files (in IBm PCs, IO.SYS and IBmIO.COm). Since this code is stored in files, it can be upgraded with each new version of DOS. In addition, separate device drivers can be loaded from files during system startup as directed by DEVICE commands in CONFIg.SYS, a text file containing various system settings.
For further flexibility in dealing with evolving device capabilities, PCs also began to include CmOS (complementary metal oxide semiconductor) chips that allow for the storage of additional parameters, such as for the configuration of memory and disk drive layouts.
In modern PCs the BIOS setup screen also allows users to specify the order of devices to be used for loading system startup code. This, for example, might allow a potentially corrupted hard drive to be bypassed in favor of a bootable CD or DVD with disk repair tools. Another scenario would allow users to boot from a USB memory stick (see flash dRive) and use a preferred operating system and working
files without disturbing the PC’s main setup.
The data on these chips is maintained by a small on-board battery so settings are not lost when the main system power is turned off.
Additionally, modern PC BIOS chips use “flash memory” (EEPROm or “electrically erasable programmable read-only memory”) to store the code. These chips can be “flashed” or reprogrammed with newer versions of the BIOS, enabling the support of newer devices without having to replace any chips.
Beyond the BIOS
While the BIOS scheme was adequate for the earliest PCs, it suffered from a lack of flexibility and extensibility. The routines were generic and thus could not support all the functions of newer devices. Because BIOS routines for such tasks as graphics tended to be slow, applications programmers often bypassed the BIOS and dealt with devices directly or created device drivers specific to a particular
model of device. This made the life of the PC user more complicated because programs (particularly games) may not work with some video cards, for example, or at least required an updated device driver.
While both the main BIOS and the auxiliary BIOS chips on devices such as video cards are still essential to the operation of the PC, modern operating systems, such as microsoft Windows and applications written for them, generally do not use BIOS routines and employ high performance device drivers instead. (By the mid-1990s BIOSes included built-in support for “Plug and Play,” a system for automatically loading device drivers as needed. Thus, the BIOS is now usually of concern only if there is a hardware failure or incompatibility.)