#kernel #rtos #post

nightly bin+lib rusty-os

Rusty-OS is a simple kernel for embedded systems written in Rust

3 releases (stable)

1.1.0 Apr 30, 2023
1.0.0 Apr 27, 2023
0.1.0 May 10, 2021

#1482 in Embedded development

31 downloads per month

MIT/Apache

66KB
265 lines

crates.io crates.io

rusty-os

Rusty-OS is a simple RTOS for ARM-based embedded systems written in Rust.

This OS is based on the series of posts by Phillip Oppermann, go check his blog and github for further explanation on how to build an OS usign Rust.

Documentation

License

Licensed under either of

at your option.

Platform Support

Support for different platforms ("targets"):

target notes
x86_64 QEMU x86 64 bits

Future work includes adding support for different platforms. ARM support is in progress.

Build

This project requires a nightly version of Rust because it uses some unstable features. At least nightly 2020-07-15 is required for building. You might need to run rustup update nightly --force to update to the latest nightly even if some components such as rustfmt are missing it.

You can build the project by running:

$ cargo build

To create a bootable disk image from the compiled kernel, you need to install the bootimage tool:

$ cargo install bootimage

After installing, you can create the bootable disk image by running:

$ cargo bootimage

This creates a bootable disk image in the target/x86_64/debug directory.

Run

$ cargo run

[QEMU] and the bootimage tool need to be installed for this.

Contribute

Contributions are accepted. Make sure to open a merge request.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Notes

This is a hobby project in order to learn the inner components of RTOS design and low-level development for ARM processors using Rust. Rusty-OS being a hobby project can't be compared to mainstream RTOSs like The Zephyr Project, FreeRTOS, QNX, etc. And again, special thanks to Phillip Oppermann for paving the way for the other embedded software enthusiasts with his work. "Standing on the shoulders of giants".

Dependencies

~785KB
~14K SLoC