Today I would like to tell you about UEFI, before that let me put before you a more familiar term – BIOS, yes! the Basic Input Output System, the first code which runs in the PC when powered on. Now coming to our topic, the UEFI is actually a replacement to our old friend(BIOS). The firmware was initially designed by Intel(known as EFI then) for its Itanium based systems. It introduces new ways of booting an OS that is different from the previously “MBR boot code” method followed for BIOS systems.
Instead of the boot code being stored at the motherboard’s BIOS, UEFI is placed in the /EFI/ directory in some non-volatile memory, it can be in the motherboard, in the hard drive or in the network share thus making it a light weight OS. It has support to reading the partition table and understanding the filesystems.
To boot, it uses a special partition in the partition table called “EFI SYSTEM PARTITION” in which files required to be launched by the firmware is stored. Each vendor can store its files under <EFI SYSTEM PARTITION>/EFI/<VENDOR NAME>/ folder and can use the firmware or its shell (UEFI shell) to launch the boot program.
Every program whether a loader, utility or tool should be a UEFI Application corresponding to the EFI firmware architecture.
The boot process in UEFI
- System switched on
- UEFI firmware loaded
- The firmware reads its boot manager to determine which UEFI application to be launched and from where
- The application is launched from FAT32 formatted UEFISYS partition as defined in the boot entry in the bootmanager
- The application may launch another application, or kernel and initramfs(initial ram) based on the configurations
It can access all the hardware and also can be used to surf the net, it also has a mouse driven GUI. Many new model systems, although having BIOS in name is actually using the UEFI, the name is kept to avoid confusion. It said that Windows 8 systems will be making use of it.