Linux in Real-Time Systems

Real-time systems are commonly used when a given task has to be completed within a certain time limit. Such systems need to be very accurate, predictable, and deterministic, so these timing requirements can be guaranteed already at the development stage. Therefore, real-time capable operating systems need to be specially crafted for this purpose. This leads to different design decisions and internal implementation in comparison to what would be used, for example, in GPOSs.

This chapter describes different aspects of real-time capable Linux systems and especially focuses on the PREEMPT_RT patch. First, in Real-time systems, the general concept of a real-time system is explained. Afterward, in Real-Time Extensions, multiple real-time extensions for the Linux kernel are presented. Then, the basics of task scheduling are introduced in Task Scheduling. Next, different preemption settings available in Linux are described in Kernel Preemption. After that, various aspects of scheduling latencies are presented in Scheduling Latency.