In any part of your life, you may have heard about the term BIOS and UEFI or you have heard but you have not to deal with it or even you are not familiar with it then you are in right place. In this article, I will in-depth explained that technology. So, let's start.
BIOS stands for Basic Input Output System. It is a system firmware that comes prebuilt with a motherboard by the manufacturer. It starts doing its work just after you power on your PC.
It is the first popular system firmware introduced by IBM for its CP/M OS in 1975 AD.
How BIOS works?
BIOS is an important part of the CPU. When you power on your computer at first the Processor starts doing its work, and at first, the processor calls BIOS firmware, and BIOS gets activated and BIOS will do POST checked to initialize and identify the hardware like hard disks, RAM, peripheral devices, GPU, DMA Controllers and many more. And if all is ok then BIOS will load the first sector of each storage device and loads in memory and scans for valid MBR. If the master boot record(MBR) is found then it will execute the boot loader low-level code present in MBR, which allows the user to select a partition to boot from. If not found first, it proceeds to the next device in the boot order (set in BIOS). If no MBR is found then will give an error like "please insert the disk". If found then will hand over full control to OS and BIOS will go to sleep mode.
It is also called legacy BIOS or normal BIOS.
UEFI stands for Unified Extensible Firmware Interface. It is the successor of BIOS, not a replacement. It is user-friendly GUI based BIOS. The task of both BIOS and UEFI are the same and the main difference lies in the location of the firmware code, how they prepare the system before handling to OS, and what convenience it offers for calling the code while the system is running. in addition to that, it also has advance and features like a secure boot which will discuss later.
EFI specifications were initially developed by Intel. Its first initialization is developed for Intel–HP Itanium platform in the mid-1990s. In July 2005, Intel stops its development of EFI specifications. Later in 2007, Intel with other large computer technology companies like AMD, Dell, IBM, Microsoft, Lenovo, AMI, and Phoenix agreed to use the rebrand of EFI ie UEFI as a universal replacement for BIOS because of various technology evolution will discuss below.
Legacy BIOS vs UEFI
There are lots of differences between Legacy BIOS and UEFI. We will try to get much out of it.
1) BIOS Updates
In olden PC we have generally Legacy BIOS and all the driver information is stored in ROM itself. These legacy BIOS only used to support limited hardware and standard Suppose you want to use new hardware like modern storage devices, network and video devices in your old machine then it will be a little bit difficult as driver information is stored in ROM which is to be updated.
But in the case of UEFI, it is easier because the driver files are stored in the computer harddrive itself.UEFI is compatible with upgraded forms of hardware as drivers are written separately and can be uploaded using USB drive.Click here upgrading UEFI in your system.
2) Drive Support
Legacy BIOS can only support drive sizes up to ~ 2.2 Terabytes theoretically.UEFI supports drive size up to ~ 9 ZetaBytes theoretically which is huge.2.2 TB is Ok at the consumer-level but not at Server Level. But it's better to go with UEFI because of its huge supports.
3) Drive Partition Structure
Legacy BIOS uses MBR(Master Boot Record) for recording hard drives data and partition structure in the same way UEFI uses GPT (GUID partition table).
As MBR uses only 32 bit for a physical partition. So, you cannot have each physical partition of hard drives greater than 2^32 ie ~ 2 GB and also you can only have 4 physical partitions only. You can use 3 physical partitions and many logical partitions.
GPT uses 64 bit for a physical partition. So, theoretically, you can have each physical partition of hard drives up to ~9.44ZB and also you can have up to 128 physical partitions.
Booting time of OS seems to be is faster with UEFI than a system having Legacy BIOS. In UEFI it is faster to resume from sleep mode as well as hibernate mode than Legacy BIOS.
UEFI has Secure Boot Features which helps computers against malicious code executed early in the boot process before control given to the operating system. This is for protecting the system from infected software and viruses. If the Secure Boot feature is enabled and fully configured then if any invalid code is loaded during the boot process then the user is alerted and the system refuses to boot.
6) UI Supports
Legacy BIOS has a text-based UI and resembles BSOD(Blue Screen of Death). You can use only the keyboard to navigate through options.UEFI has a user-friendly GUI and you can use a mouse as well as a keyboard to navigate to menu and options
7) Corruption Preventable
BIOS has MBR which is recorded at the beginning of the hard disk only. So, if it gets corrupted then your system will not work. As UEFI uses GPT which stores partition information in individual partitions.CRC32 checksums fields are maintained for error detection and corruption.
If BIOS gets corrupted then you can recover by reflashing the BIOS, removing the CMOS battery, Resetting the BIOS, etc.
8) Programming Language
Legacy BIOS is written in Assembly Language and UEFI is written mostly in C.So, the code of UEFI is more manageable and scalable.
Most UEFI provides backward compatibility with legacy bios as UEFI BIOS has legacy BIOS functionality integrated so the UEFI can boot a system like Legacy BIOS firmware and can run the boot loader looking at MBR. But nowadays the system is coming with only UEFI support.
10) Bit Mode
BIOS can run in 16-bit mode but UEFI BIOS can run in 32 bit or 64-bit mode.
According to UEFI Specification, the OS and firmware need to match. So, 32 bit OS boot using 32 bit UEFI BIOS firmware and 64 bit OS boot using 64 bit UEFI BIOS firmware. But in Legacy BIOS transition happens, before 16 bit BIOS is loaded and sends the control to 16 bit OS loader to read kernel from the disk or network.Then will transition to 32 bit / 64 bit to load native OS kernel.