905e647dda
Add comments to thread_manager See merge request simpleos/burritos!27 |
||
---|---|---|
assets | ||
doc | ||
src | ||
test | ||
userlib | ||
.gitignore | ||
.gitlab-ci.yml | ||
burritos.cfg | ||
Cargo.lock | ||
Cargo.toml | ||
Makefile | ||
Makefile.config | ||
Makefile.rules | ||
README.md |
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
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