150 likes | 334 Views
Real-time Linux Evaluation. Kalynnda Berens, GRC Kalynnda.Berens@grc.nasa.gov. Definitions.
E N D
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
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 Loadable Module Modified Linux Kernel Preemptible, Micro Timing, and/or Low Latency Loadable Module Hardware
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 Specific Linux RTOS 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
Scheduling Hardware Interface Communication and Synchronization Memory Management Task Management Timing Configuration External Communications Error Reporting Embedded Features File system Reliability Requirements
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