For more information about the project, please visit the wiki, this readme is meant to give a quick overview of the project for developers and anyone interested.
If you are interested in contributing to the project, please visit the Contributing file.
The project is divided into multiple folders:
- src contains the main entry point of the kernel.
- rost-lib contains the standard library that will be available to all programs written for the OS.
- boot contains the settings for building the image with the bootloader, and QEMU settings.
- utils contains utility functions, constants and structures that could be used throughout the kernel.
- drivers contains drivers that add extended functionality that is not in the scope of the kernel core.
- kernel contains the core library and functionality.
- Rust using the nightly channel
- llvm-tools-preview (installed via
rustup component add llvm-tools-preview
) - QEMU
Rust should automatically switch to the nightly channel and install the llvm tools when it detects the rust-toolchain.toml
.
cargo krun
will build the kernel and start up a qemu instance booting the kernel in debug mode.
Tests are ran after the kernel initializes the necessities like kernel heap, general memory management and interrupts.
To run the tests do:
cargo ktest
- If the build fails because of usage of unstable features, make sure that you have enabled the nightly channel using
rustup default nightly
orrustup upgrade