Rust Operating System
An attempt at a simple operating system in Rust and a semester project for the Operating Systems course at CS@UCU.
You can do a
cargo doc --open to see automatically generated documentation from the Rust code.
- Properly set-up Rust. We are using nightly, so check that you have that too by running
rustc --version --verbosein the cloned project directory. Try
rustup override set nightlyif it's not nightly.
- Install QEMU since we are using it to run our operating system
Running the project for the first time will require rebuilding the core library for our custom target, so it can take some time.
- Operating system (written in Rust) is booted after a short assembly script (
boot.asm) checks the bootloader and switches to the long mode.
- Operating system can handle panics, can write to the hardcoded VGA buffer.
- The bootloader set ups recursive page mappings, and the OS can use a simple area frame allocator to map new pages.
- Interrupt handling
- A better allocator
- Heap allocator
- Serial module for easier testing and debugging