UEFI & BIOS fact sheet _______________________________________________________________________ /| o | o | | | UEFI | IBM PC-compatible BIOS | | |++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| | | - Is hardcoded to always use | - Can use any partition scheme, | | | GPT partitioning (4) | unlimited partitions | | |--------------------------------+-------------------------------------| | | - Does not have any runtime | - Has runtime services for basic | | | services - the operating | I/O - the operating system does not | | | system needs a driver for | need drivers for disk controllers, | | | every device in the computer(1)| keyboard and display to work | | |--------------------------------+-------------------------------------| | | - Has a LONG specification | - The specification is relatively | | | (already more than 2048 pages) | simple and an average BIOS fits | | | and the implementations are | into a 64 kB rom chip. | | | also huge (usually at least | | | | 64 - 128 megabytes in size) | | | |--------------------------------+-------------------------------------| | | - Only supports one CPU mode | - Has runtime services for | | | per implementation | switching between different 16-bit | | | | and 32-bit CPU modes | | |--------------------------------+-------------------------------------| | | - Boot services are | - Returns control to the operating | | | completely blocking. Does | system while doing disk I/O via | | | not support multitasking | the int15,ah=90 hook. | | |--------------------------------+-------------------------------------| | | - Bootable binaries have to | - Loads the first sector of the | | | be in Microsoft's PE file | boot drive into memory and runs it | | | format | | | |--------------------------------+-------------------------------------| | | - Has a "secure boot" that | - Can boot from a physically write | | | doesn't really work, because | protected media, which cannot be | | | of various security flaws | hacked. | | | in the overly complex | | | | UEFI implementations | | | |--------------------------------+-------------------------------------| | | - Usually slow boot times | - POSTing time can be less than | | | because of the complexity | ten seconds (3) | | |--------------------------------+-------------------------------------| | | - Can not boot operating | - Any operating system can easily | | | systems that don't support | be ported to a computer that uses | | | GPT partitioning | BIOS | | |--------------------------------+-------------------------------------| | | - Requires a FAT32 filesystem | - Does not require any filesystems | | | on the disk where the bootable | at all. | | | binaries are stored. (2) | | | |--------------------------------+-------------------------------------| | | - Can only boot from random | - Can boot from any device, even | | | access devices | from tape drives | | |--------------------------------+-------------------------------------| |/______________________________________________________________________/ The UEFI API is designed to be as anticompetitive as legally possible and lock other operating systems out without directly boot-locking the computer to one operating system. (1) The FAT32 filesystem was still patented by Microsoft when UEFI became a requirement for Windows 8. It means that creating UEFI-bootable operating systems was illegal without buying the necessary licenses to use the patented features of FAT32. (2) The difference in boot times has actually nothing to do with the type of the firmware API. In UEFI firmwares the POST (Power On Self Test) tends to take longer, because newer hardware is more complex and has more things to test. (3) UEFI spec actually mandates that implementations must also support MS-DOS-style partition tables, but most implementations only support GPT. (4) BIOS uses 64-bit indexing for disk sectors. It means that with 512-byte sectors the maximum size of a hard drive would be 8'589'934'592 terabytes. With 4096-byte sectors the limit is 68'719'476'736 terabytes. BIOS does NOT have a 2 TB limit for hard drive size. That is Microsoft's propaganda. The 2TB partition size limit comes from the so-called MBR partitioning scheme that was designed by Microsoft for use in the MS-DOS operating system in the 80's. BIOS is in fact a much older thing than that. BIOS does not care about partitioning - the disk may have any partitioning scheme (MBR, GPT or any other) or may not be partitioned at all and BIOS can still boot from it just fine. BIOS supports every sector size from 128 bytes to 64 kilobytes. The only limitation is that the sector size has to be a power of two. There is absolutely no difference between the so-called "user interface" between UEFI and BIOS. Both can have either text mode or graphical SETUP programs. Some clone PCs in the 90's had a graphical SETUP program in their firmware, but it was a bad idea because it only worked with specific display hardware, usually requiring at least VGA-compatible graphic card and display. Some computers don't even have a SETUP program in the firmware ROM. Instead they are configured using jumpers on the motherboard or the SETUP program is loaded from an external media, usually from a floppy disk. In some modern UEFI computers the firmware settings are changed using a proprietary Windows program. Updated Wed 29 May 2024