Code Monkey home page Code Monkey logo

wanghaitaozj / rros Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bupt-os/rros

0.0 0.0 0.0 209.14 MB

RROS is a dual-kernel OS for satellites or other scenarios that need both real-time and general-purpose abilities. RROS = RTOS (Rust) + Linux (C).

License: Other

Shell 0.30% C++ 0.02% Python 0.12% Perl 0.12% C 97.95% Clojure 0.01% Assembly 0.98% Rust 0.20% Awk 0.01% UnrealScript 0.01% Makefile 0.23% XS 0.01% Yacc 0.01% Lex 0.01% M4 0.01% Roff 0.02% Gherkin 0.01% sed 0.01% SmPL 0.02% Raku 0.01%

rros's Introduction


Documentation .github/workflows/ci.yaml Zulip chat RROS en zh

RROS is a dual-kernel OS, consisting of a real-time kernel (in Rust) and a general-purpose kernel (Linux). RROS is compatible with almost all native Linux programs and offers real-time performance superior to RT-Linux. It is also being experimented with as the host OS for in-orbit satellites (Tiansuan Project).

Here is an architecture diagram and a demo video of RROS.

News

  • [2023.12.09] 🔥🔥 RROS is successfully launched into space! (photos).
  • [2023.11.30] RROS is presented at Xenomai Workshop 2023 (photos).
  • [2023.11.28] 🔥 RROS is open-sourced!

Why RROS

RROS is primarily intended for satellites (onboard computers, payloads, etc). The key incentive is the trend that nowadays satellites serve both traditional satellite-borne real-time tasks (e.g., communication and positioning) and general-purpose tasks that need mature, complicated software support (e.g., data compression and machine learning). That catalyzes the dual-kernel architecture of RROS. Taking a step further, the real-time kernel of RROS is fully implemented in Rust for better safety and robustness. However, RROS can be used in scenarios like automatic cars, IoTs, industrial control, etc.

The advantages of RROS are:

  • Hard real-time: RROS offers superior real-time performance compared to RT-Linux. RROS is designed with an efficient task scheduler that can quickly respond to external events, reducing task switching and processing delays.
  • Compatibility: RROS is compatible with almost every Linux program, allowing seamless migration of complex Linux applications such as TensorFlow and Kubernetes. You can also easily modify your general Linux programs into a more real-time counterpart.
  • Easy to use: RROS facilitates easy programming and debugging of real-time programs. RROS uses the libevl interface to call real-time APIs for user programs, allowing you to use tools like gdb, kgdb, and QEMU.
  • Robustness: The real-time kernel of RROS is carefully written in Rust, making it safer and more robust, especially for memory and concurrency issues.

Quick start

Kick off with RROS easily: boot, run, test, and develop with RROS.

Document

See the document including:

Communication & Contribution

Contact us at Zulip Forum or with email buptrros AT gmail.com.

Contributions are also very welcomed! Check it out.

Roadmap

See here for our future roadmap.

Who are we

We are a research group at BUPT.

Release

The RROS relies on both the dovetail and the Rust for Linux(RFL), neither of which currently provides patches. Integrating one into the other at a high frequency is challenging. As a result, RROS is currently tied to Linux kernel version 5.13, built on top of linux-dovetail-v5.13, and readily compatible with RFL patch v1. Fortunately, RFL is swiftly making its way into the mainline Linux kernel. We plan to release new versions once most of the RFL APIs we depend on are available in the linux-dovetail mainline. At that point, we will further consider Long-Term Support (LTS) versions.

Acknowledgements

RROS has benefitted from the following projects/resources.

  • Evl/xenomai (linux-evl). We learned from evl core how to implement a dual kernel and use dovetail for interrupt virtualization and libevl for user library. Thanks, @Philippe for his genius work and patient explanation in the riot!
  • Rust-for-Linux: We use RFL to write RROS in Linux. We ask a lot of questions on RFL Zulip and constructing safety abstractions. Kudos to @ojeda, @Wedson, @Alex, @boqun, @Gary, @Björn in the RFL community for patiently helping us. We hope to bring more safety abstraction back to the RFL in return!
  • Muduo: His detailed blog gives us insights for xenomai/evl project.
  • All prospective contributors to RROS in the future!

Citation

@misc{li2023rros,
    title = {RROS: A Dual-kernel Real-time Operating System in Rust},
    url = {https://github.com/BUPT-OS/RROS},
    author = {Hongyu Li and Jiangtao Hu and Qichen Qiu and Yuxuan Shan and Bochen Wang and Jiajun Du and Yexuan Yang and Xinge Wang and Shangguang Wang and Mengwei Xu},
    month = {December},
    year = {2023}
}

License

The source code of RROS is under the License of GPL-2.0.

rros's People

Contributors

buptos avatar jiangtao999hu avatar lukeehoojet avatar ojeda avatar richardhongyu avatar ruiqurm avatar xumengwei avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.