5

This page: https://wiki.osdev.org/UEFI and few others which are rather creditable mention that UEFI is kind of an application which run on BIOS (legacy BIOS) and not a firmware If I got it right. Some others claim they just run together (BIOS + UEFI). This is not about calling UEFI "UEFI BIOS" mistakenly (its another thing, not my question).

But as far as I know BIOS and UEFI are firmware interfaces and alternatives to each other. BIOS is legacy and UEFI is more advanced modern alternative to it.

So what's the reality?

1

5 Answers 5

4

The article you link to https://wiki.osdev.org/UEFI uses strange terminology that nobody else uses like that. So that article is saying BIOS runs first then UEFI, but that's not really the case.

There is a 'colloquial' definition or usage of the term BIOS, and a technical definition.

(That article's terminology is neither of those, that article's terminology is way off)

So for now let's put aside that article's bizarre definitions of UEFI and BIOS and look at the definitions of UEFI And BIOS and how they are used.

The colloquial definition or usage of the term BIOS, is not just to refer to the BIOS as a BIOS, but to refer to the UEFI as a BIOS. That may be because they are using the term BIOS generally, or it may be they just call the UEFI, the BIOS, because they think the term is more familiar to people as BIOS was around for a long time and to the end user or even to most computer technicians, it looks the same. And they may even say UEFI BIOS, to mean UEFI. That may be because are using BIOS generally and see UEFI as a type of BIOS. Or they may be saying it because some may have no idea what a UEFI is and by sticking the word BIOS after it, they think it makes it clearer for people, as from the perspective of end users and most computer technicians they look the same. e.g. they have a configuration page, you can choose boot order.

https://www.howtogeek.com/56958/htg-explains-how-uefi-will-replace-the-bios/ "Even if your PC uses the term 'BIOS', modern PCs you buy today almost certainly ship with UEFI firmware instead of a BIOS. "

So, computers sometimes use the colloquial definition , for example it says push F2/Escape/F10/whatever to go to the BIOS. Or says Press whatever to go to setup, and then it says "BIOS version ..". Actually it's technically not a BIOS it's a UEFI.

There are things that take place when a computer powers on, before the processor executes anything. i.e. before it runs the firmware in the 'reset vector' , that's before any BIOS or UEFI. Here is some description of what happens then, http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=1 . (and the article continues for afterwards too). There's a CPLD that is programmable, it runs software, that is firmware. That is very obscure. People almost never mean this when they say motherboard firmware. That firmware regulates the power supply and clocks and then lets the CPU reset and start.

I don't think the word BIOS would ever apply to anything as early as that! And UEFI wouldn't either. So when a source like wikipedia in its article on BIOS, says BIOS is "the first software to run when powered on", it's not technically correct, for two reasons. A)'cos even if a system was running a BIOS and not a UEFI, the BIOS still wouldn't be the first thing to run. B)And if a system is running a UEFI there wouldn't be any BIOS running!

When the CPU begins its fetch decode execute cycle, it begins with a part of memory known as the reset vector - which has or points to the BIOS or UEFI.

Some perhaps older sources, may have spoken of UEFI BIOS, to mean UEFI. For example this source written in 2013 https://www.alphr.com/features/381565/uefi-bios-explained speaks of a UEFI BIOS but rightly says it's not that meaningful and falls to the term UEFI , which is what it meant by UEFI BIOS. The Dr Dobbs link I mentioned from 2011 also uses the phrase "UEFI BIOS", to mean UEFI. Your source uses terms more strangely.

The colloquial definition for BIOS (as a general term), is probably rather old and outdated.

If one wants a general term for UEFI and BIOS then "motherboard firmware run by the CPU" would be spot on.

The technical definition / usage, and really current one, is UEFI replaces BIOS.

Looking at that article and its unique strange wrong terminology

The osdev article you link to uses stranger terminology that only it uses! It seems to refer to the initial part of the BIOS or UEFI, which they have in common, as BIOS. So if you have a UEFI, one might think it runs on top of a BIOS! I don't think anybody other than that article defines BIOS in this manner or uses the term BIOS in that way!

Here is a very misleading strange paragraph from the article you linked to

A common misconception is that UEFI is a replacement for BIOS. In reality, both legacy motherboards and UEFI-based motherboards come with BIOS ROMs, which contain firmware that performs the initial power-on configuration of the system before loading some third-party code into memory and jumping to it. The differences between legacy BIOS firmware and UEFI BIOS firmware are where they find that code, how they prepare the system before jumping to it, and what convenience functions they provide for the code to call while running.

So it seems to be referring to the initial part of the BIOS or UEFI, that they share, as BIOS, as mentioned. This is very unconventional terminology no other source does that.

Sometimes when people look at what actual functions they are referring to with this/that word, they can be a bit sloppy with terms, though this article is quite dogmatic in its strange usage.

It's not a "misconception" that UEFI replaces BIOS, it's the truth.

And the term UEFI BIOS is really unclear and best avoided.

And by the way, Flash memory, which is where the UEFI is stored, is EEPROM memory which is ROM memory. It's just more easy to write to than the old ROM memory that wasn't EEPROM. (Some sources, to an extent that one, and also even wikipedia's article on BIOS, make it sound like Flash memory is distinct from ROM memory

It's probably not worth thinking too much about the strange usage of BIOS and UEFI used in that osdev.org article. But having spoken to a few OS devs, many look at the UEFI and BIOS more for the API that they provide.. rather than what goes on behind the scenes and no doubt OS devs tend to care more about the development of the OS than the technicalities of BIOS and UEFI.

One attempt at justifying the suggestion in that article that the CPU runs some firmware before the UEFI, was a claim that "CPUs start in 16bit mode. UEFI runs in 32bit or 64bit. So something has to get there first." (and they may the first paragraph of that wikpedia article on the BIOS and say it's that - the BIOS that runs first). But that claim can be proven wrong. One can point to the UEFI starting in 16bit.

The article you link to was trying to suggest that there's a part before the UEFI.. there isn't. Even the 16bit part at the very beginning is part of the UEFI. A technical guy I spoke to that knows a lot, pointed me https://github.com/tianocore/edk2/tree/master/UefiCpuPkg/ResetVector/Vtf0 as evidence, and said that's from the EFI codebase, and is code for that very early still 16bit part of the boot process. I'm sure he's right, as that's consistent with any normal(correct!) use of the terms!

Technically, some of the UEFI specification got put into a specification called the UEFI-PI spec, or PI spec, but any implementation of the UEFI spec, implements the PI Spec. https://www.insyde.com/press_news/blog/uefi-pi-13-review-part-1-i2c-bus-protocol And the PI spec has all the phases of the UEFI https://github.com/tianocore/tianocore.github.io/wiki/PI-Boot-Flow . When people refer to the UEFI they'd tend to be including anything in the UEFI spec and PI spec.

A BIOS or UEFI begins in a part of memory called the 'reset vector'.

UEFI(thus far) supports legacy BIOS mode

UEFI is able to simulate what the firmware used to be like pre EFI i.e. in the days of the "legacy BIOS". For the sake of OSs that don't run on a normal UEFI. This is a mode.. It's called UEFI with CSM(Compatibility Support Module). When UEFI simulates the legacy BIOS with that mode.

This mode may be phased out at some point eg by 2020. https://arstechnica.com/gadgets/2017/11/intel-to-kill-off-the-last-vestiges-of-the-ancient-pc-bios-by-2020/

So now to answer your question quoting you

This page: https://wiki.osdev.org/UEFI and few others which are rather creditable

By 'creditable', you mean 'authoritative', and that page isn't that authoritative, 'cos OS Devs often don't care much about the details of UEFI and BIOS other than the API they provide the OS. Their interest is in OS development.

[that page] mention that UEFI is kind of an application which run on BIOS (legacy BIOS)

Based on the terminology that page uses, yes, though it might not refer to BIOS in that context as legacy.

That page is using the term BIOS generally. Hence its reference to UEFI BIOS.

And it uses the term BIOS (not UEFI), for the aspect of the firmware that runs at the beginning that is the same now as then. (A different terminology would consider that part of the UEFI). I wouldn't take it too seriously.

UEFI is firmware. As is/was legacy BIOS.

and [UEFI is] not a firmware If I got it right.

No.

Legacy BIOS is/was firmware. But hasn't been used in well over a decade.

UEFI is a firmware.

Both are.

Some others claim they just run together (BIOS + UEFI).

No.. There is the terminology that BIOS is the general term(i.e. not specifically legacy BIOS). And UEFI is the specific.

And there is "legacy BIOS Mode" which is within UEFI. (note the word 'mode'. Legacy BIOS is not the same as Legacy BIOS mode). Legacy BIOS (without the word mode), is BIOS not UEFI.

This is not about calling UEFI "UEFI BIOS" mistakenly (its another thing, not my question).

That's the terminology used in that article and has some basis eg the wikipedia article on BIOS uses the term BIOS in the general sense, though it says UEFI is the successor to the BIOS. But the term UEFI doesn't project back in time to what preceded it years before. Whereas the definition of BIOS given in that wikpedia article could project backward or forward in time as it's defined there as the firmware that runs when the computer starts(by which it means when the CPU starts). So by that logic, one could say UEFI BIOS. Even though, as even that same BIOS wikipedia page says, UEFI is the 'successor'.

But, as mentioned, there's no need to use the term 'UEFI BIOS'. And it's not a very clear term. Maybe the term UEFI BIOS was used sometimes to indicate to people the kind of things UEFI did. And because they felt the term BIOS was so entrenched. You can say 'motherboard firmware' for a general term.

And whatever wiring/electronics or even firmware, gets the CPU To go to the reset vector is not BIOS or UEFI. https://stackoverflow.com/questions/22312428/what-memory-is-used-for-storing-the-reset-vector

But as far as I know BIOS and UEFI are firmware interfaces and alternatives to each other. BIOS is legacy and UEFI is more advanced modern alternative to it.

yeah that's the normal terminology

(firmware, not firmware interfaces!).

And they provide an interface / API, to the OS.

So what's the reality?

That.. ^ And research I have done indicates that the linked article in the questoner's post is really wrong. UEFI does replace the BIOS. A computer runs either a UEFI, or if it's very old, then a BIOS. Sometimes colloquially the term BIOS is used for the configuration screen, but that screen is part of the UEFI and techies will often jump in and correct and say UEFI not BIOS. Some may use the term BIOS for anything run by the CPU before the boot loader, even if it is a UEFI, but it's a colloquialism and a bit iffy and better to say UEFI when it's UEFI. And to say that a computer running a UEFI also runs and starts with a BIOS, as that article does, is completely wrong. The author of that article perhaps doesn't realise that UEFI includes even the 16bit part that runs very near the very beginning of booting.

3
  • Thanks. You are the only person which understood what I exactly asked. Your post is too detailed, the last part was what I needed. I didn't understand everything you say but I don't think I'll find a better answer. Commented Jun 20, 2019 at 16:49
  • @TomMilberg thanks. I will be making my answer even better as I have done some more digging and am doing some more digging. The reality is a lot simpler so that's good news.. The author of that article has some misconceptions and has overcomplicated it incorrectly. I have just added a note based on the research I have done so far. I think you will understand it. Commented Jun 20, 2019 at 22:52
  • A nicely complete answer, missing one particularly interesting historical detail. EFI (Extensible Firmware Interface) is primarily a mechanism to allow hardware manufacturers to build devices (i.e. PCI cards or other peripherals) that will work in many host systems. To allow them to define configuration, as well as firmware (controller software) in a portable or universal way. It's ultimately a second, far more successful attempt at Open Firmware, a.k.a. "Sun OpenBoot", as used on PowerPC Macintoshes. Commented Jun 21, 2019 at 1:53
2

Yes, UEFI is intended to replace its legacy BIOS counterpart. You only need to understand a few things to confirm this. I've listed some main points with references and snippets of related facts.

  1. What exactly is UEFI
  2. Driving factors of the UEFI evolution

1. What exactly is UEFI

UEFI is firmware for computers developed and published by Intel. Unlike most BIOS firmware, UEFI firmware can be found on systems which are not in the IBM PC compatible class.

Note: Newer PCs that ship with UEFI still refer to it as the “BIOS” to avoid confusing people who are used to a traditional PC BIOS. Even if your PC uses the term “BIOS”, modern PCs you buy today almost certainly ship with UEFI firmware instead of a BIOS.

source

Extensible Firmware

UEFI is an extension of firmware like BIOS but (1)it can read from entries from disk partitions by not just booting from a disk but (2)booting from a specific boot loader in a specific location on a specific disk.

Bootloader Compatibility for Execution by UEFI

The UEFI spec defines the executable format requiring all UEFI firmwares to be capable of executing code in that format. When a bootloader is written for native UEFI, it is written in this format.

Backwards Compatible

For backward compatibility, most UEFI firmware can boot a system just like BIOS firmware and look for a MBR and run the boot loader from there as well. Depending on the firmware this may be called BIOS legacy mode, BIOS compatibility mode, or other similar terms.

Note: UEFI is meant to replace the Basic Input/Output System (BIOS) firmware interface, present in all IBM PC-compatible personal computers. In practice, most UEFI images provide legacy support for BIOS services.

source


2. Driving factors of the UEFI evolution

Note: Here are some resources to help clarify and confirm what major computer manufactures agree upon collectively to use and develop as an industry standard for the market share which they help influence.

I think when most of the major computer manufactures are on board and agree to use a next-generation type technology to replace an outdated and insufficient technology that cannot keep up with the configuration demands as technology changes and improves, then it is safe to "assume" BIOS is legacy and is an outdated technology without a ton of additional research and analysis.

  1. I encourage you to read over the Clarifying the Ten Most Common Misconceptions about UEFI document from beginning to end as it touches on a lot of clarifying facts that may help too.

    The Unified Extensible Firmware Interface (UEFI) Forum is a world-class nonprofit industry standards body that works in partnership to enable the evolution of platform technologies. The Forum champions firmware innovation through industry collaboration and the advocacy of a standardized interface that simplifies and secures platform initialization and firmware bootstrap operations. Both developed and supported by representatives from more than 250 industry-leading technology companies, UEFI specifications promote business and technological efficiency, improve performance and security,facilitate interoperability between devices, platforms and systems and comply with next-generation technologies.

    Source

  2. Here's what Microsoft says about UEFI in one post also referring to BIOS as "legacy"...

    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.

    Source

  3. I think it is also important to recognize these points as well for some context

    • The Unified Extensible Firmware Interface Forum or UEFI Forum is an alliance between several leading technology companies to modernize the booting process. The board of directors includes representatives from thirteen "Promoter" companies: AMD, American Megatrends, ARM, Apple, Dell, Hewlett Packard Enterprise, HP Inc., IBM, Insyde Software, Intel, Lenovo, Microsoft, and Phoenix Technologies.

      Source

    • The Unified Extensible Firmware Interface (UEFI) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers,[1][2] with most UEFI firmware implementations providing legacy support for BIOS services. UEFI can support remote diagnostics and repair of computers, even with no operating system installed.

      Source

0
1

I'm not an expert, but I do work with them a lot. It's my understanding that the old school BIOS is a completely different environment compared to the more modern UEFI and UEFI does not require any underlying BIOS to function. It's a one stop shop so to speak. Essentially, it makes use of more onboard memory then the traditional Legacy systems did to support the fancy GUI's and also has a number of features which it uses to do things like speed up boot time, by using parallel booting techniques along with tools that make restoring a bricked motherboard smoother if not down right easy, just to name a few of the benefits. But the TLDR version, no, UEFI does not run on top of an old legacy BIOS.

0

No. UEFI is a replacement for BIOS.

There is such a thing as a CSM - Compatibility Support Module. This is a UEFI module that emulates a BIOS to boot operating systems that only work with BIOS. This is an optional part of UEFI.

BIOS and UEFI are different enough that peripherals with boot ROMs (such as video cards and RAID cards) need BIOS or UEFI specific firmware to be useable at boot. If CSM is enabled, firmware that works only with BIOS can be used.


Motherboards come with a ROM device, often an SPI flash ROM. This holds whatever system firmware there is, regardless of whether it only supports BIOS interfaces and functions, UEFI interfaces and functions, or both. I believe this is what is meant by

"In reality, both legacy motherboards and UEFI-based motherboards come with BIOS ROMs, which contain firmware that performs the initial power-on configuration of the system before loading some third-party code into memory and jumping to it"

which is from the OSDev wiki link cited above.

Honestly, though I don't really understand what it's trying to say. It seems to be saying in a roundabout way that BIOS and UEFI perform the same overall function.

It's very likely that firmware developers have been or are taking most existing BIOS firmware code of theirs at the time and adding more code around it so it is UEFI compatible. This also makes it easier to implement/support a CSM to boot non-UEFI operating systems.

The UEFI standard is definitely intended to supersede the BIOS "standard" - and "standard" here is in quotes because it was a "de-facto standard" that emerged from companies (starting with Compaq) reverse-engineering and copying IBM's original 5150 PC released in 1981. UEFI is an actual standard with a spec you can download from uefi.org.

In 2020 Intel is no longer supporting BIOS and will provide code and resources for UEFI only.

1
  • 1
    I'm the one asking the question here guys! "UEFI is a replacement for BIOS" this contradicts the article and that's what the question is about Commented Jun 20, 2019 at 4:31
-1

@barlop so UEFI has 2 components - a 16 bit part situated in EEPROM that runs initially and then a larger .EFI file that sits on the hard disk? Is that right?

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.