BIOS
From Freepedia
This article is about the software. BIOS can also refer to the Biological Innovation for Open Society.
BIOS, in computing, stands for basic input/output system.
BIOS refers to the software code run by a computer when first powered on. The primary function of 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.
While the name BIOS is an acronym, it may also be a play on the Greek word βιος (bios) life. The term first appeared in the CP/M operating system, describing the part of CP/M loaded during boot time that interfaced directly with the hardware (CP/M machines usually had a simple boot loader in ROM, and nothing else). Most versions of DOS have a file called "IBMBIO.COM" or "IO.SYS" that is analogous to the CP/M disk BIOS.
Contents |
How the BIOS Boots
The BIOS runs off the onboard flash memory when the computer is powered on and it initializes the chipset and the memory subsystem. Subsequently, it uncompresses itself from flash memory into the system main memory and starts executing from there. PC BIOS code also contains diagnostics to ensure critical hardware components, such as keyboard, disk drive, I/O ports etc., are operational, and properly initialized. 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, one can select what boots first: CD, hard disk, floppy disk, flash keydrive and so on. This is particularly useful for installing operating systems or booting to LiveCDs, and for selecting the order of testing for the presence of bootable media.
Some BIOSes 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.
BIOS as firmware
BIOS is sometimes called firmware because it is an integral part of the system hardware. Before 1990 or so BIOSs were held on ROM chips that could not be altered. As their complexity and the need for updates grew, BIOS firmware was stored on EEPROM or flash memory devices that can be easily upgraded by the user. However, 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 ("Dual BIOS" boards). 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 a better image. Hardware manufacturers frequently issue BIOS updates to upgrade their products and remove bugs.
Firmware on adapter cards
A computer system can contain several BIOS firmware chips. The motherboard BIOS typically contains code to access fundamental hardware components such as the keyboard, floppy drives, ATA (IDE) hard disk controllers, and USB human interface, and storage devices. In addition, plug-in adapter cards such as SCSI, RAID, Network interface cards, and video boards often include their own BIOS, complementing or replacing the system BIOS code for the given component.
In some cases, where devices which may also be used by add-in adapters, and actually directly integrated on the motherboard, the add-in ROM may also be stored as separate code on the main BIOS flash chip. It may then be possible to upgrade this "add-in" BIOS (sometimes called an "option ROM") separately from the main BIOS code.
Add-in cards usually only require such an add-in BIOS if they:
- Need to be used prior to the time that the operating system (e.g. they may be used as part of the process which loads (bootstraps) the operating system, and:
- Are not sufficiently simple, or generic in operation to be handled by the main BIOS directly
Older operating systems such as DOS, as well as bootloaders, may continue to make use of the BIOS to handle input and output. However, most modern operating systems will interact with hardware devices directly by using their own device drivers to directly access the hardware. Occasionally these add-in BIOSes are still called by modern operating systems, in order to carry out specific tasks such as preliminary device initialisation.
To find these memory mapped expansion ROMs during boot, PC BIOS implementations scan real memory from 0xC8000 to 0xF0000 on 2 kilobyte boundaries looking for a 0x55 0xaa signature, which is immediately followed by a byte indicating the number of 512 byte blocks the expansion ROM occupies in real memory. The BIOS then jumps to the offset immediately after the size byte, at which point the expansion ROM code takes over and uses BIOS services to provide a user configuration interface, register interrupt vectors for use by post-boot applications, or display diagnostic information.
For UNIX and Windows/DOS systems there is a utility with which you can dump your BIOS firmware software at http://www.linuks.mine.nu/ree/
The BIOS boot specification
If the expansion ROM wishes to change the way the system boots (such as from a network device or a SCSI adapter for which the BIOS has no driver code), it can use the BIOS Boot Specification (BBS) API to register its ability to do so. Once the expansion ROMs have registered using the BBS APIs, the user can select among the available boot options from within the BIOS's user interface. This is why most BBS compliant PC BIOS implementations will not allow the user to enter the BIOS's user interface until the expansion ROMs have finished executing and registering themselves with the BBS API.
The Fall and Rise of the BIOS
Older operating systems such as DOS called on the BIOS to carry out most input-output tasks within the PC, with the introduction of newer operating systems such as Microsoft Windows, and Linux, the BIOS was relegated to principally providing initial hardware setup, and bootstrapping. Once it was up and running, the operating system didn't have to rely on the BIOS for much.
In recent years, however by way of systems such as ACPI, the BIOS has taken on more complex functions such as aspects of power management, hotplug, thermal management etc. This has led to renewed reliance on the BIOS by operating system producers, and an increase in complexity in the BIOS code.
The BIOS Business
The vast majority of PC motherboard suppliers license a BIOS "core", and toolkit from a commercial third party, which creates and maintains such a core. The motherboard manufacturer then customises this BIOS to suit their own hardware - for this reason updated BIOSes are normally obtained directly from the motherboard manufacturer.
Whilst some are happy with this state of affairs, others appear dissatisfied - the commercial BIOS suppliers are perceived by some as being unresponsive, and supplying slow, outdated, buggy, or inflexible code. Such shortcomings may cause dificulties for end-users, operating-system producers, and hardware manufacturers. Such diverse parties as Intel, Microsoft, and sections of the free software community have voiced their disatisfaction with contemporary BIOSs. Some have started projects by which they intend to improve matters.
See also
- LinuxBIOS is a free software project aimed at replacing the normal BIOS.
- Input/Output Base Address
- Advanced Configuration and Power Interface
- machine code
- microchip
- BIOS boot devices
- BIOS Interrupt Calls
- Interface
- Power-On Self Test (POST)
External links
- American Megatrends Inc.
- Award Software international (archived)
- MicroID Research - MRBIOS (archived)
- Phoenix Technologies
- http://www.simtel.net/pub/pd/50185.html
- OpenBIOS homepage
- LinuxBIOS homepage
- BIOS-Kompendium Homepage == BIOS-Info, BIOS-Forum, Selling/programming: (E)EPROMs & FLASH-EEPROMs ("BIOS Chips")
- Biosflash homepage - BIOS Chips Sale + Programming
- BIOS Agent
- The BIOS Boot Specification
- BNOBTC - BIOS Tool collection - (All?) BIOS Tools in one collection
- How to flash a BIOS
- Award bios identification page
- The Adrian's Rojak Pot's Definitive BIOS Optimization Guide
- Wim's BIOS Page
- How to bypass BIOS passwords
- Intel-sponsored open-source BIOS initiative



