🍞 A modern UEFI bootloader for the linux kernel
  • TypeScript 55.4%
  • Nix 33.8%
  • Rust 9.9%
  • Just 0.9%
Find a file
2026-06-11 13:09:47 +02:00
.cargo Enable location details on final binary 2026-06-10 13:48:59 +02:00
nixos/modules/system/boot/loader/bread Make bread installer more consistent with limine 2026-06-11 13:09:47 +02:00
packages Package bread for NixOS; replace qemu scripts with NixOS VM 2026-06-10 12:44:24 +02:00
src Update to edition 2024 2025-03-23 21:11:59 +01:00
vm Package bread for NixOS; replace qemu scripts with NixOS VM 2026-06-10 12:44:24 +02:00
.envrc Configure nix flake 2026-05-19 18:03:38 +02:00
.gitignore Package bread for NixOS; replace qemu scripts with NixOS VM 2026-06-10 12:44:24 +02:00
Cargo.lock Update dependencies 2025-10-27 12:45:52 +01:00
Cargo.toml Update manifest details 2026-06-01 10:52:58 +02:00
flake.lock Update flake lockfile 2026-06-11 13:09:14 +02:00
flake.nix Package bread for NixOS; replace qemu scripts with NixOS VM 2026-06-10 12:44:24 +02:00
justfile Package bread for NixOS; replace qemu scripts with NixOS VM 2026-06-10 12:44:24 +02:00
LICENSE Update license 2024-06-11 15:57:46 +02:00
README.md Remove effie from readme 2024-08-19 12:53:43 +02:00
rust-toolchain.toml Update rust toolchain and enable miri 2026-05-28 17:22:29 +02:00

Bread

An experimental UEFI bootloader for the Linux kernel written in Rust.

Unlike other UEFI-only bootloaders, Bread does not use the kernel UEFI-stub. Instead, it relies on the same boot protocol that has been used in traditional BIOS booting for years. This allows for greater control over the memory map and enables more advanced boot scenarios, such as secure boot and encryption, without requiring special support from the kernel.

Currently, the following architectures are supported:

  • x86-64
  • aarch64

In the future, riscv64gc will also be a target, but currently, there are no actual UEFI riscv boards available.

Building

Before building Bread, there are a few prerequisites:

  • just must be installed and available in the PATH.
  • Rust must be installed via rustup. Distro-provided rust versions will not work.
  • QEMU can be optionally installed to run the bootloader in a VM.

To build Bread, simply run just in the terminal. You can then copy the resulting bread.efi file to your EFI partition.

To run inside a vm, ensure QEMU is available in the PATH, then run:

just qemu-x86_64 # or qemu-aarch64

This will create a new ESP folder containing the required files and launch QEMU using the scripts located in the scripts folder.

Configuring

TODO

License

This project is licensed under the APACHE-2.0 LICENSE. You can find more info in the LICENSE file.