____ _ _ ___ ____
/ ___| |__ __ _ __| |/ _ \/ ___|
| | | '_ \ / _` |/ _` | | | \___ \
| |___| | | | (_| | (_| | |_| |___) |
\____|_| |_|\__,_|\__,_|\___/|____/
https://github.com/NewDawn0/ChadOS
Welcome to ChadOS, an experimental operating system created as part of an
A-level thesis project. This operating system was developed to explore the
complexities and challenges involved in creating a custom OS. If you're
interested in learning more about the thesis behind ChadOS, you can find it in
the doc/thesis.pdf
file. You can also access the Rust documentation by running
cargo doc --open
.
Let's get started with building ChadOS.
- Clone the Repository
git clone github.com/NewDawn0/ChadOS.git
cd ChadOS
Building ChadOS using Nix is a straightforward process. Ensure you have Nix installed before proceeding.
Prerequisites:
Build
nix-build # Currently doesn't work as compiler_builtins isn't found
# You'll find the resulting ChadOS.img in ./result/bin
Alternatively, you can work within a Nix shell for an isolated development environment.
nix develop
cargo make clean
cargo make build
# Resulting ChadOS.img in the current directory
If you prefer to build ChadOS from source, follow these steps.
Prerequisites:
Set up the environment
rustup default nightly # Install nightly toolchain
rustup component add rust-src llvm-tools-preview # Install rust plugins
rustup target add x86_64-unknown-none # Install rustup toolchain
cargo install cargo-bootimage
cargo install cargo-make
Building the OS
cargo make clean
cargo make build
# Resulting ChadOS.img in the current directory
You can run tests for ChadOS by executing the following command:
cargo make test
ChadOS can be run in the QEMU virtual machine emulator. Choose one of the following methods to run it.
nix-shell
cargo make clean
cargo make run
If you've built ChadOS from source, run it with the following commands:
cargo make clean
cargo make run