SYSGO supports the Rust language for their real-time operating system PikeOS. It has been tested for x86_64 and armv8hf architectures, but may run on other 64bit architectures as well.
The implementation is basing on Embedded Rust and the Rust code is executed as plain PikeOS native processes running within isolated partitions. PikeOS processes have a low memory footprint and minimum requirement to the operating system. This in turn makes the rust code way more applicable to safety and security certification in comparison to rust systems that require a POSIX environment.
Beyond Rust Embedded, the implementation provides the PikeOS system API by means of system call wrappers in a user convinient Rust API. The following topics are covered:
- Alloc Crate
- PikeOS native threading
- Synchronization via PikeOS Mutex
- Access to standard PikeOS console via println!() macro
- Rust panic handler is routed to the PikeOS health monitor system
- Support of the PikeOS filesystem
- Support of the PikeOS property system
- Support of PikeOS Communication Ports (ARINC 653 compatible queuing and sampling ports)
- Support of the PikeOS certifiable file system
The build system is controlled by the cargo packet management which in turn is integrated into the CODEO Development IDE.
The presentation will give insights into the development of the PikeOS Rust API and the expert knowledge that we gathered during the process.