In a “modern” setting, the old-fashioned BIOS has severe limitations, even though it has seen numerous tweaks, improvements, extensions, and additions over the years. Consider some examples:
- x86 computers always come up in the IA-32 “real mode” — an emulation of the ancient 80886/8088 Intel processors. The BIOS executes in this mode, which is severely limited (particularly for an ambitious BIOS, say, one that wants to provide a powerful pre-boot environment). Effective memory addresses in real mode are calculated by multiplying the segment (a 16-bit number) by 16, and adding the offset (another 16-bit number) to it. Thus, a segment is 16-bits wide — restricted to 65,536 bytes (64 KB), and a memory address is 20-bits wide — restricted to 1,048,576 bytes (1 MB). In particular, the IP (instruction) register is also 16-bits wide — placing a 64 KB size limit on the code segment. Memory is a very limited resource in real mode.
More on the death of the BIOS
The Extensible Firmware Interface (EFI) is being proposed as the new alternative to the old BIOS. The BIOS sufferes from many limitations, which have been spotlighted by the advent of more readily available 64bit proccessors. kernelthread.com takes a look at the issues and benefits of this new firmware interface for motherboards.