Refine
Is part of the Bibliography
- no (1)
Has Fulltext
- yes (1)
Year of publication
- 2021 (1)
Document Type
- Bachelor Thesis (1)
Institute
Language
- English (1)
Current languages employed for embedded software development usually provide unsafe memory handling often resulting in vulnerabilities. Languages that can provide memory safety at compile-time can be used instead. This thesis examines the suitability of the Rust programming language for embedded software development. The relatively new language provides such memory safety guarantees while offering high performance comparable to other common languages. The objectives of the thesis are to assess the suitability of Rust in comparison to an existing language and to explain the necessary steps when eventually switching development to Rust.
The C language is used for the comparison, as it is currently the most common language for embedded software development. To be able to assess Rust objectively, the comparison to C is carried out on the basis of pre-defined aspects that were deemed important. This comparison is explained and discussed in the main part of the thesis. Furthermore, this part contrasts safety and performance by explaining the different safety problems as well as countermeasures and subsequently comparing an example program according to the performance in both languages. To be able to examine the switching process, another set of criteria is employed. Rust is analyzed according to them and an exemplary switching process is provided.
Comparing the criteria leads to different findings. Some aspects show a similar suitability of Rust and C. These include the popularity, the compliance with safety standards as well as the performance, although the latter highly depends on the tested application. Positive aspects of C include the large amount of available compilation targets and the maturity. Rust on the other hand stands out through a greater variety of programming paradigms, a state-of-the-art and well-adopted toolchain as well as good documentation, community support and a sound ecosystem. Furthermore the safety guarantees pose a clear advantage over C and make embedded software provably safer. It is also shown that for switching to Rust, numerous resources for employee training are available and different tools for the integration into an existing code base are offered by the programming language and its ecosystem.
The results suggest that Rust is indeed suitable for embedded software development, although the choice must not be made without careful consideration of the examined criteria.