A modern operating system written in the rust programming language.
- Rust as a primary language for safety, speed and security
- Modern bootloader support with the limine protocol
- Architectural compatibility for x86_64 and AARCH64/ARM64
- Innovative approach to Micro/Monolithic kernel design
- Graph VFS
- Capability based permissions
- Proper async IO interface
- Running DOOM
- Full network & graphics stack
- Clone the source repository
git clone https://www.github.com/GandelXIV/RezOS.git
- Update git submodules
git submodule update --init --progress
Install dependencies, there are 2 ways of doing this:
This option is only viable on linux, so if you are on a different platform consider using the Docker method.
Use an install script located in scripts/install/all/{your-distro}.sh
.
If your distro does not have a script, you can still use scripts/install/rust-linux.sh
to setup rust, then install all the packages in scripts/install/packages/packages.md
manually
This option is cross-platform and does not polute your system with pkgs, however is harder to operate.
- Install docker
- Build the container as described in
docker/setup.sh
orscripts/docker/setup.sh
- Before compiling, start the container environment with
docker/run.sh
orscripts/docker/run.sh
. Once the environment is up and running,cd
into/home/rezos
and carry on with compiling.
One last step before compiling is to configure the project, you need to do this only once.
Either run ./config.sh
or follow the steps in config/README.md
.
The whole system can be built with make
, this produces a RezOS-x86_64.iso
file in build/
that can then by run in an emulator with make run-x86_64
- If you wish to target
aarch64
, simply replace thex86_64
in the make commands with it. - More make options are documented in the
Makefile
header