This article is a summary of how the two technical terms, "Basic Input Output System (BIOS)" and "Unified Extensible Firmware Interface (UEFI)" have been used. Since this term was born in 1975 and I started using PCs in the mid-1990s, I wrote the description of this period based on hearsay, wikipedia, and other articles.
The term "BIOS" originated from CP/M, an OS for microcomputers born in 1974. BIOS referred to a program for I/O control in CP/M, which played the role of a device driver today. Unlike PC/AT compatible machines (so-called "PC"), which will be discussed later, the BIOS was stored on a external storage as part of the OS. For most people, the BIOS is something that is stored in ROM, like the one in the PC described below.
In IBM's PC/AT (released in 1984), the software in charge of input/output was called BIOS, following CP/M. It's the same as CP/M. However, BIOS was not part of the OS like the CP/M BIOS, but was provided as firmware in the machine itself, and was stored in ROM.
In response to the success of the PC/AT, a large number of PC/AT-compatible machines, so-called personal computers (PCs) that have continued to the present day, had BIOS that was compatible with the PC/AT. BIOS in this sense is the one that most software developers imagine 1. For those who are not familiar with computers, the interface for configuring the BIOS, especially the graphical interface, has been recognized as BIOS.
Since the mid-1990s, Intel and HP have been trying to develop and popularize machines using Itanium, a CPU based on the IA-64 architecture for servers. In this process, BIOS was regarded as insufficient for server machines, so a new firmware interface was created. This is the Extensible Unified Interface (EFI). As you can see, EFI is not "U"FEI. EFI is probably not well known to anyone except those who have been involved with IA-64 machines at server vendors in the 2000s.
EFI itself is an interface standard, but I seem to remember that EFI and its implementation were conventionally called EFI at that time.
In 2005, the Unified Extensible Firmware Interface (UEFI) was born as a firmware specification for various platforms including PCs. UEFI is created by the Unified EFI Forum, which includes various other vendors.
Although UEFI is an interface standard as well as EFI, the interface and its implementation have been collectively referred to as UEFI. UEFI is also called UEFI BIOS. In addition, there are still a lot of people who refer to the UEFI graphical interface as BIOS.
It was virtually impossible to replace BIOS with UEFI right after the release of UEFI. For example, many software such as OSes did not support the UEFI interface.
The Compatibility Support Module (CSM), standardized by Intel, was created to solve this problem. This module made it possible to create firmware with UEFI interface and the old BIOS interface.
Today's PCs can be divided into four classes in the context of BIOS, UEFI and CSM 2.
- class 0: BIOS without any consideration for UEFI. It's so-called "legacy BIOS"
- class 1: Providing UEFI interface but only export legacy BIOS interface to software.
- class 2: Exporting both legacy BIOS interface and UEFI interface to software.
- class 3: Exporting only UEFI interface to software
It's worth mentioning that newer machines tend to have larger class numbers.
In 2017, Intel announced its intention to migrate all machines to class 3 by 2020, i.e. to stop supporting legacy BIOS. Although I don't know if they've actually achieved that goal, I suspect that eventually most or all machines will be class 3 machines only.
As an aside, there is a reason why I wrote "most". There is a lot of software out there that is not likely to be updated but is indispensable to a particular organization. In order to continue to run such software, I suspect that class 0~2 machines will continue to be released for a while. And even after this situation is over, there will probably be people wandering around junk stores looking for such old machines.
I introduced the history of two technical terms: BIOS and UEFI. Hope you enjoyed it. Feel free to ask me if you have any comments.
- wikipedia entry on BIOS (Japanese)
- wikipedia's BIOS entry (English)
- wikipedia entry on CP/M
- wikipedia entry on IBM Personal Computer/AT
- wikipedia entry on UEFI
- Brian Richardson (Fall 2017 UEFI Plugfest) "Last Mile" Barriers to Removing Legacy BIOS
- "Intel® Platform Innovation Framework for EFI" (PDF). Compatibility Support Module Specification compatibility-support-module-specification-v098.pdf)
- Kildall, Gary Arlen (January Unified Extensible Firmware Interface 1980). "The History of CP/M - The Evolution of an Industry: One Person's Viewpoint" (Vol. 5, No. 1, Number 41 ed.). Dr. Dobb's Journal of Computer Calisthenics & Orthodontia. pp. 6-7. Archived from the original on 2016-11-24. Retrieved 2013-06-03
- "BIOS Boot Specification 1.01" (PDF). Phoenix.com. 1996-01-11.