Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

TheKernelCorp/bootloader

Open more actions menu
 
 

Repository files navigation

rustboot

Join the chat at https://gitter.im/rust-osdev/bootloader

An experimental pure-Rust x86 bootloader for the planned second edition of the Writing an OS in Rust series.

This is still work in progress.

The idea is to build the kernel as a no_std longmode executable and then build the bootloader with the kernel ELF file in kernel.bin. The output is a flat binary disk image (including a basic MBR) that can be run in QEMU or burned to an USB flash drive (CDs require a different kind of bootloader, which is not supported at the moment). The plan is to create a custom tool (or cargo subcommand) that performs these steps automatically.

Build and Run

You need a nightly Rust compiler, xargo, objcopy (or a similar tool), and QEMU (for running it).

Mac OS

If you are building on Mac OS and get a error saying ld.bfd not found you first need to cross compile binutils and then adjust the linker name in the x86_64-bootloader.json file. The reason for this is the default rust LLVM linker doesn't support some features this project needs.

After doing that continue with the instructions for Linux.

Linux

> RUST_TARGET_PATH=$(pwd) xargo build --target x86_64-bootloader --release
> objcopy -O binary -S target/x86_64-bootloader/release/bootloader bootimage.bin
> qemu-system-x86_64 -hda bootimage.bin -d int -s

About

An experimental pure-Rust x86 bootloader

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 65.4%
  • Assembly 34.6%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.