dandelion
dandelion copied to clipboard
🌀 Microkernel Real-Time Operating System in Rust
🚀 Dandelion : Microkernel Real-Time Operating System in Rust
Dandelion. Meet your constraints.
Ainsi, toujours poussés vers de nouveaux rivages,
Dans la nuit éternelle emportés sans retour,
Ne pourrons-nous jamais sur l’océan des âges
Jeter l’ancre un seul jour ?
Table of contents
- 🚀 Dandelion : Microkernel Real-Time Operating System in Rust
- Table of contents
- Motivation
- Main design characteristics
- Technical choices
- Getting started
- Prerequisites
- Installing
- Running the operating system
- Running the tests
- License
Motivation
This project aims to create a microkernel real-time operating system using the Rust language. It addresses a large area of design techniques and algorithms so as to reach three defined goals :
- deterministic execution time of the programs (or subparts of them), allowing the processes to be managed accurately
- correctness of the time when a result is expected, to meet or miss the deadlines, where treatment marks the difference between soft and hard RTOS
- predictability of the deadline associated with a set of constraints to define an expected state of the system
Main design characteristics
Dandelion is a hard time-sharing RTOS with a three-level scheduler
- admitter (long-term) : estimate job completion time and accept it or not
- swapper (medium-term) : swaps in and out the processes, depending on their activity
- dispatcher (short-term) : decide which ready process to run and to which processor/core to assign
Technical choices
Getting started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Prerequisites
First of all, you need to install the Rust toolchain, available on the official website. Then you need to install an emulator to run the RTOS. We recommand Qemu, but any other emulator able to read iso images is suitable for the job.
Installing
First you need to clone the repository:
git clone https://github.com/AntoineSebert/dandelion
cd dandelion
Then you need to build the project and generate an iso image of the RTOS:
cargo update
cargo build
Running the operating system
Once all previous steps have been completed successfully, simply run the project:
cargo run
Running the tests
cargo test
License
This project is licensed under the CC BY-NC-SA License - see the LICENSE.md file for details.