Real-Time Linux in Industrial Appliances

Real-Time Linux

Booming usage of Linux in embedded environments is creating an on-going demand to use this general-purpose operating system in industrial control devices and other fields, previously reserved for classic real-time operating systems. The course covers key topics, essential to understand the opportunities in using Linux as a real-time operating system and its fails. You will learn what Real-Time really means and how to achieve it in Linux.

Exercises done on ARM based development board with example of Real-Time application (controlling real industrial process), which will be developed during the course, are to give you a strong technical understanding and confidence in the subject.

Emphasis is put on developing POSIX-RT based real-time applications using some modern Linux variants, in order to work out a universal and re-usable framework, for your future Real-Time Linux projects. In order to learn programming techniques, the software is verified with partial tests and latency measurements are done during the exercises.

Course outline

Detailed agenda

Day. 1, Linux and Real-Time -- the introduction

After 'Day 1'

The applicable terminology will be defined and problems introduced. Participants will review their knowledge of Linux Kernel and userspace. Latency and other problematic variables will be measured. Eventually the general solution will be introduced (Real-Time patches or co-kernel).

Day 2. How to make Linux Real-Time?

After 'Day 2'

This day is devoted to methods of minimizing and locking worst case latency in Linux kernel. Applications introduced there can be used on a standard, non-modified system, but only utilizing PREEMPT-RT will give them determinism. Parts of Linux, that after applying the patch, became real-time aware are discussed. Application design essential to achieve full determinism is also introduced. During hands-on exercises and workshop, the Embedded Linux-based industrial control application will be created, measured and tuned in order to achieve real-time determinism.