Bootloader
The bootloader is the first software program that runs when a
computer is booted. Its job is to load the Linux kernel and to
start the init system.
Boot manager
When you first power on your computer, a boot manager will present
you with a boot menu. If you have multiple operating systems
installed, the boot manager will allow you to choose which one to
boot. If a Linux distro has multiple kernels installed, the boot
manager will allow you to choose which kernel to boot.
BIOS
The Basic Input/Output System (BIOS) is firmware that resides in a
chip on a computer motherboard. It contains the basic instructions
that start up a computer. After the computer is started, the BIOS
will perform a Power-on Self Test (POST) to verify that the
hardware is working properly. Then, the BIOS will start the
bootloader. It worked well for its time but is now outdated. One
problem is that it can’t deal with drives of more than two
terabytes in size. I mean, if you were to install a three-Terabyte
drive in a BIOS-based machine, you’d be able to use the drive, but
one Terabyte of drive space would go to waste. BIOS also can’t deal
with the Secure Boot feature.
EFI/UEFI
This was originally called the Extensible Firmware Interface (EFI),
but the name was changed to Unified Extensible Firmware Interface
(UEFI) for the Version 2 variant. It has replaced BIOS on newer
computers. Unlike BIOS, EFI/UEFI works very well with very large
drives. It also works with the Secure Boot feature.
MBR
There are two general categories of partition types. The Master
Boot Record (MBR) type is the older type. Its main flaw is that it
doesn’t work with partitions that are larger than two
terabytes. Even if you have an EFI/UEFI-based machine that can work
with large drives, MBR still limits you to these smaller
partitions. What’s a bit confusing is that the term MBR also refers
to the first 512-byte sector of a drive, which is where the
bootloader gets installed on BIOS-based machines.
GPT
The GUID Partition Table (GPT) type of partition has replaced the
old MBR type. It works well with partitions that are larger than
two Terabytes. (The exact maximum partition size depends on which
filesystem you’ve used to format the partition.) On EFI/UEFI
machines, you need to install the bootloaders in a GPT partition
instead of in an MBR. (I’ll explain why I’ve said bootloaders
instead of bootloader later.)
GRUB2
The Grand Unified Bootloader Version 2 (GRUB2) is currently the
most popular bootloader on laptops, desktops, and servers. It works
well on machines with multiple installed operating systems. It’s
not part of the systemd ecosystem, but it can be used on systemd
machines.
systemd-boot
This bootloader is part of the systemd ecosystem. It isn’t widely
used just yet, but it could be someday. It’s lighter-weight and
simpler to configure than GRUB2, and it also works well for
machines with multiple operating systems installed.