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?

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

  • This answer makes it sound as if the transition from BIOS to UEFI, and application of the term "UEFI," was gradual and arbitrary. EFI is fundamentally different from BIOS, though. It wasn't simply a matter of applying a new name once enough gradual changes had been added; EFI is a completely new way to boot a computer. (That said, I've seen claims that some manufacturers used EFI/CSM combinations with EFI-mode booting disabled late in the BIOS timeframe. If so, that's a weird variant in this story.) – Rod Smith Jul 5 '17 at 14:48
  • @RodSmith : EFI is substantially different in implementation, but it really accomplishes the same task as the older BIOS standard: to be initial code that runs and gets things going well enough for operating systems to be able to start. To that end, EFI fulfills the computer's need for a "basic input/output system" (abbreviated BIOS). When people indicate (U)EFI is not a BIOS, that level of pickiness has confused people more than its been helpful. e.g., bringing up CSMs has really introduced complexity to a discussion when this question sought simplification. Sorry, Michael Tsang! – TOOGAM Jul 6 '17 at 1:27
  • If you want confusion, look at the many posts (I've responded to dozens of them) by people who who try to apply BIOS knowledge to their EFI-based computers and who are therefore led astray. I stand by my answer. – Rod Smith Jul 6 '17 at 12:12
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:

  • "Ford Escort and a Chevy Bolt are both examples of cars" - not an equivalent analogy. Equivalent would be Chevy saying "Our electric motor vehicles (EMVs) are designed to provide power different than a 'car', which is the name used for GMVs (gas-based motor vehicles), so nobody should call our thing a car, because we're 'fundamentally different' in design." Though EFI tossed out compatibility with a traditional BIOS, it was still a basic input/output system, so yeah, calling it a non-BIOS seemed like a rather "arbitrary" marketing choice (quoting your word from your comment to my answer). – TOOGAM Jul 6 '17 at 1:24
  • I disagree, TOOGAM, and I stand by my answer as written. The PC BIOS, although not officially documented in the same way as EFI (which has official standards documents), provides a defined set of features that are not provided by EFI (except via its CSM). They both fulfill the same basic role, in the sense of enabling the computer to start the boot process, but they're very different in design, and it's clear from reading the EFI spec that its designers do not consider it a BIOS. – Rod Smith Jul 6 '17 at 12:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.