What is UEFI and How It Differ from BIOS?
The Unified Extensible Firmware Interface (UEFI) is a publicly available specification that defines a software interface between an operating system and platform firmware. It runs when the computer is booted. It initializes the hardware and loads the operating system into the memory.
UEFI replaces the Basic Input Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers, with most UEFI firmware implementations support for BIOS services. UEFI can support remote diagnostics and repair computers, even with no operating system installed.
Intel developed the original Extensible Firmware Interface (EFI) specifications. In 2005, UEFI deprecated EFI 1.10 (the final release of EFI). The Unified EFI Forum is the industry body that manages the UEFI specifications throughout.
UEFI has many new features and advantages that cannot be achieved through the traditional BIOS, and it is aimed to replace the BIOS in the future completely. UEFI stores all the information about initialization and startup in a .efi file, a file stored on 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. Because of this partition, UEFI can directly boot the operating system and save the BIOS self-test process, which is important for UEFI's faster booting.
What does UEFI do?
UEFI defines a new method of communicating OS and platform firmware, providing a lightweight BIOS alternative that uses only the information needed to launch the OS boot process. UEFI provides enhanced computer security features and supports most existing BIOS systems with backward compatibility.
UEFI is programmable, enabling original equipment manufacturer developers to add applications, drivers, and UEFI to function as a lightweight OS. UEFI contains platform-related data tables, boot, and runtime service calls the OS loader uses. This information defines the required interfaces and structures that must be implemented for firmware and hardware devices to support UEFI.
BIOS is generally considered a vestige from earlier computing, whereas UEFI is regarded as the wave of the future. However, for ease of understanding, some information technology users refer to the processes collectively as UEFI BIOS, despite their substantial differences.
What makes BIOS Outdated?
Present in all IBM PC-compatible personal computers, BIOS has been around since the late 1970s. Since then, it has incorporated some major improvements, such as adding a user interface and advanced power management functions, allowing BIOS to configure the PCs and easily create better power management plans. But still, it has not advanced as much as computer hardware and software technology since the 70s.
Limitations of BIOS
BIOS have the following limitations, such as:
- BIOS can boot from drives of less than 2 TB. 3 TB or above drives are now standard, and a system with a BIOS can't boot from them.
- The BIOS must run in 16-bit processor mode and only has 1 MB of space to execute in. It has trouble initializing multiple hardware devices at once, which leads to a slower boot process when initializing all the hardware interfaces and devices on a modern PC.
- It cannot initialize multiple hardware devices at once, thus leading to a slow booting process.
Booting Process with UEFI and Booting Process with BIOS
In a computer, boot procedure or computer boot works in the following steps, such as:
- Press the power button on your desktop. The CPU starts up but needs some instructions to work on. Since the main memory is empty at this stage, the CPU defers to load instructions from the firmware chip on the motherboard and begins executing instructions.
- The firmware code does a Power On Self Test (POST), initializes the remaining hardware, detects the connected peripherals devices, and checks if all connected devices are healthy. You might remember it as a 'beep' that desktops used to make after POST is successful.
- Finally, the firmware code cycles through all storage devices and looks for a boot-loader (usually located in the disk's first sector). If the boot-loader is found, then the firmware hands over control of the computer to it.
- So now that the boot-loader is loaded, its job is to load the rest of the operating system. GRUB is one such boot-loader that is capable of loading Unix-like operating systems and is also able to chain-load Windows OS. Boot-loader is only available in the first disk sector, which is 512 bytes. Given the complexity of modern operating systems, some boot-loaders tend to do multi-stage loading. The main boot-loader loads the second-stage boot-loader in an environment not restricted to 512 bytes.
- The boot-loader then loads the kernelinto memory. Unix-like operating systems then run the init process (the master process, from which other processes are forked/executed) and finally initialize the run-levels.
- In Windows, exe is loaded with other processes like services.exefor service control, lsass.exe for local security and authority (similar to run-levels), and lsm.exe for local session management.
- After all this, and after some other drivers are initialized, the Graphical User Interface (GUI) is loaded, and you are presented with the login screen.
BIOS and UEFI both use low-level software to manage startup functions before booting an OS, although using different techniques.
- Booting Process with BIOS: When BIOS begins its execution, it first goes for the Power-On Self Test (POST), ensuring that the hardware devices are functioning correctly.
After that, it checks for the Master Boot Record in the first sector of the selected boot device. From the MBR, the location of the Boot-Loader is retrieved, which, after being loaded by BIOS into the computer's RAM, loads the operating system into the main memory.
- Booting Process with UEFI: Unlike BIOS, UEFI doesn't look for the MBR in the first sector of the Boot Device. It maintains a list of valid boot volumes called EFI Service Partitions.
The UEFI firmware scans all bootable storage devices connected to the system for a valid GUID Partition Table (GPT), which improves MBR during the POST procedure. Unlike the MBR, GPT doesn't contain a Boot-Loader. The firmware scans the GPT to find an EFI Service Partition to boot from and directly loads the OS from the right partition. If it fails to find one, it goes back to the BIOS-type Booting process called 'Legacy Boot'.
Advantages of UEFI over BIOS
BIOS and UEFI are two firmware interfaces for computers that work as interpreters between the operating system and the computer firmware. 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. But UEFI provides many significant enhancements over BIOS, including the following:
- Boot mode: Microsoft Windows users can run 32-bit UEFI or 64-bit UEFI, although experts recommend that the OS bit mode and the firmware bit mode should be the same to avoid communication issues during runtime.
- Drives: According to UEFI Forum, UEFI supports boot drives of 2.2 TB and higher capacities, including drives with a theoretical capacity of 9.4 zettabytes. That far exceeds the maximum drive capacities currently available.
- Drivers: UEFI supports discrete drivers, whereas BIOS drive support is stored in read-only memory, requiring tuning it for compatibility when drives are swapped out, or changes are made.
- Graphical user interface (GUI): UEFI enables new modules to be added to the GUI more easily, including device drivers for motherboard hardware and attached peripheral devices.
- Multiple OS support: Whereas BIOS allows a single boot loader, UEFI lets users install loaders for Debian-based Ubuntu and other Linux variants, along with Windows OS loaders, in the same EFI system partition.
- Programming: UEFI firmware is written predominantly in C language, enabling users to add or remove functions with less programming than BIOS, which is written in an assembler language, sometimes in combination with C.
- Security: Secure Boot is a UEFI protocol for Windows 8 or later versions. Secure boot makes a system's firmware the root of trust to verify device and system integrity. The goal is to prevent hackers from installing rootkits between bootup and handoff to the OS. The secure boot also enables an authorized user to configure networks and troubleshoot issues remotely, which a BIOS administrator must be physically present.
As computer makers gradually move away from BIOS, they typically integrate UEFI firmware that runs with Compatibility Support Module (CSM) in modern devices. Although not intended as a long-term solution, CSM enables UEFI-based machines to launch in legacy BIOS mode to work with older Windows versions and other OS. However, users may find it preferable to upgrade to the latest version of the OS to realize the value of UEFI.