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 ?
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 :
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
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.
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.
A step by step series of examples that tell you how to get a development env running. Say what the step will be
git clone https://github.com/AntoineSebert/dandelion
cd dandelion
If you want to clone dandelion in a particular folder, use
git clone https://github.com/AntoineSebert/dandelion location
cd location/dandelion
Then you need to build the project and generate an iso image of the RTOS.
cargo build
cargo run parameters
qemu ... dandelion.iso
End with an example of getting some data out of the system or using it for a little demo.
Explain how to run the automated tests for this system.
Add additional notes about how to deploy this on a live system.
The documentation for this repository can be found at https://github.com/AntoineSebert/dandelion/documentation
--src/
+--bin/
| +--test-basic-boot.rs
| +--test-exception-breakpoint.rs
| +--test-exception-double-fault-stack-overflow.rs
| +--test-firm-deadline-exception.rs
| +--test-hard-deadline-exception.rs
| +--test-panic.rs
| +--test-soft-deadline-exception.rs
| +--test-task-remaining-exception.rs
| +--test-time-remaining-exception.rs
+--kernel/
| +--ipc/
| | +--mod.rs
| +--scheduler/
| | +--mod.rs
| | +--admitter.rs
| | +--dispatcher.rs
| | +--swapper.rs
| +--shell/
| | +--mod.rs
| +--vmm/
| | +--mod.rs
| | +--gdt.rs
| | +--memory.rs
| +--mod.rs
| +--acpi.rs
| +--interrupt.rs
| +--process.rs
| +--serial.rs
| +--time.rs
| +--vga_buffer.rs
+--lib.rs
+--main.rs
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the CC BY-NC-SA License - see the LICENSE.md file for details.
$ claude mcp add dandelion \
-- python -m otcore.mcp_server <graph>