Your PC needs software to make it usable. Specifically, it needs software to control things before the Operating System software can take over. The BIOS or UEFI are options for this software. They allow you to control powerful characteristics of the machine, and they may also contain diagnostic and testing software for the system. A great example of using this software is to set the boot order of the device. Should it try and find the operating system for boot from a USB device first, or should it use the local hard disk drive first?
Why did engineers try and improve upon the existing Basic Input/Output System (BIOS) by creating the UEFI? Here are just some of the reasons:
- They wanted better security; they wanted to ensure they could better protect the pre-boot processes on the PC
- They wanted to make faster start times possible for a PC
- They wanted to improve the ability of a PC to resume from hibernation
- They needed to provide support for hard drives larger than 2.2 Terabytes
- They wanted to provide support for 64-bit firmware device drivers
- They wanted to create new software that would be backwards compatible with hardware reliant on a BIOS
The UEFI is controlled by the Unified EFI Forum. This forum is an alliance between many PC giants, like Apple, Dell, Microsoft, etc.
Unlike the BIOS, UEFI does not rely on a boot sector. The UEFI specification uses a boot manager as part of the UEFI specification. When a computer is powered on, the boot manager checks the boot configuration and, based on its settings, loads and executes the specified operating system loader or operating system kernel. The boot configuration is a set of global-scope variables stored in NVRAM. This includes the boot variables that indicate the paths to operating system loaders or kernels.
Operating system loaders can be automatically detected by a UEFI implementation, which enables easy booting from removable devices such as USB flash drives. This automated detection relies on a standardized file path to the operating system loader, with the path depending on the computer architecture. Booting UEFI systems from GPT-partitioned disks is commonly called UEFI-GPT booting. It is also common for a UEFI implementation to include a menu-based user interface to the boot manager, allowing the user to manually select the desired operating system (or system utility) from a list of available boot options.
Want more information? Wikipedia has it here!