A simple OS implemented in rust, referenced Philipp Oppermann's Writing an OS in Rust blog.
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:
- Full implementation of the
Asynchronous Task Manager - Simple implementation of the
Shell - Fully transplanted
benchmarksfromNJU-OS-Experiment
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 qemuLast but not least, install bootimage so that you could create a legal boot disk image from the complied kernel:
cargo install bootimageFinally, you could build the project by running:
cargo buildAnd then, you could run it:
cargo runOr, 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)