What Does Real-Time Mean?
If you ask engineers what real-time means, you'll get a number of different answers, filled with terms such as guarantees, hard, soft, deterministic, preemptive, priority inversion, latency, interrupts, and scheduling. Rick Lehrbaum of linuxdevices.com posed that question to seven experts.3 These experts somewhat agreed that a hard real-time system guarantees a deterministic response to an event and that a late response is considered a system failure. They also somewhat agreed that soft real-time systems attempt to minimize event response time and don't consider late responses a system failure. The experts' opinions diverged when addressing real-time implementation and system performance characterization.
One performance aspect of Linux is clear: Stock Linux allows the kernel and device drivers to disable interrupts.4 This could seriously affect a system's responsiveness. Fortunately, open-source code availability has allowed solutions to be developed to overcome this limitation. These solutions follow two approaches: Improve the Linux scheduler by making the kernel preemptive and run Linux as a thread within a small RTOS. Naturally, each approach has advantages, disadvantages, supporters, and opponents.