Out with BIOS, in with UEFI.

Ever since the computer was born, there needed to be a program to tell the CPU where things are and how to use them. In 1981 the IBM 5150 introduced the BIOS (Basic Input/Output System) to the IBM-PC market. The IBM 5150 had an 8088 16bit (16bit internal bus, 8bit external bus) processor, so the BIOS chip was limited to 16 bits and 1MB of memory space. Years went by and the CPU became more powerful, with a wider bus and more memory access. However, the BIOS remained the same, and retained it’s 16bit bus and 1MB memory limit, depending on the PC-AT hardware platform.

Enter EFI/UEFI (Extensible Firmware Interface/Unified Extensible Firmware Interface respectively). EFI was introduced in the mid-1990’s with the Intel-HP Itanium processor systems as the older BIOS was considered too limited for large server systems. In 2005 Intel dropped the EFI platform and handed it over to the Unified EFI Forum, which then became the UEFI.

There are several advantages to UEFI over the BIOS. UEFI boots faster, has the ability to boot from very large hard disks over 2TB, drops the MBR (master boot record) for the GUID Partition table, architecture and drivers are CPU-independent, an extensive GUI with mouse and network capabilities are possible, and ACPI and SMBIOS are also included as these are not dependent on the 16bit limitations of the older BIOS.

UEFI requires the Operating System and the Firmware to be matched. Therefore, 64bit UEFI can only run a 64bit Operating System. Microsoft Windows started support for UEFI beginning with 64bit Windows Vista Service Pack 1 and Windows 7 64bit versions support UEFI, as does Linux and Intel Mac’s OSX.

UEFI does not boot the same as a BIOS does. It requires a special partition table that points to a partition that has a special file that UEFI can load rather than just relying on the boot sector. Since the UEFI boot loader is a kind of UEFI application, it can be used to add extra functionality, such as choosing which Operating System to boot from. It can also auto-detect the boot loader so that it can be used to boot from removable media.

Several Virtualization platforms have implemented  UEFI. Virtualbox 3.1+, VMware Fusion 3+,  and QEMU can be used with UEFI. Virtualbox with UEFI will only work with Linux/Unix Operating Systems, so Windows will not work on Virtualbox using UEFI.

Leave a Reply