The x86 BIOS: Its Limits and Capabilities

In This Chapter

BIOS History and Design Theory

Add-On Card BIOSs

BIOS Updates

EIDE and SCSI Hard Disk Handling

The Handoff to the OS

BIOS History and Design Theory

To configure a computer to handle several OSs, you must be able to coax each
one into booting. This can sometimes be a challenging task because the original
IBM PC was not designed with today's complex configurations in mind, and
we're still living with the legacy of the IBM PC's design. In
particular, the PC's basic input/output system (BIOS)
possesses several limitations that are important for understanding how OSs boot.
In a single-OS system, you generally need not be terribly concerned with these
matters because the OS can generally handle things reasonably well. When you
install several OSs, though, you must be aware of how the BIOS gets the OS
booted because two OSs can interact with the BIOS in different ways, thus
wreaking havoc on one another's configurations.

In this chapter, I
present some information on the structure of the BIOS for Intel x86-based
computers, with a focus on those features that interact with OSs and the boot
process. In Chapter 4, "Boot Loaders: Simple and Complex," I continue
the examination of the boot process with a look at what happens when the OS
takes over the boot process and how you can get several OSs to boot from a
single hard disk.

To understand how the BIOS works, it's important to
understand its history. Many of the limitations that give us grief today were
useful features in the days of the 8088-based IBM PC. System designers continue
to use suboptimal BIOS features because a huge mass of software exists that
relies on these old features. Removing or even updating these features would
break a great deal of important software, so change has been slow and awkward at
best.