UEFI & BIOS fact sheet
                                                    
  _______________________________________________________________________                                                  
 /| o                              |                                   o |
| |   UEFI                         |   IBM PC-compatible BIOS            |
| |++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++|
| | - Is hardcoded to always use   | - Can use any partition scheme,     |
| | GPT partitioning               | 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   |
| | and the implementations are    | simple and an average BIOS fits     |
| | also huge (usually at least    | into a 64 kB rom chip.              |
| | 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)

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.