The days of the good ol’ BIOS are numbered. The Unified Extensible Firmware Interface (UEFI) will introduce a more powerful solution able to better cope with the demands of today’s diverse hardware. In a nutshell, UEFI is an interface that takes care of handing over the pre-boot environment to the operating system. We took a quick look at UEFI and found some imminent issues.
You may have already heard about UEFI (or EFI, which was the initial approach). Intel initiated EFI in 2003 with the Itanium’s IA64 architecture under the title Boot Initiative. The concept was handed over to the Unified EFI Forum, which managed and promoted the new standard for the entire industry. AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft, and Phoenix are the leading members today. A BIOS relies on the x86 architecture’s 16-bit real mode, but UEFI introduces full hardware independence and interfaces split into boot and runtime services. These aim at high standardization while introducing enough flexibility for manufacturers to differentiate their products.
The BIOS: Antique and Still Prevalent
Some 25 years ago, the BIOS was designed to launch operating systems. The first computers used punch cards as a launch target before these were replaced by ROMs with basic interpreters. Today we can chose a plethora of targets, including floppy disks, hard drives, optical drives, and network locations. However, actual component operation is still subject to the particular operating system through device drivers, whereas EFI allows for OS-indepentent driver support through its own driver model.
There have been several attempts to modify the initial BIOS concept. IBM introduced a modified system design, the PS/2, in 1988, partly to fight off BIOS clones. Its 32-bit Multi Channel Architecture (MCA) with ABIOS can be seen as a way around copycat BIOS implementations. Advanced RISC Computing (ARC) aimed at uniting the boot environments of the MIPS and Alpha platforms in the 1990s, but it lacked an evolutionary path, extensibility, and possible system diversity. PowerPC and SPARC have their Open Firmware (OF) and Common Hardware Reference Platform (CHRP), which sort of worked against ACPI by not embracing it.
In the end, the BIOS is still here and still does what it has been doing for the last 25 years: making sure your operating system can boot. It was never designed for today’s massive diversity of hardware. It’s still stuck with 16-bit interfaces and software interrupts, interrupt routing and maximum precision timers, limited ROM execution space (1 MB) and image size, a limited number of initializeable devices (which is critical in the server space), proprietary extensions, and missing modularity—just to name a few issues.
Operating systems started to support the platform interface design by 2007, but most Windows versions, such as Vista with SP1 and Windows Server 2008, only offered support on the 64-bit editions. Unfortunately, we found that industry support for UEFI is still very weak, and there are some shortcomings on the storage end.