The boot process in Helix is an 8-stage pipeline that takes the kernel from raw firmware handoff to a fully operational system. Each stage has a specific responsibility, and the pipeline is designed so that failures at any point produce a clear diagnostic rather than a silent hang.
Helix supports three boot protocols out of the box: Limine (modern, recommended), Multiboot2 (GRUB-compatible), and UEFI (direct firmware boot). The protocol is selected in your profile's helix.toml.
The BootConfig struct holds the parsed configuration from your profile's helix.toml. It's built once during early boot and passed immutably to every subsystem that needs it.
The BootInfo struct is populated by the bootloader protocol handler and passed to kernel_main. It contains everything the kernel needs to know about the hardware environment — memory map, framebuffer dimensions, ACPI root, and command line.
This is where execution begins after the bootloader hands off. The entry point parses boot info, runs the 8-stage pipeline, and then enters the main kernel loop.
Limine is the recommended boot protocol for Helix. It provides a modern, feature-rich interface with higher-half direct mapping, framebuffer setup, and SMP initialization out of the box.
boot/limine/src/main.rs
4rust
1
// Limine requests — the bootloader reads these at load time
The BootInfo builder pattern ensures you can't forget a required field. If you're porting Helix to a new boot protocol, implement the conversion from your protocol's structures to BootInfo and everything downstream works unchanged.