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
benchmarks
fromNJU-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 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
)