Is UEFI an example of firmware?

Updated: 12/05/2021 by

Is UEFI an example of firmware?

Short for Unified Extensible Firmware Interface, UEFI is an upgrade to the traditional computer BIOS that Intel started developing as EFI. UEFI is an update that includes improved boot times, better security with cryptography, and better support for the hardware found in today's computers.

UEFI is compatible with the standard hard drive partition format, which utilizes an MBR (master boot record) and the GPT (GUID partition table) partition format. Linux and Windows operating systems can utilize UEFI.

As of November 2021, the current UEFI specification is version 2.9, published in March 2021.

Computer acronyms, EFI, Intel, Motherboard terms, Secure boot

Is UEFI an example of firmware?

Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

United Extensible Firmware Interface (UEFI) firmware requirements

  • Article
  • 12/17/2020
  • 2 minutes to read

In this article

When the devices starts, the firmware interface controls the booting process of the PC, and then passes control to Windows or another operating system. UEFI is a replacement for the older BIOS firmware interface and the Extensible Firmware Interface (EFI) 1.10 specifications. More than 140 leading technology companies participate in the Unified EFI Forum, including AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft, and Phoenix Technologies.

UEFI benefits

Firmware that meets the UEFI 2.3.1 specifications provides the following benefits:

  • Ability to support Windows 10 security features like Secure Boot, Microsoft Defender Credential Guard, and Microsoft Defender Exploit Guard. All require UEFI firmware.
  • Faster boot and resume times.
  • Ability to more easily support large hard drives (more than 2 terabytes) and drives with more than four partitions.
  • Support for multicast deployment, which allows PC manufacturers to broadcast a PC image that can be received by multiple PCs without overwhelming the network or image server.
  • Support for UEFI firmware drivers, applications, and option ROMs.

To download Windows, see the Windows 10 download page. If you want to use media like a USB flash drive, a DVD, or an ISO, dowload the Windows Media creation tool.

Boot and miminum security requirements

As the OEM, you must provide support for the features outlined in Windows Hardware Compatibility Program Specifications and Policies, specifically the following items that are divided into two groups: boot requirements and minimum security requirements.

UEFI Runtime requirements

Various versions of Windows require some or all of the following UEFI Runtime Services. It is recommended that they all be implemented for maximum compatibility:

  • GetTime
  • SetTime
  • UpdateCapsule
  • ResetSystem

Hibernation State (S4) transition requirements

Platform firmware must ensure that operating system physical memory is consistent across S4 sleep state transitions, in both size and location. Operating system physical memory is defined according to the ACPI 3.0 specification as any memory that is described by the firmware system address map interface with a memory type other than AddressRangeReserved [2], AddressRangeUnusable [5], or Undefined [any value greater than 5].

On a UEFI platform, firmware runtime memory must be consistent across S4 sleep state transitions, in both size and location. Runtime memory is defined according to the UEFI specification as any memory that is described by the GetMemoryMap() boot service, with the attribute EFI_MEMORY_RUNTIME.

  • Windows 10 S security features and requirements for OEMs

Is UEFI an example of firmware?

So you might have heard the acronyms BIOS and UEFI thrown around, especially when trying to switch Operating Systems or messing around with overclocking.

And you might know what these acronyms stand for (Unified Extensible Firmware Interface and Basic Input/Output System, respectively). But have you ever wondered how they're used in a computer system?

Let's demystify these terms and their meanings now.

Boot Procedure

First things first – I know we're deviating from the topic, but I promise this will help you with some concepts later on.

So, how does a computer boot? Let's go step by step:

  1. You press the power button on your laptop/desktop.
  2. The CPU starts up, but needs some instructions to work on (remember, the CPU always needs to do something). Since the main memory is empty at this stage, CPU defers to load instructions from the firmware chip on the motherboard and begins executing instructions.
  3. The firmware code does a Power On Self Test (POST), initializes the remaining hardware, detects the connected peripherals (mouse, keyboard, pendrive etc.) and checks if all connected devices are healthy. You might remember it as a 'beep' that desktops used to make after POST is successful.
  4. Finally, the firmware code cycles through all storage devices and looks for a boot-loader (usually located in first sector of a disk). If the boot-loader is found, then the firmware hands over control of the computer to it.

We don't need to know more about this topic for the purposes of this article. But if you're interested, then read on (otherwise, you can skip to next section).

  1. 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 sector of a disk, which is 512 bytes. Given the complexity of modern operating systems, some of these boot-loaders tend to do multi-stage loading, where the main boot-loader loads the second-stage-boot-loader in an environment which is not restricted to 512 bytes.

  2. The boot-loader then loads the kernel into 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.

  3. In Windows, wininit.exe is loaded along with some other processes like services.exe for service control, lsass.exe for local security and authority (similar to run-levels) and lsm.exe for local session management.

  4. After all this, and after some other drivers are initialized, the Graphical User Inferface (GUI) is loaded and you are presented with the login screen.

This was a very high-level overview of the boot process. If you're interested in Operating Systems, I would recommend that you read more on osdev.net.

Now let's get back to our original topic.

Is UEFI an example of firmware?

BIOS stands for Basic Input/Output System, the firmware we talked about in the above boot procedure.

It is stored on an EPROM (Erasable Programmable Read-Only Memory), allowing the manufacturer to push out updates easily.

It provides many helper functions that allow reading boot sectors of attached storage and printing things on screen. You can access BIOS during the initial phases of the boot procedure by pressing del, F2 or F10.

UEFI:

Is UEFI an example of firmware?
ASUS UEFI 

UEFI stands for Unified Extensible Firmware Interface. It does the same job as a BIOS, but with one basic difference: it stores all data about initialization and startup in an .efi file, instead of storing it on the firmware.

This .efi file is stored on a special partition called EFI System Partition (ESP) on the hard disk. This ESP partition also contains the bootloader.

UEFI was designed to overcome many limitations of the old BIOS, including:

  1. UEFI supports drive sizes upto 9 zettabytes, whereas BIOS only supports 2.2 terabytes.
  2. UEFI provides faster boot time.
  3. UEFI has discrete driver support, while BIOS has drive support stored in its ROM, so updating BIOS firmware is a bit difficult.
  4. UEFI offers security like "Secure Boot", which prevents the computer from booting from unauthorized/unsigned applications. This helps in preventing rootkits, but also hampers dual-booting, as it treats other OS as unsigned applications. Currently, only Windows and Ubuntu are signed OS (let me know if I am wrong).
  5. UEFI runs in 32bit or 64bit mode, whereas BIOS runs in 16bit mode. So UEFI  is able to provide a GUI (navigation with mouse) as opposed to BIOS which allows navigation only using the keyboard.

You might not need UEFI

Though all modern computers come equipped with UEFI by default, some reasons why you might choose BIOS over UEFI are:

  1. If you're beginner and don't care about messing with any type of firmware, BIOS is for you.
  2. If you have < 2 TB per hard disk or partition, you can go with BIOS.
  3. BIOS allows running multiple operating systems without changing any settings This can be a security issue from a modern standpoint, but hey, no hassles for the user.
  4. BIOS provides system information to the operating system. So if your OS runs in 16 bit mode, it does not require writing code for interacting with hardware. It can directly use methods provided by BIOS. Else if the OS switches over to 32bit or 64bit mode, then it needs to provide its own subroutines for interacting with hardware.
  5. If you are someone who prefers a keyboard and text based UI over navigation with a mouse and GUI, then BIOS is for you.

UEFI takes these limitations into account and provides a Legacy mode. In it you can run everything as if you had a BIOS firmware. But keep in mind that Intel has announced that it won't support traditional BIOS from 2020.

Conclusion

This post gave you an overview of the differences between BIOS and UEFI. It also advises you when to choose either one of them and how they are different from each other.

If you have any questions, I will always be available on Twitter. Thank you for your time.



Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Is firmware BIOS or UEFI?

Basic Input or Output System (BIOS) or Unified Extensible Firmware Interface (UEFI) is firmware that is embedded on the computer's system board or motherboard. Modern Dell computers are shipped with Unified Extensible Firmware Interface (UEFI).

Where is UEFI firmware stored?

Instead of being stored in firmware, as is the BIOS, the UEFI code is stored in the /EFI/ directory in non-volatile memory. Thus, UEFI can be in NAND flash memory on the motherboard or it can reside on a hard drive, or even on a network share.

What are the types of UEFI?

A type of UEFI application is an OS boot loader such as GRUB, rEFInd, Gummiboot, and Windows Boot Manager; which loads some OS files into memory and executes them. Also, an OS boot loader can provide a user interface to allow the selection of another UEFI application to run.

What is UEFI?

UEFI is short for Unified Extensible Firmware Interface that offers users a faster, sleeker experience. But before we get too deep into UEFI, it's first important to understand what came before it: BIOS. Note: Newer PCs that already have UEFI might still call it the BIOS to avoid confusing consumers.