
BIOS Notes
BIOS, in computing, stands for Basic Input/Output System also incorrectly known as Basic Integrated Operating System. BIOS refers to the software code run by a computer when first powered on. The primary function of the BIOS is to prepare the machine so other software programs stored on various media (such as hard drives, floppies, and CDs) can load, execute, and assume control of the computer. This process is known as booting up.
The BIOS runs off the PROM, EPROM or, most commonly, flash memory when the computer is powered on and it initializes and sometimes performs the Power-on self-test (POST), a set of diagnostic tests on the hard drive, memory, video, chipset and other hardware. Subsequently, it typically decompresses itself from the BIOS memory space into the system main memory and starts executing from there. Nearly all BIOS implementations can optionally execute a setup program interfacing the nonvolatile BIOS memory (CMOS). This memory holds user-customizable configuration data (time, date, hard drive details, etc.) accessed by BIOS code.
In most modern BIOS implementations, users select which device boots first: CD, hard disk, floppy disk, flash keydrive and the like. This is particularly useful for installing operating systems or booting to Live CDs, and for selecting the order of testing for the presence of bootable media.
BIOS is sometimes called firmware. Before 1990 or so BIOSes were held on ROM chips that could not be altered. As their complexity and need for updates grew, BIOS firmware was stored on EEPROM or flash memory devices. This EEPROM chip sits on a FWH interface, but in some newer boards EEPROM chips are already sitting on a newer, emerging interface named SPI. EEPROM chips are advantageous because they can easily be updated by the user; however, the risk is that an improperly executed or aborted BIOS update can render the computer or device unusable. To avoid BIOS corruption, some new motherboards have a backup BIOS (i.e. they are referred as Dual BIOS boards, Gigabyte even offers a motherboard with quad BIOS). Also, most BIOSes have a "boot block" which is a portion of the ROM that runs first and is not updateable. This code will verify that the rest of the BIOS is intact (via checksum, hash, etc.) before jumping to it. If the boot block detects that the main BIOS is corrupt, then it will typically boot to a floppy so that the user can try flashing again, hopefully with success. Hardware manufacturers frequently issue BIOS updates to upgrade their products, improve compatibility and remove bugs.
Some of the most common BIOSes found are:
The BIOS runs off the PROM, EPROM or, most commonly, flash memory when the computer is powered on. It initializes several motherboard components and peripherals, including:
Finally, it loads the boot loader for the operating system, and transfers control to it. The entire process is known as Power-on self-test (POST). On the original IBM PC, the hardware only needed minimal configuration and POST was indeed used for testing; on modern systems, most of POST actually consists of hardware configuration.
Once system memory is initialized, the BIOS typically copies/decompresses itself into that memory and keeps executing from it.
Nearly all BIOS implementations can optionally execute a setup program interfacing the nonvolatile BIOS memory (CMOS). This memory holds user-customizable configuration data (time, date, hard drive details, etc.) accessed by BIOS code. The 80x86 source code for early PC and AT BIOS was included with the IBM Technical Reference Manual.
In most modern BIOS implementations, users select which device boots first: CD, hard disk, floppy disk, flash keydrive and the like. This is particularly useful for installing operating systems or booting to Live CDs, and for selecting the order of testing for the presence of bootable media.
Some BIOS's allow the user to select the operating system to load (e.g. load another OS from the second hard disk), though this is more often handled by a second-stage boot loader.