BurritOS/README.md
2023-05-10 17:04:38 +02:00

2.4 KiB

BurritOS Logo

BurritOS

BurritOS (BurritOS Using Rust Really Improves The Operating System) is an educational operating system written in Rust and running on a RISC-V emulator. It aims to be used as an educational platform for learning about operating systems.

Based on NachOS (Copyright (c) 1992-1993 The Regents of the University of California. All rights reserved.)

Progress overview

Progress overview

Currently, the BurritOS project simulator contains a RISC-V processing unit supporting all 47 base instructions plus multiplication and 32bit floating point operations. RAM and the interrupt controller are also integrated. Both the memory management unit and the Disk are written but not tested nor integrated yet.

On the kernel side, synchronization primitives and scheduling logic are all implemented except for Conditions.

Build instructions

To build in release mode:

$ cargo build -r

To build in development mode:

$ cargo build

The generated executable can then be found in the ./target directory.

Running BurritOS

In the following examples, BurritOS is started by directly invoking its executable. However, replacing this direct invocation by cargo run -- <PARAMETERS> would garner the same result.

As it stands, BurritOS does not include a virtual console nor a shell for dynamic user interaction. Thus, programs need to be manually loaded into the system memory. To perform this operation:

$ ./burritos --executable <PATH>

Help

BurritOS provides a succinct manual. To display this manual:

$ ./burritos --help

Documentation

Documentation for all components of the BurritOS project can be generated using the following command:

$ cargo doc

The generated web documentation can be found in the ./target/doc directory.

Tests

BurritOS is unit tested using the cargo provided testing framework. However, some tests, most notably the Machine tests, require access to a few files which need to be generated first.

To generate test files:

$ make all

Afterwards, tests can be run with:

$ cargo test

All make artifacts can be found in the ./target directory.

Authors

Amaury Brodu, Abdelmajid El Bahri, François Autin, Quentin Legot, Baptiste Meauze, Gabriel Moysan, Rémi Rativel, Samy Solhi