#bootloader #experimental #x86 #kernel #elf

nightly app rustboot

一个实验性的纯 Rust x86 启动加载程序

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018年1月26日

#68#bootloader

MIT/Apache

28KB
700 代码行

rustboot-x86

这是《用 Rust 编写操作系统》系列(计划第二版)的实验性纯 Rust x86 启动加载程序,该系列由 Writing an OS in Rust 提供。

这仍然是一个进行中的项目.

想法是将内核构建为 no_std 长模式可执行文件,然后使用内核的 ELF 文件构建启动加载程序,文件名为 kernel.bin。输出是一个平坦的二进制磁盘镜像(包括基本的 MBR),可以在 QEMU 中运行或烧录到 USB 闪存驱动器(CD 需要不同类型的启动加载程序,目前不支持)。计划创建一个自定义工具(或 cargo 子命令)来自动执行这些步骤。

构建和运行

您需要一个 nightly Rust 编译器,xargoobjcopy(或类似工具),以及 QEMU(用于运行)。

> RUST_TARGET_PATH=(pwd) xargo build --target test
> objcopy -O binary -S target/test/debug/elf_loader test-bin
> qemu-system-x86_64 -hda test-bin -d int -s

依赖项

~700KB
~15K SLoC