0

I've bought a new ASUS motherboard, but when it boots up, it shows the a hint saying to press a button to enter "UEFI BIOS settings". But isn't the motherboard uses UEFI as the firmware? How come it has a BIOS?

Update: I have disabled the CSM in the "UEFI BIOS" settings, so it shouldn't have a BIOS, should it?

2 Answers2

3

For years, what was widely taught is that the computer starts by running code called the "Basic Input/Output System", abbreviated BIOS.

Although some BIOS implementations had some more capabilities than others, such as a newer BIOS release supporting some larger hard drives than older BIOS releases, the BIOS programming contained a lot of code that helped make most IBM-compatible computers be mostly compatible with other IBM-compatible computers.

With the release of 64-bit PCs, and developments like the necessity to replace the MBR standard because hard drives were exceeding MBR's maximum of 2 TB (assuming 512 byte sector sizes), there was some interest in just re-writing the original code.

Then, people started saying that the new code was called UEFI, and that it wasn't BIOS. Even though UEFI was simpler than most full operating systems, it wasn't quite as basic, and it did things different, so it wasn't quite as compatible with older systems as many BIOS implementations. So, giving it a new name made some sense.

However, it seems that some people were confused about the difference between UEFI and BIOS. Basically, the UEFI programming took care of the functionality that the old BIOS programming did. Some manufacturers decided to stop making a big distinction between UEFI and BIOS, probably because it was causing confusion for customers.

As UEFI became a bit more widespread, and developers became more experienced with it, some developers may have added some features to the UEFI that allowed it to act more like the older standards, possibly providing more compatibility with some older equipment and/or older software. In that case, using both the terms "UEFI" and "BIOS" make some sense (if both feature sets are supported, even if they are not both able to be fully supported simultaneously).

If you see the term UEFI, it's best to think of your system as supporting the newer standard, so look for UEFI compatibility and stick with that. (That is more likely to give you more flexibility with more new hardware and new software.)

TOOGAM
  • 16,486
0

IBM released its first PC with what we now call a Basic Input/Output System, and one of the tasks of the early clone-makers was to replicate this BIOS. Thus, the vast majority of x86 and x86-64 computers sold through mid-2011 used a BIOS -- either IBM's original BIOS or a clone made by some other company, such as Phoenix or AMI.

BIOS, though, is very limited and klunky by modern standards, and it's been holding back hardware development. Thus, there's been a growing need for something more flexible. The industry eventually settled on the Extensible Firmware Interface (EFI), and most commonly its version-2.x variant, the Unified EFI (UEFI). (Apple still uses a version 1.1 EFI, though. I use "EFI" in preference to "UEFI" unless I mean a version-2.x UEFI specifically, because "EFI" is more general.) EFI fixes many of BIOS's limitations. For instance, BIOS is 16-bit, which requires switching bit depth to launch any modern OS; BIOS is written in assembly code, which relatively few people understand, thus limiting the pool of developers to maintain it; and BIOS doesn't understand partition tables or filesystems, which means that boot loader code must be squeezed into a tiny space on a single sector (although most boot loaders include a second stage with fewer restrictions). EFI fixes all of these issues. Unfortunately, EFI also adds other problems, most of which aren't really relevant to your question.

One EFI issue that is at least somewhat relevant is that EFI-based computers necessarily boot in a fundamentally different way than BIOS-based computers. Thus, every OS that supports EFI requires a new EFI boot loader. If an OS lacks this boot loader, or if it relies on services that BIOS provides to running OSes, it won't run on an EFI-based computer. To work around this limitation, most (but not all) modern EFIs provide a feature called the Compatibility Support Module (CSM), which is essentially a BIOS emulator for EFI. That is, the CSM is to EFI something like what dosemu is to Linux -- a way for a more sophisticated environment (EFI or Linux) to run code written for a less sophisticated environment (BIOS or DOS). CSM solves some problems but creates a host of new ones itself; see my page on this subject for details.

The CSM is only peripherally related to your question, though. The real answer to your question is that many people, and even manufacturers, are misusing terminology, at least IMHO. An EFI is fundamentally different from a BIOS. The EFI and UEFI specifications do not refer to it as a BIOS. Although the spec doesn't directly address the question, AFAIK, it's clear from the context that the writers of the spec considered EFI/UEFI to be a replacement for BIOS. IMHO, BIOS and EFI are both examples of firmware, in much the same way that a Ford Escort and a Chevy Bolt are both examples of cars. Just as calling a Chevy Bolt a Ford Escort would be incorrect and misleading, calling an EFI a BIOS is incorrect and misleading.

I suspect (but do not know for certain) that manufacturers refer to their EFIs as "BIOSes" or "UEFI BIOSes" simply because the term "BIOS" is familiar to many users, who would be confused by a new acronym. Expanding on my car analogy, this would be like using "Xerox" as synonymous with "photocopier," despite the fact that "Xerox" is a specific brand name. Thus, using "BIOS" or "UEFI BIOS" in a context in which it's expected (like the firmware setup utility screen) provides some familiarity, just like saying "go xerox this document" is understood to mean making a photocopy, even if the photocopier is made by some other company. Unfortunately, it also causes people to drag in BIOS-mode knowledge that is not applicable. There are many questions here and on other sites posed by people who've made minor or HUGE mistakes because they expected their EFI-based computer to work like a BIOS-based model. They are not alike, even though manufacturers sometimes try to make them look alike.

One possible defense of the use of "BIOS" to refer to an EFI is that "BIOS" has been used to refer to BIOSes for non-IBM-style computers, like Apple II computers. Thus, "BIOS" doesn't necessarily mean the BIOS for an IBM PC or compatible. Such examples are pretty obscure and/or old, though; to most computer-literate people in, say, 2010, "BIOS" meant the firmware in an IBM-compatible computer, with all the quirks specific to that platform -- quirks that do not apply to EFI-based computers.

For more on EFI and EFI-mode booting, see:

Rod Smith
  • 22,290