sleiderr / fzkernel

Pure rust bootloader
GNU General Public License v3.0
4 stars 1 forks source link

FrozenBoot


FrozenBoot is a modern, feature-rich x86 bootloader.


Contributors Stargazers Issues GPL v3

Table of Contents

Introduction

FrozenBoot aims to become a stable, user-friendly and feature rich x86 bootloader. It will be usable with custom kernels, through a simple API, or through multiboot2 support. But it can also be used as a bootloader for most of the available Linux distributions (Ubuntu, Debian). Not only that, but it will also provide various utilities to diagnose your system, or customize it through a user-friendly interface.

For now, the project is still in a very early phase, but we except to be able to boot common Linux-based distributions soon.

Build

Get the source code

The main repository frozenpeach-dev/bootloader contains all of the required files to build a minimal standalone version of the bootloader.

git clone https://github.com/frozenpeach-dev/bootloader.git
cd bootloader

Install the latest Rust toolchain (Linux or macOS)

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

Install the required components

Before this step, you might need to reload your shell environment after installing the Rust toolchain.

rustup component add llvm-tools-preview --toolchain nightly
rustup component add rust-src --toolchain nightly

Build FrozenBoot

You can now build the project, by changing directory to the build/ directory that contains all the necessary build tools.

cd build/
cargo run

(Optional) Install qemu

Use your package manager to install qemu if you want to run the bootloader.

qemu-system-x86_64 -drive format=raw,file=boot.img

Architecture

The repository is built with the following file structure:

License

FrozenBoot is licensed under the terms of the GNU General Public License version 3 (GPLv3). A version of that license is made available when cloning this repository in LICENSE.txt

Contributing

Thank you for considering contributing to the FrozenBoot project! We welcome all contributions – from bug reports and feature requests to code changes and documentation improvements.

Before you start, please take a moment to review our [Code of Conduct](), and make sure to check out our [Contributing Guide]().