- The x86 BIOS: Its Limits and Capabilities
- 16- and 32-Bit Code
- The BIOS as Driver for DOS
- Modern Uses of the BIOS
- What BIOS Do You Have?
- Add-On Card BIOSs
- Video BIOSs
- Boot BIOSs for SCSI and Networking
- Additional BIOSs
- BIOS Updates
- EIDE and SCSI Hard Disk Handling
- Understanding CHS Geometry Limits
- Getting Around the 1024-Cylinder Limit
- Common BIOS Disk Utilities
- The Handoff to the OS
Modern Uses of the BIOS
With a few exceptions, such as OS/2's optional BIOS hard disk driver and Windows 9x's capability to use old DOS access methods, modern OSs don't use the BIOS as a driver for hardware. These systems rely on the BIOS for other functions, however. Mostly these functions relate to handling the boot process before the OS gains control, after which point the BIOS might as well not exist. Occasionally these BIOS functions influence the further operation of the OS, however, and these functions can influence OSs in different ways.
The POST One of the modern functions of the BIOS is the power-on self-test (POST). As its name implies, the POST performs basic tests of the system's functionality when you turn on a computer. Among other things, the POST determines how much memory you have installed, runs a limited test of the memory, and checks for the presence and basic function of other components, such as the keyboard. If the POST determines that hardware is defective, the BIOS stops the boot process and signals an error in some way, such as by beeping. The POST error codes vary from one BIOS to another.
Boot Handler Perhaps the most vital BIOS function is as a means of booting an OS. When a computer starts, the CPU is designed to look in particular memory locations for code to execute. In an Intel-based PC, these memory locations contain BIOS code that performs various functions, including the POST. After the POST is complete, the BIOS looks for a hard disk, floppy disk, or some other bootable medium (such as a network boot server). If it finds such a medium, the BIOS passes control to that device. The key point here is that without the BIOS, the PC could not boot.
The method the BIOS uses to pass control to the OS is standardized and fixed in the BIOS. This fact, along with standards for hard disk layout, plays an important role in determining how different OSs can load themselves, and in the design of tools to help you choose one OS or another at boot time. In particular, these two factors determine the methods that can be used to partition a disk, or break it up into segments so that different OSs can coexist peacefully. Non-Intel PCs use different disk partitioning methods than do Intel PCs, so you might not be able to move a disk from one architecture to another and retrieve data from the disk, even if the target OS contains appropriate drivers for the original computer's filesystems.
Some OSs, such as Linux, include support for foreign hardware's disk partitioning schemes. Such support enables you to remove a hard disk from, say, a Macintosh, and retrieve data from that disk on a Linux computer. Even if you were to install Linux on that disk, however, you wouldn't be able to boot from it using the standard BIOS boot routines because the BIOS wouldn't find intelligible boot code on the disk. n
Option Setter One final modern function of the BIOS is as a means of setting assorted hardware options. PC hardware has become quite complex, and depending on the way you configure your system, you might want or need to adjust various aspects of how that hardware works. In some cases, you might need to do this configuration so that it's in effect at the time the OS loads, so the only option is to do it using the BIOS.
The particular BIOS tool that's used is called the complementary metal oxide semiconductor (CMOS) setup utility because it's used to store options in a special type of non-volatile memory known as CMOS RAM. The computer accesses its CMOS RAM to set various options, such as
Hard disk geometryHow the system interprets hard disk addressing schemes.
Performance featuresSettings related to the speed of memory access, transfer modes for various peripherals, and so on.
On-board peripheralsWhether to enable or disable hardware such as serial ports, and how to configure these devices.
SecurityPassword protection to prevent unauthorized access to the system.
PnP configurationSettings that control how the BIOS enables plug-and-play (PnP) plug-in cards.
APM supportSettings that control the activation and timing of advanced power management (APM) features.
System clockThe date and time, as recorded by the computer.
Some BIOS options might not be present on some systems, particularly older ones. For example, many 486 and older computers lacked PnP and APM features. n
The details of how you set these BIOS options varies substantially from one system to another. In general, you press a particular key or keys, such as Del or F2, during the boot process to enter the CMOS setup utility. Most computers include an onscreen message at the appropriate time in the bootup process for you to press this key to enter the setup utility. Figure 3.2 shows a typical BIOS setup screen, but each computer's BIOS is unique, so yours might look slightly or substantially different. Most CMOS setup utilities consist of several screens, one for each class of settings. The screens in Figure 3.2 are called Main, Advanced, Security, Power, and Boot, with an additional item called Exit to leave the utility (these are the labels on the second line).
Figure 3.2 Most CMOS setup utilities use simple keyboard commands, and many list available options at the bottom of the screen.
You might want to familiarize yourself with the CMOS setup options on your computer. Because each computer is unique, I can't provide detailed instructions on what you need to do to modify your settings for any given OS. Your computer or motherboard probably has a manual that describes the BIOS options. If you don't have a manual or find it unhelpful, the Web site http://www.ping.be/bios/ might have the information you seek. Fortunately, most OSs work well with the same settings that suit other OSs.
Although you should familiarize yourself with your CMOS settings, I recommend you be cautious about changing them. It's often possible to configure your CMOS in such a way that your computer won't boot any OS. If you find yourself in this situation and can't remember what you changed, try to find a CMOS setup utility option to restore default settings. (Figure 3.2 reveals that F9 will accomplish this task for the CMOS setup utility depicted in that figure.) This option will usually make your system bootable once more.
If you find that an OS has difficulties locating hardware or memory, you might want to try adjusting CMOS settings. The following are some options you might want to investigate:
Memory holesBIOSs sometimes place a "hole" in memory at 16MB or 64MB. Some OSs (especially OS/2) sometimes misinterpret this hole as the end of memory, so they don't use all the RAM in the computer. Disabling this hole can recover this lost RAM.
PnP settingsWhen using a PnP-aware OS, it's generally best to let the OS configure PnP devices. Sometimes you might want to make the BIOS do the configuration, though. BIOSs provide varying options for how they assign system resources to PnP devices. You'll have to experiment if you have problems with resource conflicts in a new OS. Be sure to test existing OSs after making changes, too!
APM settingsSome OSs have problems dealing with APM features, so you might need to disable these in the BIOS.
Hard disk geometryYou might need to adjust your hard disk geometry settings to get all your OSs to coexist on one drive. I discuss this feature in more detail later in this chapter.