Unified Extensible Firmware Interface (UEFI) is a specification coined and implemented by UEFI Forum. UEFI defines a software interface between an operating system and the platform firmware. UEFI replaces the traditional BIOS (Basic Input/Output System) firmware on a computer’s motherboard. It is used to boot the operating system and provides a set of functions that can be used to perform various tasks during the boot process, such as initializing the hardware and loading the system drivers.
UEFI is implemented as a firmware program that is stored in a chip on the motherboard of a computer. It is responsible for initializing the hardware components of the system and preparing the system for booting the operating system.
When the system is powered on, the UEFI firmware is loaded into memory and begins executing a series of boot steps that are defined by the specification. This includes performing a power-on self-test (POST) to check the basic functionality of the hardware, detecting and initializing the devices that are connected to the system, and loading the bootloader for the operating system
UEFI is written in a high-level programming language, such as C or C++, and it is compiled into machine code that can be executed by the processor. It is stored in a non-volatile memory chip on the motherboard, such as ROM or flash memory, which allows it to persist even when the system is powered off.
UEFI is widely used on modern computers and is the default firmware on most new PCs. It is supported by most operating systems, including Windows, Linux, and MacOS. UEFI have many features. Some of them are explained below:
- Larger Boot Volumes
UEFI supports boot volumes larger than 2 TB, which allows for the use of modern hard drives and SSDs that may have a larger capacity. In the past, BIOS was limited to booting from volumes that were 2 TB or smaller. This was because BIOS used the Master Boot Record (MBR) partitioning scheme, which had a limit of 2 TB per boot volume.
UEFI, on the other hand, uses the GUID Partition Table (GPT) partitioning scheme, which supports boot volumes larger than 2 TB. This allows UEFI to boot from larger hard drives and SSDs, as well as to support the use of multiple boot volumes on a single physical drive.
The ability to boot from larger volumes is especially useful for modern systems that may have multiple hard drives or SSDs, or for systems that require a large amount of storage for their operating system and applications. It also allows for the use of modern operating systems that may require a larger boot volume due to their size or the features they offer.
- Faster Boot times:
UEFI can boot the system faster than BIOS because it uses a more efficient boot process. In a traditional BIOS system, the boot process begins with the BIOS firmware performing a power-on self-test (POST) to check the hardware and initialize the system. The BIOS then looks for a bootable device, such as a hard drive or USB drive, and loads the bootloader from that device. The bootloader then loads the operating system kernel and hands control over to it.
In a UEFI system, the boot process begins in a similar way, with the UEFI firmware performing a POST and looking for a bootable device. However, UEFI uses a more efficient boot process that allows it to load the operating system kernel faster than BIOS. This can result in a noticeable reduction in boot times on systems that use UEFI.
Additionally, UEFI supports a feature called “fast boot,” which can further reduce boot times by skipping certain POST tests and loading the operating system directly from a hibernation state. This can be especially useful on systems that are frequently booted and shut down, as it allows the system to boot almost instantly after a shutdown.
Secure boot is a feature of UEFI that helps to prevent unauthorized software from running during the boot process. It does this by using a set of cryptographic keys and digital certificates to verify the authenticity of the bootloader and operating system.
When secure boot is enabled, the UEFI firmware will only allow the system to boot from bootloaders that are signed with a trusted certificate. If an unsigned or untrusted bootloader attempts to run, the system will prevent it from loading and display an error message.
Secure boot is designed to protect the system from malware and other threats that may try to exploit vulnerabilities in the boot process. It can also help to prevent users from accidentally or intentionally installing and running unauthorized software on the system.
Secure boot is usually enabled by default on most modern systems, but it can be disabled or configured through the UEFI interface. It is important to note that disabling secure boot may make the system more vulnerable to malware and other threats, and it should only be done if necessary for compatibility with certain software or hardware. Click here to understand Secure Boot in detail.
- Compatibility with modern operating systems
UEFI enables the use of modern operating systems and their corresponding bootloaders on older hardware that may not have been designed to support them.
In the past, older hardware was often limited to using BIOS and operating systems that were compatible with it. This meant that newer operating systems and their corresponding bootloaders may not have been able to run on older hardware.
UEFI, on the other hand, allows for the use of modern operating systems and their bootloaders on older hardware. This is because UEFI includes support for modern bootloaders and operating systems, and it is designed to be more flexible and adaptable than BIOS.
This compatibility with modern operating systems is especially useful for users who may want to run newer operating systems on older hardware, or for users who may have older hardware that they want to upgrade to a newer operating system. It also allows for the use of newer features and technologies that may not have been available on older hardware when it was originally released.
- Configurable settings
The UEFI interface allows users to view and configure various system settings, such as the boot order, boot mode, and system clock.
The boot order determines the sequence in which the system will try to boot from different devices. For example, the system may be configured to first try to boot from a USB drive, then from a hard drive, and then from a network device.
The boot mode determines whether the system will boot in UEFI mode or legacy BIOS mode. UEFI mode allows for the use of modern operating systems and their corresponding bootloaders, while legacy BIOS mode is more limited and may only support older operating systems.
The system clock sets the time and date for the system. This is important for keeping track of when events occurred and for synchronizing with other devices.
These and other configurable settings can be accessed and modified through the UEFI interface, which is usually accessed by pressing a specific key (such as F2 or Esc) during the boot process. It is important to note that modifying certain settings may affect the system’s performance or compatibility with certain software or hardware, and it should be done with caution.
- Recovery and diagnostic tools
UEFI includes a number of diagnostic and recovery tools that can be accessed from the interface. These tools can be used to troubleshoot and fix issues with the system, as well as to recover from certain types of failures or errors.
Some examples of diagnostic and recovery tools that may be included with UEFI include:
- Memory test: This tool tests the system’s memory (RAM) for errors and faults. It can be used to diagnose issues with the memory or to ensure that it is functioning correctly.
- System repair tool: This tool can be used to repair or restore the system to a previous state if it becomes damaged or corrupted. It may be able to fix issues with the operating system, bootloader, or other system components.
- System recovery options: These options allow the user to boot into a recovery environment, where they can access additional tools and options for recovering from problems with the system. This may include options for restoring the system from a backup, repairing the operating system, or reinstalling it from scratch.
These and other tools can be accessed from the UEFI interface, which is usually accessed by pressing a specific key (such as F2 or Esc) during the boot process. It is important to note that these tools may not be able to fix all issues with the system, and they should be used with caution to avoid causing further damage.
- Plug and Play Support
Plug and Play (PnP) support is a feature of UEFI that allows devices to be automatically detected and configured by the system without the need for manual installation.
PnP is designed to make it easier to connect and use new devices with the system. When a PnP device is connected to the system, the system will automatically detect it and install any necessary drivers or software. This allows the device to be used immediately, without the need for the user to manually install drivers or configure the system.
PnP support is especially useful for devices that may require specialized drivers or configuration, such as printers, scanners, and external hard drives. It can also help to reduce the complexity of setting up and using new devices, as it eliminates the need for the user to manually install and configure them.
PnP support is enabled by default on most systems that use UEFI, but it can be disabled or configured through the UEFI interface if necessary. It is important to note that disabling PnP may prevent certain devices from being detected and used by the system, and it should only be done if necessary for compatibility with certain software or hardware.