Atlas - 01-bootloaders.md

Home / doc / linux-ref / docs / chapters / 01-kernel / 10-boot Rendered HTML view | Size: 2608 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)]
[FILE BEGIN]

Bootloaders

The Linux kernel is not a standalone executable. It must be loaded into memory by a bootloader, which performs early system initialization and transfers control to the kernel. On BIOS-based systems, this typically involves a boot sector, while on UEFI systems the kernel may be loaded as an EFI executable via the EFI stub.

Common Bootloaders are GRUB and Systemd-boot.

Here is a latex diagram of the boot process:

$$ \text{BIOS/UEFI} \rightarrow \text{Bootloader} \rightarrow \text{Kernel} \rightarrow \text{Initramfs (loaded by bootloader)} \rightarrow \text{Userspace} $$

Comparison of bootloaders

Below is a comparison of some of the most common bootloader's used for Linux, along with their support:

| BIOS | UEFI | MBR | GPT | Multiboot | Filesystem support | |----------------------|------|---------|---------|-----------|--------------------| | GRUB | Yes | Yes | Yes | Yes | Built in | | systemd-boot | No | Yes | Yes | Yes | Built in | | EFI boot stub | No | Yes | Yes | Yes | Firmware | | Limine | Yes | Yes | Yes | Yes | Limited | | rEFInd | No | Yes | Yes | Yes | Extensible | | Syslinux | Yes | Partial | Yes | Partial | Limited | | Clover | Yes | Yes | No | Yes | Extensible | | GRUB Legacy | Yes | No | Yes | No | Limited | | LILO | Yes | No | Partial | Yes | Limited | | Unified kernel image | No | Yes | Yes | Yes | Firmware |

What a bootloader does

A bootloader is responsible for:

  1. Locating a kernel image on disk or other media
  2. Loading the kernel into memory
  3. Loading an initramfs (if present)
  4. Providing kernel command line arguments
  5. Transferring control to the kernel entry point

On modern systems, the bootloader may also:

BIOS vs UEFI boot

BIOS (Legacy)

UEFI

[FILE END]
(C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.