Bios and Uefi 2
Bios and Uefi 2
So you might have heard the acronyms BIOS and UEFI thrown
around, especially when trying to switch Operating Systems or
messing around with overclocking.
And you might know what these acronyms stand for (Unified Extensible
Firmware Interface and Basic Input/Output System, respectively). But have you
ever wondered how they're used in a computer system?
Boot Procedure
So, how does a computer boot? Let's go step by step:
During normal system startup, a computer's basic input/output system, or BIOS, completes a hardware
bootstrap or initialization. It then runs a bootloader which loads the kernel from a storage device -- such
as a hard drive -- into a protected memory space. Once the kernel is loaded into computer memory, the
BIOS transfers control to the kernel. It then loads other OS components to complete the system startup
and make control available to users through a desktop or other user interface.
BIOS:
BIOS stands for Basic Input/Output System, the firmware we talked about in the
above boot procedure.
It provides many helper functions that allow reading boot sectors of attached
storage and printing things on screen. You can access BIOS during the initial
phases of the boot procedure by pressing del, F2 or F10.
UEFI:
ASUS UEFI
UEFI stands for Unified Extensible Firmware Interface. It does the same job as
a BIOS, but with one basic difference: it stores all data about initialization and
startup in an .efi file, instead of storing it on the firmware.
This .efi file is stored on a special partition called EFI System Partition (ESP)
on the hard disk. This ESP partition also contains the bootloader.
UEFI was designed to overcome many limitations of the old BIOS, including:
1. UEFI supports drive sizes upto 9 zettabytes, whereas BIOS only supports 2.2
terabytes.
2. UEFI provides faster boot time.
3. UEFI has discrete driver support, while BIOS has drive support stored in its
ROM, so updating BIOS firmware is a bit difficult.
4. UEFI offers security like "Secure Boot", which prevents the computer from
booting from unauthorized/unsigned applications. This helps in preventing
rootkits (Malware), but also hampers (a basket or box) dual-booting, as it treats other
OS as unsigned applications. Currently, only Windows and Ubuntu are signed
OS.
5. UEFI runs in 32bit or 64bit mode, whereas BIOS runs in 16bit mode. So UEFI
is able to provide a GUI (navigation with mouse) as opposed to BIOS which
allows navigation only using the keyboard.
You might not need UEFI
Though all modern computers come equipped with UEFI by default, some
reasons why you might choose BIOS over UEFI are:
1. If you're beginner and don't care about messing with any type of firmware,
BIOS is for you.
2. If you have < 2 TB per hard disk or partition, you can go with BIOS.
3. BIOS allows running multiple operating systems without changing any settings
This can be a security issue from a modern standpoint, but hey, no hassles for
the user.
4. BIOS provides system information to the operating system. So if your OS runs
in 16 bit mode, it does not require writing code for interacting with hardware. It
can directly use methods provided by BIOS. Else if the OS switches over to
32bit or 64bit mode, then it needs to provide its own subroutines for interacting
with hardware.
5. If you are someone who prefers a keyboard and text based UI over navigation
with a mouse and GUI, then BIOS is for you.
UEFI takes these limitations into account and provides a Legacy mode. In it you
can run everything as if you had a BIOS firmware. But keep in mind that Intel
has announced that it won't support traditional BIOS from 2020.