Real-time Linux Evaluation Kalynnda Berens, GRC Kalynnda.Berens@grc.nasa.gov
Definitions Embedded System - A combination of hardware and software which together form a component of a larger machine. An embedded system is designed to run on its own without human intervention, and may be required to respond to events in real time. Real-time OS - an operating system that provides a required level of service in a bounded response time Hard real-time – absolute deadlines that must be met Soft real-time – time tolerance within which an event can occur
What is Linux? Unix “clone”, first created in 1992 by Linus Torvalds Open source operating system Commonly used in server environment, now used in desktops and embedded systems Not useful for real-time systems because: Fairness scheduling, with limited priority scheduling Unpredictable, sometimes high latency Non-deterministic behavior Coarse timing resolution
Real-Time Linux Modifications or extensions to standard Linux to allow soft or hard real-time applications to meet timing constraints. One approach uses a separate real-time “kernel” that runs Linux as the lowest priority task. Another approach modifies standard Linux for preemptibility, latency, timing, and/or scheduling. Both open source and commercial versions are available.
Real-time Linux Projects Flight Linux-a customized copy of a standard Linux distribution, adapted to the unique environment of a spacecraft embedded control computer. STS-83 experiment used Debian GNU/Linux. RACSI - the remote Automatic Transfer Vehicle (ATV) control at ISS. GOAS - Ground Operator Assistant System for the rendezvous operations of ATV. PLATINO numerical control iArte - Industrial Automation Real Time Environment FAA Level C certified flight simulator Cascade – a RTLinux based GPS receiver Space shuttle experiment, STS-83 experiment, studied the growth of plants in microgravity and used Debian GNU/Linux. RACSI is a laptop computer running a software package operated by an astronaut onboard the station. RACSI double monitors and checks the ATV mission and provides two simple command capabilities: temporarily interrupt the mission or command a collision-avoidance maneuver. GOAS, the Ground Operator Assistant System for the rendezvous operations of ATV. Used on ground, GOAS is a software tool to monitor the ATV mission and intervene in case of a problem. GOAS provides complex command and control capabilities to replan the entire mission if necessary. PLATINO numerical control based on standard PC with LINUX O.S. and RTAI real time extension iArte (Industrial Automation Real Time Environment) FAA Level C certified flight simulator Cascade is a RTLinux (a realtime augmentation to Linux) based GPS receiver
Independent Kernel Variants Linux Process Linux Process User Space Kernel Space Real-Time Task Real-Time Task Standard Linux Kernel Real-Time Micro Kernel Hardware
Kernel Modification Variants Linux Process Linux Process Real-time Process User Space Kernel Space Modified Linux Kernel Preemptible, Micro Timing, and/or Low Latency Loadable Module Loadable Module Hardware
Real-time Linux Variants RTAI (Real-time Application Interface) Kernel, User space hard real-time (LXRT) Open source RT-Linux Kernel Commercial, open source OnCore OS Separate RTOS Commercial KURT (Kansas University Real-time) Modified HardHat
Testing Real-Time Linux Requirements derived from VxWorks 5.4 Test plan, MSFC VxWorks AE Test plan, GRC RTOS properties Specific test scenarios will be derived from the requirements, plus… Variant-specific attributes Known errors, defects, etc. Results of static analysis (open source)
Test Plan VxWorks 5.4 Linux RTOS Test Plan Variant Specific VxWorks Test Plans Variant Specific VxWorks AE Errors RTOS Testing Static Analysis
Tools Linux Trace Toolkit Dynamic Probes kGDB (kernel debugger) Linux Kernel Crash Dump Linux Test Project LMBench Ballista strace System Call Tracker
Requirements Scheduling Hardware Interface Communication and Synchronization Memory Management Task Management Timing Configuration External Communications Error Reporting Embedded Features File system Reliability
Error Catalog
Test Setup Development System (Mandrake 8.1 Linux) Ethernet Connection Embedded PowerPC Embedded Pentium PC/104
Future Work Static analysis of open source variants Completion of variant-specific test plans Test scenario creation Test procedures for each scenario Testing on embedded hardware Test results and report