In modern Avionics and Safety-critical embedded systems, mixed-criticality applications play a crucial role in achieving functional and Safety requirements while optimizing computational resources. Here we show a demonstration using PikeOS, our advanced real-time operating system (RTOS), to showcase how an ARINC 653 critical application can run alongside a Linux-based system on the same hardware platform. The demonstration highlights partitioning, scheduling, and the secure execution of real-time applications, ensuring isolation between mixed-criticality workloads.
Understanding PikeOS and ARINC 653
PikeOS is a partitioned RTOS that supports various execution environments, including POSIX, ELinOS, Linux, and ARINC 653. The ARINC 653 standard is widely used in Avionics software applications to provide time and space partitioning, ensuring deterministic behavior for Safety-critical tasks. In this demonstration, PikeOS enables a Linux application and an ARINC 653 application to co-exist while maintaining strict isolation.
Demo Setup and Configuration
For the demonstration, we are using the CODEO IDE, SYSGO's powerful and feature-rich Eclipse-based integrated development environment.
The demonstration consists of the following key components:
- PikeOS Native Partition: Handles development tools and system management
- Linux Partition: Runs a lightweight embedded Linux (ELinOS) with a web server
- ARINC 653 Partition: Executes a time-critical application with deterministic scheduling
To achieve this, the demo employs time partitioning, ensuring that each partition receives a pre-allocated time slot for execution, preventing interference between Safety-critical and non-critical processes.
Step 1: Creating the Integration Project
- A new PikeOS project is initialized, named PikeOS.int, serving as the integration project
- A development template (devel-linux) is selected to provide a starting point for mixed-criticality integration
- The target architecture is set to qemu-arm-v7, enabling simulation
- The default setup is retained, ensuring correct partition configurations
Step 2: Setting Up the Linux Application
- A new Linux project (linux.app) is created using ELinOS, an embedded Linux distribution by SYSGO
- The Linux environment is configured with a shell and a web server for network accessibility
- The target architecture is confirmed as ARMv7 in secureIO mode, ensuring that Linux has no direct hardware access, enforcing strict partition isolation
- The network stack is configured with fixed IP settings (192.168.0.3) and a gateway for communication
Once the Linux project is defined, the system builds a complete Linux root filesystem and verifies network access.
Step 3: Configuring ARINC 653 Partition
- A new APEX (ARINC 653) partition is added to run alongside the Linux partition
- A simple ARINC 653 application is implemented, executing a basic "Hello World" routine
- The system ensures that the APEX partition operates with higher priority and deterministic execution compared to the Linux environment
Step 4: Running and Validating the Demo
With the system set up, the next steps involve:
- Booting PikeOS: The system loads the partitions and initializes both Linux and ARINC 653 applications
- Linux Console Access: Using telnet to connect to the virtual console for monitoring
- Testing Partition Independence: Rebooting the Linux partition while verifying that the ARINC 653 partition continues executing without disruption
- Web Server Access: Using a browser (Firefox) to verify connectivity to the embedded Linux system
Key Insights from the Demonstration
1. Strict Partition Isolation
- The demo showcases how PikeOS enforces strict separation between mixed-criticality workloads
- Even when rebooting the Linux partition, the ARINC 653 application remains unaffected, demonstrating robust fault containment
2. Deterministic Execution
- ARINC 653’s time-partitioned scheduling ensures that critical applications receive guaranteed CPU time
- The APEX application maintains consistent execution timing, irrespective of Linux activity
3. Secure Inter-Partition Communication
- The network stack is securely configured to allow Linux communication through PikeOS drivers
- Virtual interfaces are mapped to physical hardware through well-defined PikeOS configurations
Conclusion
This demonstration effectively illustrates how PikeOS enables mixed-criticality systems by running an ARINC 653 real-time application alongside a general-purpose Linux environment. By leveraging PikeOS’s partitioning, scheduling, and Security features, developers can ensure Safety-critical applications operate reliably within a heterogeneous computing environment.