UEFI “replaces” BIOS and “connects with firmware” but BIOS == firmware so WTF


If you look for "UEFI Definition" on google you find :

Unified Extensible Firmware Interface (UEFI) is a specification for a software program that connects a computer's firmware to its operating system (OS). UEFI is expected to eventually replace BIOS.

Alright, it replaces BIOS and connects computer's firmware to the OS. But what is BIOS ? Isn't BIOS namely "computer's firmware" already ? (see this SU Answer)

So should I conclude that all those definitions of UEFI and other pictures like the following (stated from the wiki page) are total non sense totally non accurate ?

UEFI Graph

(…in this picture, if firmware means BIOS, then what was UEFI supposed to replace again ?)

Best Answer

Different people use terminology in this area in different ways, so there's not 100% agreement, and that can lead to confusion. That said....

  • Firmware -- This term generally refers to software stored on chips on a motherboard or other hardware device. (SSDs, USB flash drives, and similar flash storage are notable exceptions; software stored on such devices is not firmware, except for the firmware that controls the SSD itself.) Motherboards, some (but not all) plug-in cards, hard disks, routers, switches, and many other computer components all have firmware. Modern devices often have software-upgradeable firmware -- you can run a program that replaces the old firmware with updated firmware.
  • BIOS -- This term is generally used in one of two ways:
    • Narrowly -- Applied narrowly, BIOS refers to the firmware built into the original IBM PC or any of its clones from the 1980s until recently (roughly 2011). This type of BIOS uses 16-bit code and a set of control interfaces that enable the computer to boot DOS, Windows, OS/2, Linux, and other OSes. This is a very specific set of features that distinguish this BIOS from the firmware used on other computers, such as Apple IIs, Apple Macs, or even modern EFI-based PCs.
    • Broadly -- In its most broad use, BIOS refers to the firmware on a computer's motherboard. This could be an x86 PC from ten years ago, a modern PC, an Apple II, etc. Personally, I dislike this use because the original IBM PC and its clones have become so dominant that when the term "BIOS" is used, people generally think in terms of its BIOS; so when the term is used in reference to another type of firmware, people drag in incorrect assumptions about IBM PC-style BIOSes.
  • EFI -- The EFI (or Unified EFI [UEFI], which is just EFI version 2.x) is a modern type of firmware for computer motherboards. Although it's shown as separate from the firmware in the diagram you've shared, the EFI is generally stored in chips on the motherboard and so most people consider it a part of the firmware; however, it can be run as a program loaded from the hard disk. It also relies on basic hardware-initialization code in the firmware -- that is, the EFI isn't the entirety of firmware. (An old-style PC BIOS, by contrast, does this initialization.) EFI is intended to replace the BIOS, although some early x86/x86-64 implementations use the BIOS to do that lower-level hardware initialization. Most modern EFIs don't rely on the BIOS in this way, although there's a twist -- the Compatibility Support Module (CSM) is an EFI component that lets the EFI run boot loaders designed for BIOS-based computers. Thus, most EFI-based x86-64 systems can boot using either BIOS boot loaders or EFI boot loaders. Although this ability is undoubtedly useful in some cases, it can also create more problems than it solves in other cases, as I describe in detail on this page of mine.

Thus, the way I use these terms, BIOS and EFI are two different types of firmware. (There are others, too, like OpenFirmware (wiki).) Some people, though, use BIOS and firmware as being more-or-less synonymous, especially when referring to firmware on a motherboard. In this system, an EFI is a type of BIOS. I dislike this second approach because people tend to drag in assumptions based on the first thirty years of PC history -- that the boot loader resides in a hard disk's MBR, for instance -- that do not apply to EFI-based computers. Unfortunately, many PC manufacturers use BIOS and firmware as synonymous.

You may also want to check out this question and my answer to it, which is related but not identical to your question.