4

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 ?)

8
  • You're assuming the terms BIOS and Firmware are completely interchangeable. They are not. Just because all BIOS are firmware does not mean that all firmware are BIOS. In your picture there, that firmware is not BIOS. So no, you should not conclude all definitions of UEFI are inaccurate.
    – n8te
    Commented Oct 26, 2016 at 10:06
  • BIOS is the name of the firmware bundled with every legacy motherboard. It allows communication with hardware. The scheme is [hardware] <-> [BIOS]. With UEFI, by what is this scheme replaced by ? What is this "computer's firmware" if not BIOS ?
    – lapin
    Commented Oct 26, 2016 at 10:17
  • BIOS is a specific type of firmware. Why are you assuming that the only type of firmware is BIOS? UEFI uses a different type.
    – n8te
    Commented Oct 26, 2016 at 10:26
  • I understand what you say, basicaly firmware > BIOS. But usually BIOS is the specific type of firmware bundled in computers, and UEFI is said to replace it, then why the scheme isn't [hardware] <-> [UEFI] ?
    – lapin
    Commented Oct 26, 2016 at 10:38
  • To be more accurate, even BIOS was really [hardware] <-> [firmware] <-> [BIOS] , being that the BIOS is a set of instructions within the firmware, but a lot of times BIOS was simply referred to as the firmware.
    – n8te
    Commented Oct 26, 2016 at 10:43

1 Answer 1

5

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .