How BIOS Works
What are the interested properties? - Feedback
from BIOS and Device Driver hackers
The Machine Model
What is BIOS
Every computer with a motherboard includes a
special chip referred to as the BIOS or ROM BIOS (Read Only Memory Basic
Input/Output System). The BIOS includes instructions on how to load basic
computer hardware. The BIOS also includes a test referred to as a POST (Power
On Self Test) which will ensure that the computer meets requirements to
boot up properly. If the computer does not pass the POST you will receive a
combination of beeps indicating what is malfunctioning within the computer.
The BIOS has 4 main functions:
POST - Test computer hardware
insuring hardware is properly functioning before starting process of loading
Bootstrap Loader - Process of
locating the operating system. If capable Operating system located BIOS will
pass the control to it.
BIOS - Software / Drivers which
interfaces between the operating system and your hardware. When running DOS or
Windows you are using complete BIOS support.
CMOS Setup - Configuration
program. Which allows you to configure hardware settings including system
settings such as computer passwords, time, and date.
What role does the BIOS play with during the system boot up?
How does system bootstrap
The system BIOS is what starts the computer running when you turn it on. The
following are the steps that a typical boot sequence involves.
- The internal power supply turns on and
initializes. The power supply takes some time until it can generate reliable
power for the rest of the computer, and having it turn on prematurely could
potentially lead to damage. Therefore, the chipset will generate a reset
signal to the processor (the same as if you held the reset button down for a
while on your case) until it receives the Power
Good signal from the power supply.
- When the reset button is released, the
processor will be ready to start executing. When the processor first starts
up, it is suffering from amnesia; there is nothing at all in the memory to
execute. Of course processor makers know this will happen, so they
pre-program the processor to always look at the same place in the system
BIOS ROM for the start of the BIOS boot program. This is normally location
FFFF0h, right at the end of the system memory. They put it there so that the
size of the ROM can be changed without creating compatibility problems.
Since there are only 16 bytes left from there to the end of conventional
memory, this location just contains a "jump" instruction telling
the processor where to go to find the real BIOS startup program.
- The BIOS performs the power-on
self test (POST). If there are any fatal errors, the boot process stops.
POST beep codes can
be found in this area of the Troubleshooting Expert.
- The BIOS looks for the video card. In
particular, it looks for the video card's built in BIOS program and runs it.
This BIOS is normally found at location C000h in memory. The system BIOS
executes the video card BIOS, which initializes the video card. Most modern
cards will display information on the screen about the video card. (This is
why on a modern PC you usually see something on the screen about the video
card before you see the messages from the system BIOS itself).
- The BIOS then looks for other devices' ROMs
to see if any of them have BIOSes. Normally, the IDE/ATA hard disk BIOS will
be found at C8000h and executed. If any other device BIOSes are found, they
are executed as well.
- The BIOS displays its startup
- The BIOS does more tests on the system,
including the memory count-up test which you see on the screen. The BIOS
will generally display a text error message on the screen if it encounters
an error at this point; these
error messages and their explanations can be found in this part of the
- The BIOS performs a "system
inventory" of sorts, doing more tests to determine what sort of
hardware is in the system. Modern BIOSes have many automatic settings and
will determine memory timing (for example) based on what kind of memory it
finds. Many BIOSes can also dynamically set hard drive parameters and access
modes, and will determine these at roughly this time. Some will display a
message on the screen for each drive they detect and configure this way. The
BIOS will also now search for and label logical
devices (COM and LPT ports).
- If the BIOS supports the Plug and Play
standard, it will detect and configure Plug and Play devices at this time
and display a message on the screen for each one it finds. See
here for more details on how PnP detects devices and assigns resources.
- The BIOS will display a summary
screen about your system's configuration. Checking this page of data can
be helpful in diagnosing setup problems, although it can be hard to see
because sometimes it flashes on the screen very quickly before scrolling off
- The BIOS begins the search for a drive to
boot from. Most modern BIOSes contain a setting that controls if the system
should first try to boot from the floppy disk (A:) or first try the hard
disk (C:). Some BIOSes will even let you boot from your CD-ROM drive or
other devices, depending on the boot
sequence BIOS setting.
- Having identified its target boot drive, the
BIOS looks for boot information to start the operating system boot process.
If it is searching a hard disk, it looks for a master
boot record at cylinder 0, head 0, sector 1 (the first sector on the
disk); if it is searching a floppy disk, it looks at the same address on the
floppy disk for a volume boot sector.
- If it finds what it is looking for, the BIOS
starts the process of booting the operating system, using the information in
the boot sector. At this point, the code in the boot sector takes over from
the BIOS. The
DOS boot process is described in detail here. If the first device that
the system tries (floppy, hard disk, etc.) is not found, the BIOS will then
try the next device in the boot sequence, and continue until it finds a
- If no boot device at all can be found, the
system will normally display an error message and then freeze up the system.
What the error message is depends entirely on the BIOS, and can be anything
from the rather clear "No boot device available" to the very
cryptic "NO ROM BASIC - SYSTEM HALTED". This will also happen if
you have a bootable hard disk partition but forget to set
BIOS is a piece of program. When the system
starts, the register EIP is initialized to FFFF0 to execute the JMP instruction
there, which leads to the execution of the system BIOS code.
BIOS will initialize other devices; initialize
the interrupt vector; find other BIOS programs and run them.
A technique used to increase a computer's speed by using high-speed RAM memory in place of slower ROM memory (RAM is about three times as fast as ROM). On PCs, for example, all code to control hardware devices, such as keyboards, is normally executed in a special ROM chip called the BIOS ROM. However, this chip is slower than the general-purpose RAM that comprises main memory. Many PC manufacturers, therefore, configure their PCs to copy the BIOS code into RAM when the computer boots. The RAM used to hold the BIOS code is called shadow RAM.
Relationship between BIOS and Device Driver