Extensible Firmware Interface
|
The Extensible Firmware Interface (EFI) is a new BIOS specification designed for use with trusted computing. It allows vendors to create drivers which cannot be reverse engineered. It also allows operating systems to run in a sandbox, letting networking and memory management be handled by the firmware. Hardware access is converted to calls to the EFI drivers. The EFI BIOS is used to select the operating system, replacing boot loaders.
EFI got its start with Intel's server architecture IA-64 but has been migrating into the traditional PC desktop market on some of Intel's newer chip sets. It has been touted as a badly needed update to original IBM PC BIOS which has not been significantly updated since its release in 1981.
Though the traditional PC BIOS has been extended with some new features, notably the Advanced Configuration and Power Management Interface (ACPI) and System Management BIOS (SMBIOS), its fundamental functionality, structure, and design has remained the same. Rather than toss these extensions aside, EFI is slated to incorporate both ACPI and SMBIOS functionality which should help keep development costs and OS compatibility issues to a minimum.
Ideally, the EFI development model will extend the concept of hardware drivers to the lowest level of the PC structure. Currently all motherboard device initialization is done through the BIOS designed by a BIOS vendor. With the EFI model, however, manufacturers of motherboard hardware will be free to write their own driver for their own hardware the way companies making peripheral devices write drivers for the OS.
Among other things, this frees EFI to initialize all PC hardware before turning control over to the OS. This feature could be used, for example, to allow the PC to connect to the Internet and retrieve drivers before an OS is even installed.
Additionally, though EFI was initially developed by Intel, its apparent intention is to release at least one open-source form of the standard. This should provide inspiration for the standard to spread into the entire PC market. Note, however, that the specification could still be subject to patents that may preclude an open source implementation being distributed (in particular, EFI mandates the FAT filesystem filesystem and Microsoft's FAT license precludes open source implementations).
Another advance EFI will allow is for the PC compatible CPU to power up to a fully functional state. Under the traditional PC BIOS, to maintain backwards compatiblility, the CPU must power on in a degraded condition and must wait before it can operate at full capacity.
EFI also provides for a small shell environment. Rather than booting directly into a full OS, the EFI end user can boot to EFI shell. The EFI shell is an optional intermediate step in the booting process which can be used to run utilities and the like. EFI shells capabilities are very nearly that of MS-DOS 3.2, but with access to the entire map of installed memory. In that sense, it is similar to Open Firmware, the hardware-independent firmware used in PowerPC-based Apple Macintosh computers.
Unlike traditional BIOS, further extensions to EFI capabilities can come from virtually any non-volatile storage devices. For example, an OEM can sell their systems with EFI hidden partitions which can uniquely add to the basic functionality of the standard EFI stored on the motherboard's flash part. In fact, the unlimited extensions possible in EFI might well remove the home computers dependency on full-fledged OS's.
External link
- Intel page on EFI (http://www.intel.com/technology/efi/)