BIOS and UEFI are two of a kind, but completely different from each other. They serve one major purpose: booting the machine and they do it in different ways and with different options. Without them, all your hardware and the very machine you’re reading this blog on, wouldn’t even start. But what are the differences? And why are they mutually exclusive?
BIOS stands for Basic Input Output System. It is a special type of software called firmware stored on the motherboard. When the power button is pressed BIOS is the first software that runs.
It is responsible for mainly 3 things:
- Performing POST (Power On Self Test)
- Basic IO
BIOS still works in the 16-bit realm. Most BIOS can only boot from an MBR(Master Boot Record) partitioned disk. MBR only supports up to 2TB partitions. This means it won’t recognize the disk past 2TB. We can use GPT(GUID Partition Table) for disks bigger than 2TB. The only problem is that most BIOS does not support GPT.
This means if we have a 3TB disk, we will not be able to completely use it with BIOS.
Unified Extensible Firmware Interface in short UEFI, is low-level software that starts when you boot your PC before booting your operating system like BIOS. It aims to resolve what BIOS could not.
A UEFI can (in addition to what a BIOS can):
- Can Boot from a disk larger than 2 TB using GPT.
- Provides the user with a graphical user interface, which is easy to use than the old terminal interface in BIOS
- Provide mouse support. (BIOS can rarely do this)
Some of the technical advantages of using UEFI are:
- Secure Boot: UEFI Secure Boot is an optional setting that enforces signature checking of the boot process. When the PC starts, the firmware checks the signature of each piece of boot software, including UEFI firmware drivers, EFI applications, and the operating system. If the signatures are valid, the PC boots and the firmware gives control to the operating system. In this way, a system can guard against malicious attacks, rootkits, and unauthorized software updates that could happen prior to the OS launching.
- GUID Partition Table (GPT): Support GPT replaces the obsolete Master Boot Record (MBR) partition scheme. GPT allows for storage media boot partitions greater than 2 TB in size, more than 4 partitions (up to 128), and the use of newer storage media such as PCI Express devices. It also improves data integrity through redundant disk layout structures.
- Platform and Architecture Independence: UEFI supports x86, x86_64, ARM, ARM64, PowerPC, Itanium, and other architectures. UEFI can also be emulated via hypervisors like Hyper-V, VMware, Xen, KVM, and others. UEFI simplifies device management through a homogeneous firmware experience.
- Consistent Variables and Services: A standardized set of variables, services, and drivers are common to all UEFI implementations regardless of the host device. UEFI on a desktop PC features the same core set of UEFI capabilities found on a device such as a smartphone. Application developers can create software tools without worrying about platform-specific firmware quirks commonly found with BIOS. Firmware developers can isolate platform-specific code through modularization.
- Modular and Extensible: UEFI firmware modules can be added, removed, or updated by vendors and device owners. New modules can be created to extend the capabilities of a device’s firmware. Modules may interact with device resources (e.g. network adapters, RAID controllers), UEFI environment variables, and kernel-mode drivers.
- Improved Boot Performance: UEFI can run in 32-bit or 64-bit mode and has more addressable address space than BIOS, which means your boot process is faster. It also means that UEFI setup screens can be slicker than BIOS settings screens, including graphics and mouse cursor support. Not only this, some of the UEFI modules and drivers can be loaded in parallel, rather than legacy sequential, to reduce boot time.
Drawbacks of UEFI
The biggest problem with UEFI is hardware and software support. In order for it to work properly, the hardware and operating system must both support the appropriate specification. This isn’t as much of a challenge with the current Windows or macOS but older operating systems such as Windows XP do not support it.
BIOS has been extremely powerful booting solution for last 20 plus years. But now it has reached some limitations that makes it tough to grow. UEFI on the other hand has taken good deal of methods from BIOS and has streamlined it for the users. Sooner or later it is going to completely replace BIOS.