| The instructions that turn a PC into a useful machine come in three stages, starting with application programs, which are loaded by an operating system, which in turn is loaded by a bootstrap loader in the BIOS (the Basic Input/Output System). There are several in a PC, a good example being the one on the video card that controls the interface between it and the computer. However, we are concerned with the System BIOS, which is a collection of assembly language routines that allow programs and the components of a PC to communicate with each other at low level. It therefore works in two directions at once and is active all the time your computer is switched on. In this way, software doesn't have to talk to a device directly, but can call a BIOS routine instead. However, the BIOS is quite an Achilles Heel and can produce many incompatibilities, so these days it is often bypassed by 32-bit software (DOS relied on it totally) - some functions have migrated to the operating system, starting with Power Management (see ACPI), but NT and W2K have long been replacing BIOS Code with their own Hardware Abstraction Layer (HAL) in the Shadowed ROM area traditionally used by the BIOS after the machine has started.
LinuxBIOS is an Open Source project aimed at replacing it with a little hardware initialization and a compressed Linux kernel that can be booted from a cold start (inside 3 seconds at last count). Linux, once bootstrapped, does not make use of BIOS calls, as it has all the low level hardware drivers itself. In addition, a "trusted BIOS" is being developed that can be included in any system that requires high assurance, such as NetTop. Some access to the Video BIOS is also allowed by some manufacturers.
For the moment, though, the System BIOS will work in conjunction with the chipset, which is really what manages access to system resources such as memory, cache and the data buses, and actually is the subject of this book, as all those advanced settings relate to the chipset and not the BIOS as such.
On an IBM-compatible, you will find the BIOS embedded into a ROM on the motherboard, together with hard disk utilities and a CMOS setup program, although this will depend on the manufacturer (the BIOS and CMOS are separate items). The ROM will usually occupy a 64K segment of upper memory at F000 in an ISA system, and a 128K segment starting at E000 with EISA or similar. It's on a chip so it doesn't get damaged if a disk fails, as sometimes used to happen on the Victor 9000/Sirius, which had the BIOS and system on the boot floppy.
Older machines, such as 286s, will have two ROMs, labelled Odd and Even, or High and Low (they must be in the right slots), because of the 16-bit bus, but these days there tends to be only one-look for one with a printed label (older 386s sometimes had 4). You can get away with one because BIOS code is often copied into Shadow RAM (explained later), and not actually executed from ROM, but from extended memory. In addition, much of the code is redundant once the machine has started, and it gets replaced by the operating system anyway. Some newer machines may actually have two single-chip BIOSes, so if one fails, the back-up kicks in. Well, in theory, anyway - there have been reports of the BIOSes flashing each other out, so later backups have become read-only. |