The viability of Rust as a real-time system language: A comparative analysis between Rust and C for real-time systems - Johansson, Simon; Lindahl, Emrik (My University, 2025)
Real-time systems are used in many crucial applications in our society, for example, airplanes and satellites. These systems need to be secure and reliable since they are often time-crucial and safety-critical. Security in this aspect means that there are no unforeseen crashes or undefined behavior of the system. Historically, these systems have been created in C due to the performance C can achieve along with the ability to manipulate hardware at a low level. A performantsystem is important to ensure that the system can handle the workload put on it, however, it is not trivial to combine the aspects of performance and security. This is because security often comes at the expense of performance since additional checks are needed. A new emerging language, Rust, tries to solve this problem. This thesis will extend the work done by Tjäder [1] on the framework RTIC by testing if Rust is viable in a real-time setting. To achieve this aim, real-time applications in both Rust and C are created, which are then run on different hardware. The purpose is to test the applications with metrics such as performance, memory usage, and reaction time for events. This will be used to evaluate the viability of Rust for real-time systems to make them more secure and reliable. The thesis concludes that although Rust offers security in terms of memory management, Rust can compete with C in aspects such as performance. It all comes down to different tradeoffs, from what is needed in the specific system to be built.
Keywords: Rust; C; Real-time systems; FreeRTOS; RTIC