# rust-osdev/bootloader

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rust-osdev-bootloader).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

1,661 stars · 233 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/rust-osdev/bootloader
- awesome-repositories: https://awesome-repositories.com/repository/rust-osdev-bootloader.md

## Description

This project is a pure-Rust bootloader and firmware loader designed for x86 operating system development. It initializes bare-metal hardware and loads compiled operating system kernels from both legacy BIOS and modern UEFI firmware environments into a running state. 

The software utilizes a dual-firmware boot architecture and a pure-rust low-level runtime to handle hardware initialization and memory management without relying on standard library runtimes. It provides automated disk image packaging to combine compiled kernels and bootloader binaries into ready-to-boot FAT-formatted disk images for virtual machines and hardware. 

Additional capabilities include compile-time parameter macros for injecting settings such as stack size allocations directly into the binary, alongside custom entry point registration that defines specialized function signatures and automatically generates required startup symbols for execution.

## Tags

### Software Engineering & Architecture

- [Bare-Metal Runtimes](https://awesome-repositories.com/f/software-engineering-architecture/pure-rust-implementations/bare-metal-runtimes.md) — Implements hardware initialization and memory management entirely in bare-metal Rust without relying on standard library runtimes.

### Operating Systems & Systems Programming

- [Dual Firmware Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/bios-firmware-interfaces/dual-firmware-layers.md) — Supports both legacy BIOS and modern UEFI firmware interfaces to load operating system kernels across diverse x86 hardware.
- [Rust Bootloaders](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/disk-image-bootloaders/x86-bootloaders/rust-bootloaders.md) — A pure-Rust bootloader that loads x86 operating system kernels from BIOS and UEFI firmware to start custom operating systems.
- [Custom Kernel Booting](https://awesome-repositories.com/f/operating-systems-systems-programming/test-kernel-booting/custom-kernel-booting.md) — Supports operating system kernel booting, loading compiled executables from BIOS and UEFI firmware on x86 hardware. ([source](https://github.com/rust-osdev/bootloader#readme))
- [UEFI Bootloaders](https://awesome-repositories.com/f/operating-systems-systems-programming/uefi-bootloaders.md) — Loads compiled operating system kernels from modern UEFI firmware and legacy BIOS environments to boot x86 computers.
- [Rust Development](https://awesome-repositories.com/f/operating-systems-systems-programming/x86-system-tuning-utilities/rust-development.md) — Writes custom operating systems in Rust for x86 hardware, handling low-level startup tasks and hardware initialization without C dependencies.
- [Bootable Disk Image Toolchains](https://awesome-repositories.com/f/operating-systems-systems-programming/bootable-disk-image-toolchains.md) — A tool that combines firmware binaries and compiled kernels into FAT-formatted disk images ready to execute on hardware and virtual machines.
- [Bootable Image Building](https://awesome-repositories.com/f/operating-systems-systems-programming/bootable-image-building.md) — Combines firmware binaries and compiled kernels into FAT-formatted images for hardware or virtual machines. ([source](https://github.com/rust-osdev/bootloader/blob/main/docs/create-disk-image.md))
- [Bootable Image Creation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/disk-image-bootloaders/bootable-image-creation.md) — Packages compiled kernel binaries and boot firmware into FAT-formatted disk images that run directly on bare metal or virtual machines.
- [x86 Bootloaders](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/disk-image-bootloaders/x86-bootloaders.md) — A firmware loader that initializes x86 hardware and boots compiled executable kernels into a running state.
- [Entry Points](https://awesome-repositories.com/f/operating-systems-systems-programming/systems-programming/bare-metal-development/entry-points.md) — Facilitates kernel entry point definition, registering standalone executables with custom function signatures to automatically generate startup symbols. ([source](https://github.com/rust-osdev/bootloader/blob/main/README.md))
- [Virtual Disk Image Booting](https://awesome-repositories.com/f/operating-systems-systems-programming/virtual-disk-image-booting.md) — Combines compiled kernels and bootloader binaries into ready-to-boot FAT-formatted disk images for virtual machines and hardware.

### Development Tools & Productivity

- [Compile-Time Macros](https://awesome-repositories.com/f/development-tools-productivity/compile-time-parameter-bindings/compile-time-macros.md) — Injects configuration settings like stack size allocations directly into the binary at compile time via procedural macros.

### Programming Languages & Runtimes

- [Custom Entry Points](https://awesome-repositories.com/f/programming-languages-runtimes/program-entry-points/executable-entry-points/custom-entry-points.md) — Defines specialized function signatures for kernel entry points that automatically generate the required startup symbols for execution.
