Giter VIP home page Giter VIP logo

rt-tests-rs's Introduction

Real-Time Linux Tests in Rust

The idea behind this project is to provide some real-time tests written in Rust. The goal is to provide similar test like the can be found in rt-tests.

So far there is only cyclictest-rs, see cyclictest-rs folder ./cyclictest-rs/README.md.

The target is not to rewrite rt-tests, I want to find out how a real-time program written in Rust has to look like, what is allowed in rt contexts and what spoils rt behaviour.

The question is how Rust programs are performing regarding real-time operations. How latencies look like an if we want to, for example want to write control systems like PLCs or CNCs with Rust? What crated are needed or should be avoided?

To test, a Linux system with a PREEMPT_RT Kernel is needed. Some distributions offer prepacked Kernels (e.g. Debian), for others you need to patch and compile yourself.

Also, this is a learners project, don't expect production ready software.

Rust for Real-Time Systems?

Rust seems to have everything needed for (soft)-real-time systems. Especially, a deterministic memory management i.e. no garbage collection and an execution performance comparable to C++.

C and Assembler are probably the holy grail for rt software. C++ seems also to be fine, as long as no memory management is triggered in an rt-context. This means to avoid malloc, free, new and so on or to replace calls with a deterministic version that works on a preallocated memory region [1].

For Rust, I simply want to find out what we need to avoid. Dynamic memory management for sure but is there something else?

See also:

Open Questions

  • What is the performance impact to trigger memory management?
  • What is the performance impact to use trait objects for error handling, like Box<dyn Error>?
  • Can we use parts of the std library or can we only use core?

System preparation

Under Debian Bookworm e.g.:

apt install rt-tests
apt install linux-image-6.1.0-17-rt-amd64

Reboot into the rt Kernel.

Links

Real-Time tests for Linux:

OSADL QA monitoring Farm:

More about scheduling

rt-tests-rs's People

Contributors

abelikt avatar bitmuster avatar

Stargazers

Yoann Congal avatar

Watchers

 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.