Basic Input-Output System Vs. Unified Extensible Firmware Interface
Introduction:
Introduction:
Basic Input-Output System (BIOS) and Unified Extensible Firmware Interface (UEFI) are two firmware interfaces for computers that work as an interpreter between the operating system and the computer firmware. Both of these interfaces are used at the startup of the computer to initialize the hardware components and start the operating system which is stored on the hard drive.
Role wise both are the same. The older one is now called Legacy BIOS and the newer version is called UEFI.
BIOS:
BIOS works by reading the first sector of the hard drive (MBR) which has the next device’s address to initialize or code to execute. BIOS also selects the boot device that needs to be initialized for starting the operating system. Since BIOS has been in use since the very beginning (since 1975), it still works in 16-bit mode, limiting the amount of code that can be read and executed from the firmware ROM.
UEFI:
UEFI does the same task a little differently. It stores all the information about initialization and startup in a .efi file instead of the firmware. This file is stored on the hard drive inside a special partition called EFI System Partition (ESP). The ESP partition will also contain the boot loader programs for the Operating System installed on the computer. UEFI is meant to completely replace BIOS in the future and bring in many new features and enhancements that can’t be implemented through BIOS.
Some of those features are discussed below:
(1) Breaking out of size limitations:
BIOS uses the Master Boot Record (MBR) to save information about the hard drive data while UEFI uses the GUID partition table (GPT). The major difference between the two is that MBR uses 32-bit entries in its table which limits the total physical partitions to only 4. Each partition can only be a maximum of 2TB in size, while GPT uses 64-bit entries in its table which dramatically extends the support for size possibilities of the hard drive up to Zeta Byte and maximum 128 partitions. (Read more on the difference between MBR and GPT in my next blog article).
(2) Speed and performance:
Since UEFI is platform-independent, it may be able to enhance the boot time and speed of the computer. This is especially the case when you have large hard drives installed on your computer. This enhancement depends upon how UEFI is configured to run. UEFI can perform better while initializing hardware devices. Normally this speed enhancement is a fraction of the total boot time, so you will not see a huge difference in overall boot time. Developers can make use of the UEFI shell environment which can execute a command from other UEFI apps optimizing the performance of the system further.
(3) Security
Since UEFI is platform-independent, it may be able to enhance the boot time and speed of the computer. This is especially the case when you have large hard drives installed on your computer. This enhancement depends upon how UEFI is configured to run. UEFI can perform better while initializing hardware devices. Normally this speed enhancement is a fraction of the total boot time, so you will not see a huge difference in overall boot time. Developers can make use of the UEFI shell environment which can execute a command from other UEFI apps optimizing the performance of the system further.
(3) Security
'Secure boot' is a feature of UEFI that has been implemented in Windows 8 recently. The biggest benefit of UEFI is its security over BIOS. UEFI can allow only authentic drivers and services to load at boot time, making sure that no malware can be loaded at computer startup. Microsoft implemented this feature to counter-piracy issues in Windows, while Mac has been using UEFI for quite some time now. Secure Boot works by requiring a digital signature of boot loaders which should require a digital signature by the Kernel. This process continues until the operating system is completely started. This secure boot feature is also one of the reasons why it is more difficult to install another operating system on a Windows machine.
(4) Backward Compatibility using the Compatibility Support Module (CSM):
For backward compatibility, most of the UEFI implementations on PC-class machines also support booting in legacy BIOS mode from MBR-partitioned disks, through the Compatibility Support Module (CSM) which provides legacy BIOS compatibility. In that scenario, booting is performed in the same way as on legacy BIOS-based systems, by ignoring the partition table and relying on the content of a boot sector.
BIOS booting from MBR-partitioned disks is commonly called BIOS-MBR, regardless of it being performed on UEFI or legacy BIOS-based systems. As a side note, booting legacy BIOS-based systems from GPT disks is also possible, and it is commonly called BIOS-GPT.
Despite the fact MBR partition tables are required to be fully supported within the UEFI specification, some UEFI firmware immediately switches to the BIOS-based CSM booting depending on the type of boot disk's partition table, thus preventing UEFI booting to be performed from EFI System partitions on MBR-partitioned disks. Such a scheme is commonly called UEFI-MBR.
(5) Network boot support:
UEFI specification includes support for booting over the network through the Preboot eXecution Environment (PXE). Underlying network protocols include Internet Protocol (IPv4 and IPv6), User Datagram Protocol (UDP), Dynamic Host Configuration Protocol (DHCP), and Trivial File Transfer Protocol (TFTP).
Also included support for boot images remotely stored on storage area networks (SANs), with Internet Small Computer System Interface (iSCSI) and Fibre Channel over Ethernet (FCoE) as supported protocols for accessing the SANs.
(6) Boot Manager:
The UEFI specification defines a "boot manager", a firmware policy engine that is in charge of loading the operating system loader and all necessary drivers. The boot configuration is controlled by a set of global NVRAM variables, including boot variables that indicate the paths to the loaders.
Operating system loaders are a class of the UEFI applications. As such, they are stored as files on a file system that can be accessed by the firmware, called EFI System partition (ESP). UEFI defines a specific version of FAT, which encompasses FAT32 file systems on ESPs, and FAT16 and FAT12 on removable media. Supported partition table schemes include MBR and GPT, as well as El Torito volumes on optical disks. UEFI does not rely on a boot sector, although ESP provides space for it as part of the backward compatibility. UEFI booting from GPT disks is commonly called UEFI-GPT.
Boot loaders can also be automatically detected by the UEFI firmware, to enable booting from removable devices. Auto-detection relies on a standardized file path to the operating system loader, depending on the actual architecture to boot. Format of the file path is defined as
/BOOT/BOOT.EFI
, e.g. /efi/BOOT/BOOTX64.EFI
Technical differences between the two:
The origin of UEFI:
The original EFI (Extensible Firmware Interface) specification was developed by Intel. Some of its practices and data formats mirror ones from Windows. In 2005, UEFI deprecated EFI 1.10 (final release of EFI). The UEFI specification is managed by the Unified EFI Forum.
The original motivation for EFI came during the early development of the first Intel–HP Itanium systems in the mid-1990s. BIOS limitations (such as 16-bit processor mode, 1 MB addressable space, and PC AT hardware) were unacceptable for the larger server platforms Itanium was targeting. The effort to address these concerns was initially called Intel Boot Initiative, which began in 1998 and was later renamed EFI.
In July 2005, Intel ceased development of the EFI specification at version 1.10 and contributed it to the Unified EFI Forum, which has evolved the specification as the Unified Extensible Firmware Interface (UEFI). The original EFI specification remains owned by Intel, which exclusively provides licenses for EFI-based products, but the UEFI specification is owned by the Forum.
Version 2.1 of the UEFI (Unified Extensible Firmware Interface) specification was released on 7 January 2007. It added cryptography, network authentication, and the User Interface Architecture (Human Interface Infrastructure in UEFI). The current UEFI specification, version 2.4, was approved in July 2013.
Criticism on the development:
Criticism on the development:
Numerous digital rights activists have protested against UEFI. Ronald G. Minnich, a co-author of Coreboot, and Cory Doctorow, a digital rights activist, have criticized EFI as an attempt to remove the ability of the user to truly control the computer. It does not solve any of the BIOS's long-standing problems of requiring two different drivers—one for the firmware and one for the operating system—for most hardware.
Open-source project TianoCore also provides UEFI interfaces. Tiano Core lacks the specialized drivers that initialize chipset functions, which are instead provided by Coreboot, of which TianoCore is one of many payload options. The development of Coreboot requires cooperation from chipset manufacturers to provide the specifications needed to develop initialization drivers.
Open-source project TianoCore also provides UEFI interfaces. Tiano Core lacks the specialized drivers that initialize chipset functions, which are instead provided by Coreboot, of which TianoCore is one of many payload options. The development of Coreboot requires cooperation from chipset manufacturers to provide the specifications needed to develop initialization drivers.
Conclusion:
There are several benefits as well as drawbacks of UEFI. It is not very common and is not supported by every computer or device. Its built-in boot manager means that there is no need for separate boot loaders. The biggest benefit of UEFI is that it can work alongside BIOS. It can sit on top of the BIOS and work independently. BIOS can still be used in devices that do not require large storage or security.
(References: Wikipedia.com and MakeTechEasier.com)
No comments:
Post a Comment