UEFI
UEFI stands for Unified Extensible Firmware Interface.
It is a software interface between platform firmware and an operating system. It provides a clean interface between operating systems and platform firmware at boot time, based on the EFI 1.10 specification from Intel with changes made by the Unified EFI Forum.
UEFI is being touted as a worthy replacement for the basic input/output system (BIOS) firmware interface. All IBM PC-compatible computers used the System BIOS when the system is first powered on. The BIOS would identify system hardware such as graphics cards, hard disk drives, optical disc drives, keyboard, mouse etc. and then seek to hand control of the system over to an operating system (or any bootable software it can access on a peripheral device.)
The BIOS interface has been loaded onto countless computers and notebooks sold around the world, as the de facto standard interface for all IBM PC clones. It does have some problems however, which are highlighted now in particular as systems become more powerful and the architecture they utilize is becoming more varied in the marketplace.
BIOS is technically limited to a 16-bit processing mode and 1MB of addressable space since it was originally designed for systems running on 16-bit Intel 8088 microprocessors. Additionally, for Hard Disk Drives with over 2.2 Terabytes of space, an alternative partitioning scheme than that provided for by the Master Boot Record (MBR) is required, and UEFI provides support for GUID Partition Tables (GPT) to address this issue.
The original EFI specification is still owned by Intel, and the chipmaker exclusively licenses EFI-based products. The UEFI specification that evolved from EFI 1.10 belongs to the Unified EFI Forum however, and the latest UEFI Specification (March 2011) is v2.3, approved in May of 2009.
The main things UEFI can offer over BIOS include...
- CPU-independent architecture. While BIOS is specific to the Intel x86 processor architecture (as it relies on the 16-bit "real mode" interface supported by x86 processors), UEFI is not specific to any microprocessor architecture.
- Architecture-independent drivers. UEFI calls for a microprocessor-independent device driver environment called EFI Byte Code (EBC), requiring an interpreter for any EBC images loaded into the environment.
- Boot from disks larger than 2.2TB. With GPD support, UEFI systems provide the ability to boot from disks larger than 2.2TB with a compatible operating system (Windows Vista & 7 64-bit and Windows Server 2008, and R2.)
- Flexible pre-OS environment. Without as much limitations as BIOS, UEFI allows for a very flexible pre-boot environment, which can include even networking abilities.