Theseus is a new OS written from scratch in Rust to experiment with novel OS structure, better state management, and how to shift OS responsibilities like resource management into the compiler.
We are continually working to improve the OS, including its fault recovery abilities for higher system availability without redundancy, as well as easier and more arbitrary live evolution and runtime flexbility. Though still an incomplete prototype, we envision that Theseus will be useful for high-end embedded systems or edge datacenter environments. See our published papers for more information about Theseus's design principles and implementation philosophy, as well as our goal to avoid the phenomenon of state spill or mitigate its effects as much as possible. Also, see Theseus's documentation for more.
When you first check out the project, don't forget to checkout all the submodule repositories too:git submodule update --init --recursive
Currently, we support building and running Theseus on the following host OSes:
sudo apt-get update.sudo apt-get install nasm pkg-config grub-pc-bin mtools xorriso qemu qemu-kvm
sudo pacman -S nasm pkg-config grub mtools xorriso qemuIf you're on WSL, also do the following:
Install an X Server for Windows; we suggest using [Xming](<https://sourceforge.net/projects/xming/>).
Setup an X display as follows:
- on WSL (version 1), run: `export DISPLAY=:0`.
- on WSL2, run: `export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0`.
You'll need to do this each time you open up a new WSL terminal, so it's best to add it to the end of your `.bashrc` file.
If you get this error: `Could not initialize SDL(No available video device) - exiting` then make sure that your X Server is running and that you have set the `DISPLAY` environment variable above.
Install a C compiler and linker toolchain, such as `gcc`.