UEFI facts for kids
![]() |
|
Abbreviation | UEFI |
---|---|
Status | Published |
Year started | 2006 |
Latest version | 2.10 August 29, 2022 |
Organization | UEFI Forum |
Related standards | ACPI, UEFI Platform Initialization |
Domain | Firmware |
Unified Extensible Firmware Interface (UEFI) is a special set of rules for how a computer's firmware (the basic software that starts your computer) talks to its operating system (like Windows or macOS). Think of it as the first program that runs when you turn on your computer. It helps your computer get ready to load the main operating system.
UEFI replaced an older system called BIOS (Basic Input/Output System). While UEFI can still work with older BIOS systems, it offers many new features. Intel first created a similar system called EFI, which later became UEFI in 2005. UEFI is an open standard, meaning many companies work together to improve it.
Contents
How UEFI Started
The idea for UEFI came about in the mid-1990s when computers were becoming more powerful. The old BIOS system had some big limits. For example, it could only use a small amount of memory (1MB) and was programmed in a very old computer language. These limits made it hard to build bigger, more advanced computers.
To fix these problems, Intel started a project in 1998 called "Intel Boot Initiative," which later became "Extensible Firmware Interface" (EFI). In 2004, Intel released the first open-source (meaning its code is available for anyone to see and use) version of EFI called Tiano. This project is now known as TianoCore.
In 2005, Intel handed over the EFI rules to a group called the Unified EFI Forum. This group continued to develop it, renaming it the Unified Extensible Firmware Interface (UEFI). The UEFI Forum now owns the UEFI rules, making it an industry standard.
Key Updates to UEFI
- Version 2.0 (2006): Added important features for security and protecting information.
- Version 2.1 (2007): Improved network features and added a better way for users to interact with the firmware (like a graphical menu).
- Version 2.10 (2022): This is the latest version, showing that UEFI is still being updated and improved.
Why UEFI is Better
UEFI offers many advantages over the old BIOS system:
- Handles Large Hard Drives: It can boot from very large hard drives (over 2 terabytes) that use a special way of organizing data called GUID Partition Table (GPT).
- More Flexible: It provides a richer environment before the operating system loads. This includes things like network access and graphical menus.
- Modern Programming: UEFI can use 32-bit or 64-bit computer code, making it more powerful. It can even be programmed using languages like C and Python.
- Modular Design: It's built in a way that makes it easy to add new features or update parts of it.
- Works with Old and New: It can still work with older systems while supporting new technologies.
How UEFI Works with Your Computer
Processor Compatibility
UEFI works with many different types of computer processors, including those found in most laptops and desktops (x86, x86-64) and those found in smartphones and some newer servers (ARM, ARM64). This means UEFI is very versatile.
The old BIOS was limited to a very basic 16-bit processor mode. UEFI can use 32-bit or 64-bit modes, allowing it to access all of your computer's memory even before the operating system starts.
Hard Drive Compatibility
UEFI works with a modern way of organizing hard drives called the GUID Partition Table (GPT). GPT is much better than the old Master Boot Record (MBR) system because it allows for many more partitions and much larger hard drives (up to 8 zettabytes!).
EFI System Partition (ESP)
For UEFI to work, your hard drive needs a special section called the EFI System Partition (ESP). This small part of the drive stores important files that UEFI needs to start your computer, including the operating system's boot loader. The ESP is usually formatted with a special version of the FAT file system.
UEFI Services
UEFI provides different services to the operating system. Some services are available only when the computer is first starting up (boot services), while others can be used even after the operating system has fully loaded (runtime services).
- Graphics Services: UEFI can provide basic graphics support, allowing you to see menus and information on your screen before the operating system's own graphics drivers load.
- Time Services: It helps manage the computer's clock, including time zones and daylight saving time.
- Variable Services: UEFI can store important settings and information in a special memory that doesn't disappear when the computer is turned off. This is useful for things like crash messages or boot options.
UEFI Applications
UEFI can run small programs called "UEFI applications." These are like mini-programs that live on your computer's EFI System Partition. They can be used for many things, such as:
- Operating System Boot Loaders: These are special programs that help load your main operating system (like Windows or Linux).
- Utility Tools: Programs like the UEFI Shell (a command-line environment) can help you manage your computer's settings.
Device Drivers
UEFI can also use its own device drivers. These drivers help the firmware talk to your computer's hardware, like the graphics card or network adapter. This means your computer can perform basic functions even before the operating system loads its own drivers.
How Your Computer Boots Up
UEFI Booting
Unlike the old BIOS, UEFI has a "boot manager." When you turn on your computer, the UEFI boot manager checks its settings to find the correct operating system boot loader or kernel. It then starts that program.
UEFI can automatically find boot loaders on removable devices like USB drives. This makes it easy to boot from a USB stick. The boot manager often has a simple menu where you can choose which operating system to start.
Compatibility Support Module (CSM)
To help older operating systems work, many UEFI systems include a "Compatibility Support Module" (CSM). This module makes the UEFI firmware act like an old BIOS system. This is useful if you need to run an older operating system that doesn't understand UEFI. However, newer computers are starting to remove CSM support.
Network Booting
UEFI also supports booting your computer over a network. This means your computer can load its operating system from a server on your network instead of from its own hard drive. This is often used in schools or businesses.
Secure Boot
Secure Boot is a security feature in UEFI. It helps protect your computer from harmful software (like viruses) that might try to load before your operating system starts. When Secure Boot is on, the computer will only load software that has a special digital signature, proving it's from a trusted source.
This feature is supported by Windows 8, 10, and 11, as well as many Linux versions like Fedora and Ubuntu. While Secure Boot is a good security feature, some people have worried that it could make it harder to install other operating systems. However, most modern systems allow you to manage or disable Secure Boot if needed.
UEFI Shell
UEFI includes a special command-line environment called the UEFI Shell. It's like a basic operating system that runs before your main OS. You can use it to:
- Run other UEFI applications.
- Get information about your computer's memory or settings.
- Manage hard drive partitions.
- Load UEFI drivers.
- Edit text files.
Many computer manufacturers provide a way to access the UEFI Shell directly from your computer's setup menu.
How UEFI is Used Today
UEFI Implementations
Many companies create their own versions of UEFI firmware. Intel's version is called "Intel Platform Innovation Framework," also known as Tiano. Other companies like Phoenix Technologies (SecureCore Technology), American Megatrends (Aptio), and Insyde Software (InsydeH2O) also make UEFI firmware.
Microsoft even released its own open-source UEFI version called Project Mu, which is used in their Surface devices.
Platforms Using UEFI
UEFI is now used in almost all modern computers.
- Intel's first Itanium computers used EFI back in 2000.
- Apple started using EFI in its Intel-based Macintosh computers in 2006, replacing their old Open Firmware.
- Since 2011, major motherboard companies like ASRock, Asus, Gigabyte, and MSI have been selling motherboards with UEFI.
- With the release of Windows 8 in 2012, Microsoft started requiring computers to have UEFI firmware to be certified for Windows.
- Intel announced that by 2020, all its products would only support UEFI, completely moving away from the old BIOS.
Operating Systems and UEFI
Many operating systems are designed to work with UEFI:
- Linux: Has supported UEFI for a long time, using special boot loaders like GRUB.
- macOS: Apple's operating system uses EFI for its Intel-based Macs.
- Windows: Microsoft introduced UEFI support for 64-bit Windows versions starting with Windows Vista SP1. Windows 8 and later versions have even better UEFI support, including Secure Boot. Windows 11 now requires UEFI to run.
- FreeBSD and Solaris: These operating systems also support UEFI.
UEFI with Virtual Machines
UEFI is also used in virtual machines. A virtual machine is like a computer program that acts like a real computer inside your main computer. Many virtual machine programs, like VMware and VirtualBox, support UEFI. This means you can run modern operating systems that require UEFI inside a virtual machine.
Developing UEFI Applications
Programmers can create their own UEFI applications using special tools. The EDK2 Application Development Kit (EADK) allows developers to write UEFI programs using the C programming language. This means people can create custom tools or boot loaders that run directly within the UEFI environment.
For example, a simple "hello, world" program in C for UEFI looks a lot like a regular C program:
#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/ShellCEntryLib.h>
EFI_STATUS EFIAPI ShellAppMain(IN UINTN Argc, IN CHAR16 **Argv)
{
Print(L"hello, world\n");
return EFI_SUCCESS;
}
Concerns About UEFI
While UEFI offers many benefits, some people have raised concerns.
- Some worry that UEFI, especially with features like Secure Boot, could limit a user's control over their computer, making it harder to install different operating systems or custom software.
- There have been some technical problems with specific UEFI versions from certain computer manufacturers, leading to issues like computers not starting up correctly after installing Linux. However, these issues are often fixed with software updates.