Per my understanding,
- BIOS is the traditional boot method of Intel x86 computers. It starts by loading a short program called BIOS from somewhere on the motherboard (usually some EEPROM), which does a range of things like POST, before loading data the hard drive, including but not limited to further-stage bootloader codes.
- UEFI is the new method of booting. It also starts with loading a small piece of code stored somewhere outside the main secondary storage (user hard drives), which also does a range of things before accessing hard drives.
The differences I'm able to tell so far:
- BIOS loads something at a fixed location on a hard drive, specifically, the first 512 byte, called the master boot record, which loads everything further required to boot a OS.
- UEFI doesn't load from a fixed location on hard drive. Instead it searches the partition table (GPT) and looks for a ESP (EFI System Partition) and find.
.efifiles inside and executes them.
The confusions I'm currently having:
- I've heard that in BIOS and UEFI, hardware initialization order is different and UEFI is usually a bit faster in this. How exactly is it?
- Is there any fundamental difference between BIOS and UEFI? To me, at the very basis, they both load the initial code from a piece of special hardware (a ROM) which does the necessary things before loading data from disk, which is a "fundamental similarity".