#kernel #unix-like #rust

nightly no-std bin+lib ember_os

A simple OS kernel implemented in rust, which has referenced https://os.phil-opp.com/

2 releases

0.1.1 Mar 6, 2024
0.1.0 Mar 5, 2024

#1470 in Embedded development

38 downloads per month

MIT/Apache

135KB
4K SLoC

Ember OS

❤️ Please give me a Star / Follow if you like this project! ❤️

Brief

A simple OS implemented in rust, referenced Philipp Oppermann's Writing an OS in Rust blog.

Referencing Info

This project includes(referenced) code from phil-opp's blog_os, which is available under the MIT LICENSE and the APACHE LICENSE. The original code can be found at phil-opp/blog_os. Main extensions (differences between this project and phil-opp's) are as follows:

  1. Full implementation of the Asynchronous Task Manager
  2. Simple implementation of the Shell
  3. Fully transplanted benchmarks from NJU-OS-Experiment

Build

With the reliance on a bunch of unstable features, nightly channel of rust-toolchain is in need. A simple way is to run rustup update nightly --force.

Obviously, you should have qemu installed first. You could do that with the help of brew:

brew install qemu

Last but not least, install bootimage so that you could create a legal boot disk image from the complied kernel:

cargo install bootimage

Finally, you could build the project by running:

cargo build

And then, you could run it:

cargo run

Or, run some given tests:

cargo test

(Yes, cargo bootimage is not a necessary step, as the build behavior under this project has been adjusted to do that automatically before running)

Acknowledgements

Dependencies

~7MB
~97K SLoC