BurritOS Developpement Operating System in Rust for RISC-V architecture named BurritOS (BurritOS Using Rust Really Improve The Operating System) Project Group M1 IL/CR 2022-2023 Managed by @ipuault@gitlab.istic.univ-rennes1.fr
Go to file
Rativel Remi b5ff4371e4 Merge branch 'toto' into 'main'
Added build.rs script

See merge request simpleos/burritos!28
2023-05-25 19:13:51 +00:00
assets Updated project README.md 2023-05-10 17:04:38 +02:00
doc Amélioration de la documentation: explication des tests 2022-10-19 17:50:56 +02:00
src merge branch documentation 2023-05-25 14:16:59 +02:00
test Indentation update 2023-05-10 14:31:19 +02:00
userlib Update userlib/sys.s 2023-05-05 00:30:06 +02:00
.gitignore Assembly lib 2023-04-05 10:53:34 +00:00
.gitlab-ci.yml Updated CI 2023-04-05 16:53:40 +02:00
Cargo.lock Add launch argument parser, add debug parameter to machine 2023-04-06 13:27:03 +02:00
Cargo.toml Add new thread exception (untested) 2023-04-11 17:47:36 +02:00
Makefile remplacement du lecteur rédacteur par les lock 2023-05-10 12:51:12 +02:00
Makefile.config Assembly lib 2023-04-05 10:53:34 +00:00
Makefile.rules Assembly lib 2023-04-05 10:53:34 +00:00
README.md Updated project README.md 2023-05-10 17:04:38 +02:00
build.rs Using direct link to git hosted logo for documentation 2023-04-21 14:55:07 +02:00
burritos.cfg Add user_stack_size to Machine and use it for threads sp 2023-05-09 17:01:52 +02:00

README.md

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