In this tutorial, we’ll explain the differences between BIOS, CMOS, and UEFI.
There are significant differences between BIOS (Basic Input/Output System) and CMOS (Complementary Metal Oxide Semiconductor). Generally, the terms BIOS and CMOS are used interchangeably. A BIOS chip in a motherboard contains the program (firmware commonly called BIOS) to boot the computer. A CMOS chip stores the settings like date & time, fan speed, booting sequence.
During the early days of Windows OS, the DOS command WIN was necessary to start windows. A similar concept in the form of a new interface is in UEFI (Unified Extensible Firmware Interface) to extend a better user experience and provide a new secured BIOS.
There are several advantages of UEFI over BIOS as shown in the table below:
The following figure shows the difference between BIOS and UEFI during booting:
The bootloader is an interface between hardware and the operating system (OS). One of the advantages of UEFI is the secure booting process using a safe boot loader. This feature prevents malicious access, allows remote monitoring and control during the booting process.
When we first switch on the computer, a Power On Self Test (POST) is ran by the BIOS:
It tests if the computer hardware is working correctly. After the POST run is successful and the hardware is ready, it calls the code stored in the storage device, such as a hard disk, and finally runs the Bootloader to start the operating system:
As soon as a Bootloader is instructed by firmware to start, it loads the main memory first and then loads the kernel of the OS. A computer kernel is the main element of the computer system that manages all functions such as storage, permissions, and drivers. On successful completion of its assigned jobs, the Bootloader returns the system control to the kernel.
The program in a BIOS chip is non-volatile. Non-volatile means even when the computer is off, the program won’t be erased:
Conventionally BIOS has three modes:
- Boot – Start the OS
- Setup – Configure the firmware
- Update – Update the firmware version
The computer requires few settings such as the date, time, the boot sequence, and the custom settings for devices and peripherals. These settings are retained in the CMOS chip and are volatile:
The CMOS chip is also referred to as RTC (real-time clock), NVRAM (non-volatile RAM), or CMOS RAM:
The CMOS chip requires a power supply from a CMOS battery to hold the custom settings. If the battery is unplugged from the motherboard, the CMOS will reset the settings to the stored default settings in the BIOS chip:
Most motherboard manuals provide a complete list of available CMOS options. These vary according to the manufacturer’s BIOS design specifications.
Here are some common symptoms that CMOS power supply from the battery is down:
- Date and time showing old date instead of current date and time
- Peripherals such as mouse and keyboard behaving strangely
- Drivers disappeared
- No internet connection
Intel’s announcement that it won’t support traditional BIOS from 2020 led to the faster UEFI adoption by the motherboard manufacturer. UEFI provides a lightweight operating system and interfaces the computer hardware. UEFI is a virtual platform for running firmware programs:
During the booting process, UEFI does the following:
- Acts as a boot agent
- Provides a pre-OS command-line interface (EFI Shell)
Most of the new motherboards have built-in UEFI with a user-friendly graphical user interface that supports different colors and even animation:
UEFI has rich new features in the platform firmware, an enhanced set of policies and specifications.
The Firmware gives an initial set of commands to run when the computer is on. The Firmware is non-volatile memory attached to a motherboard. Sometimes peripheral devices like video cards and storage controllers are available with built-in Firmware. UEFI has an additional mode called “User Mode” compared to the BIOS. In the User Mode, the EFI shell runs firmware commands and other utility programs. It also launches 64-bit Windows from the 64-bit UEFI platform.
During the booting process, only the platform is initialized in Real Mode by UEFI Firmware. Once the platform is initialized, UEFI uses a rudimentary OS to enable 64-bit Protected Mode for subsequent booting.
The owner of the secured booting process (Platform Vendor /OEM /Enterprise) owns a digitally signed key pair. The private key is secret to the owner. A public key is for distributing openly for secured access. The owner is responsible to digitally sign the firmware files (images) in the first stage boot process located in the UEFI motherboard.
For UEFI supported secured booting for Windows, the following are the limitations:
- UEFI v2.3.1 with secure boot enabled
- UEFI is supported only by 64-bit Windows 8 or later
The secure boot allows digitally signed drivers to load and stops any digitally unsigned drivers from loading. Additionally, UEFI can run pre-OS utility programs like networking and run driver programs for hardware test diagnostics.
This article gave you an overview of BIOS, CMOS, UEFI and the differences between them.
A BIOS allows running several OS without any change in settings that pose a security threat. In UEFI-based systems, firmware utility programs come pre-installed as part of the system maintenance tools. This tool provides secure booting to prevent digitally unsigned drivers from loading.
However, UEFI also provides a legacy mode for the text-based user interface. This feature is useful for users who are comfortable with a text-based user interface and also to cater the special need such as installing a Linux distro.