[MTE Explains] Differences Between UEFI and BIOS

uefi_teaserWhenever you need to boot from the USB drive in your computer (or change system settings), you always hear people say that you need to go to the BIOS to change the boot up settings. If you are a Mac user, you are probably wondering what BIOS is, since there is no BIOS to start with. Mac uses UEFI.

In this article, we will clarify the main differences between UEFI and BIOS and which one is better in any given circumstance.

uefi_bios

BIOS and UEFI are two firmware interfaces for computers which work as an interpreter between the operating system and the computer firmware. Both of these interfaces are used at the startup of the computer to initialize the hardware components and start the operating system which is stored on the hard drive.

BIOS works by reading the first sector of the hard drive which has the next device’s address to initialize or code to execute. BIOS also selects the boot device that needs to be initialized for starting the operating system. Since BIOS has been in use since the very beginning, it still works in 16-bit mode, limiting the amount of code that can be read and executed from the firmware ROM.

UEFI does the same task a little differently. It stores all the information about initialization and startup in an .efi file instead of the firmware. This file is stored on the hard drive inside a special partition called EFI System Partition (ESP). The ESP partition will also contain the boot loader programs for the Operating System installed on the computer.

UEFI is meant to completely replace BIOS in the future and bring in many new features and enhancements that can’t be implemented through BIOS. Some of those features are discussed below.

BIOS uses the Master Boot Record (MBR) to save information about the hard drive data while UEFI uses the GUID partition table (GPT). The major difference between the two is that MBR uses 32-bit entries in its table which limits the total physical partitons to only 4. Each partition can only be a maximum of 2TB in size, while GPT uses 64-bit entries in its table which dramatically extends the support for size possibilities of the hard drive. (More on difference between MBR and GPT).

Since UEFI is platform independent, it may be able to enhance the boot time and speed of the computer. This is especially the case when you have large hard drives installed in your computer. This enhancement depends upon how UEFI is configured to run. UEFI can perform better while initializing the hardware devices. Normally this speed enhancement is a fraction of the total boot time, so you will not see a huge difference in overall boot time. Developers can make use of UEFI shell environment which can execute command from other UEFI apps optimizing the performance of the system further.

uefi_uefi

Secure boot is a feature of UEFI that has been implemented in Windows 8 recently. The biggest benefit of UEFI is its security over BIOS. UEFI can allow only authentic drivers and services to load at boot time, making sure that no malware can be loaded at computer startup. Microsoft implemented this feature to counter piracy issues in Windows, while Mac has been using UEFI for quite some time now. Secure Boot works by requiring a digital signature of boot loaders which should require digital signature by the Kernel. This process continues until the operating system is completely started. This secure boot feature is also one of the reason why it is more difficult to install another operating system on a Windows machine.

There are several other benefits of UEFI over BIOS, but it is not very common and is not supported by every computer or device. Its built-in boot manager means that there is no need for separate boot loaders. The biggest benefit of UEFI is that it can work alongside BIOS. It can sit on top of BIOS and work independently. BIOS can be used in devices that do not require large storage or security. You may be using BIOS at the moment, but I would recommend shifting to UEFI, as it is the future while BIOS will fade away slowly.

Have any question? Feel free to ask in the comments below.