什么是实时 Linux?
by Canonical on 28 March 2023
我们将在此博文中评估实时(Real-Time)系统的关键特征。例如,了解具有实时功能的 Linux 内核与主线的不同之处,并涵盖在选择实时内核或低延迟内核时需要权衡的性能因素。
尽管阅读本系列博文没有知识门槛,但我们建议您对 Linux 在嵌入式计算领域扮演的角色具有基本的了解。如果您是该领域的新手,刚刚从零开始,请先阅读嵌入式 Linux 简介,或深入研究针对嵌入式应用的 Linux 官方指南。
什么是实时 Linux?
根据 IDC 的预测,到 2025 年,全球将近 30% 的数据需要实时处理[1]。虽然工作负载需要不同级别的实时性能,所需周期时间也因具体的系统配置而异,但分析师认为,未来几年市场会继续并加快采用实时计算。
对具有实时功能的驱动控制系统、工业边缘服务器、PLC、机器人和无人机等工业计算机的需求正在上升。在软件方面,由于对硬件设备和外围设备的大力支持,通过 Linux 内核进行实时计算正成为一种具有价值的解决方案。在将实时功能植入内核的各种方法中,PREEMPT_RT 补丁旨在通过修改现有内核代码来提高可预测性并减少延迟。
本博客系列旨在说明什么是实时 Linux。遗憾的是,这个话题颇具争议性,术语上似乎也并未完全统一。第一部分,我们将探究实时的两个确切定义。您将很快了解到,实时系统具有时间限制,并有明确规定的定时限制。
但是,还有其他一些实时定义,其中一些甚至互相矛盾。由于这种混乱的情况,我们先看一看关于实时 Linux 的常见误解,以拨开迷雾。稍后我们将高度概括一些可能需要实时的领域,以进一步阐明其用例。
之后的第二篇博文,我们将再深入介绍实时 Linux 内核,了解在具有和不具有实时计算能力的 Linux 内核中的优先权,以及用户空间转换为内核空间的差异。最后,将在第三篇介绍 PREEMPT_RT,并学习补丁集减少内核延迟的实现机制。
话不多说,赶快开始吧。
对实时 Linux 的误解
只要有一个实时内核就能实现实时系统
在更深入地了解实时 Linux 的构成部分之前,请务必了解实时 Linux 内核本身并不一定构成实时系统。内核只是实时系统的一个组件,即使是最高效的实时操作系统(RTOS,real-time operating system),在存在其他延迟接收器的情况下也可能毫无用武之处。即使是具有实时功能的内核,每个系统通常也会需要特定调参。要满足实时计算需求,则需要仔细理解整体堆栈,从底层硅芯片、操作系统,到网络层和应用程序。
实时 = 性能优化
另一个常见误解是实时会带来所谓的性能优化。这种误解通常来自被称作实时(因为延迟通常不被察觉而被称作实时)的视频应用程序。这些通常只是尽力而为系统,性能卓越,足以消除人类能够察觉到的任何错过截止时间。实时 Linux 内核并不会带来性能优化。我们研究的是对外部事件的确定性响应,目的是尽可能减少响应延迟,而不是优化吞吐量。实际上,实时 Linux 内核除了任务调度响应,在其他方面几乎肯定会逊色于 CFS 或其他调度程序。
总是必不可少
此外,实时操作系统也并非总是必不可少。「实时」听起来不错,因为通常暗含了性能很好的意思,但必须考虑错过截止时间的实际后果,以及它们是否保证实时要求。例如,如果截止时间为秒级,经过适当调参的多 GHz CPU 则很可能不会错过它。
何时使用实时 Linux
记住上述说明,那么何时应该使用实时 Linux 内核呢?
根据众所周知的定义,实时系统中的计算正确性不仅取决于结果的逻辑正确性,还取决于结果的生成时间。如果不满足系统的时间限制,便会发生系统故障[2]。POSIX 标准 1003.1 也有类似定义。该标准规定,实时性是操作系统在有限的响应时间内提供所需级别服务的能力[3]。
简而言之,实时系统非常适用于极度依赖延迟的用例,在这种情况下,错过截止时间会导致故障而不仅仅是系统降级。我们通常会在哪里看到这些场景?
目标领域和应用程序中的实时 Linux
医疗保健
想一想像生命支持设备这样的专用医疗设备,操作员希望计算系统在给定的截止时间内完成任务,如果错过便会造成灾难性后果。
工厂
除了医疗保健行业的医疗机器人,实时功能在各种用例和垂直行业中都发挥着重要作用。在领先的细分市场中,我们看到了工业领域中的过程和离散自动化。确定性和实时能力在工厂车间至关重要。例如,在装配线上的 PLC 必须实时传输和处理数据,以维护系统完整性和持续性生产,而错过截止时间则会危及整条生产线。
电信公司
实施虚拟化的 Open RAN 架构能够让移动运营商部署特定的网络功能,从而实现更大的灵活性,更高效地利用网络资源。在 Open RAN 架构中运行实时 Linux,运营商可构建现代化、可扩展、节能和经济高效的 5G 网络,确保 6G 准备就绪,并为用户部署创新性新服务。
汽车
实时系统也应用于汽车行业,因为该行业的延迟需求非常严格,若错过截止时间便会导致灾难性后果,例如汽车制动未能防止撞车。汽车行业已广泛部署 RTOS 来满足延迟相关需求。然而目前,原始设备制造商及其一级供应商在信息娱乐系统和人机交互界面等应用上日益依赖 Linux 内核。
航空
实时 Linux 另一个有趣的用例是自动驾驶飞机上的伺服回路。例如,飞机传感器必须不断向控制计算机提供正确的测量值。在这种情况下,只要测量延误,飞机性能便会下降,有时甚至会导致不可接受的后果。
总结
除了上述应用,实时 Linux 还有更广泛的市场应用,如产品质量保证和安全到对自动化系统有严格精度要求的石油、天然气以及运输。
如何知道是选用低延迟操作系统,还是选用实时 Linux 内核?要回答这个问题,您必须考虑低延迟要求以及错过截止时间的后果。明智的决定只会来自于这些数据。如果您的延迟需求非常严苛,而且错过截止时间会造成系统故障,则实时 Linux 可能是必要之选。另一方面,如果延迟需求没那么严格,后果也没那么严重,则低延迟内核可能已经足够。
其他參考資源
实时 Linux 基础介绍(英文)
订阅博客文章
查看更多内容
Canonical 发布 Ubuntu 26.04 LTS Resolute Raccoon
Ubuntu 为企业工作负载提供深度芯片优化与前沿安全防护(第 11 个长期支持版本)。 2026 年 4 月 23 日,Canonical 正式发布代号为 “Resolute Raccoon” 的 Ubuntu 26.04 LTS,用户可通过 Ubuntu 下载页面进行下载并安装。 Resolute Raccoon 在过渡版本推出的高稳定性优化基础上进一步升级,支持 TPM 硬件全盘加密、优化应用权限弹窗提示功能、为基于 Arm® 架构的服务器提供 Livepatch 实时补丁更新,并采用基于 Rust 语言的工具以提升内存安全性。该版本原生支持 NVIDIA CUDA、AMD ROCm 等行业领先的 AI/ML 工具包,使 Ubuntu 26.04 LTS 成为 AI […]
快速推进 Renesas RZ 平台上的工业与 AI 部署
已认证的 Ubuntu 24.04 LTS 镜像现已可用 Canonical 欣然宣布,面向 Renesas RZ/G2L 和 RZ/G2LC 64 位微处理器(MPU)平台的已认证 Ubuntu 24.04 LTS 及 Ubuntu Core 24 镜像现已正式发布通用(GA)版本。借助可直接用于生产环境的 Ubuntu 版本,用户可获得企业级安全保障、长期技术支持,并充分启用 Renesas RZ/G 系列丰富的多媒体功能。 除面向 RZ/G2L 和 RZ/G2LC 的 GA 发布外,Canonical 同时推出适用于 Renesas RZ/V2L 平台的 Ubuntu 镜像,并提供 AI Snap 教程,用于在 Ubuntu 上部署 Renesas AI 应用。该镜 […]
SQL Server 2025 已在 Ubuntu 24.04 LTS 上正式发布
Microsoft 已宣布 SQL Server 2025 在 Ubuntu 24.04 LTS 上正式发布通用(GA)版本,首发版本为 CU1。这一里程碑意味着企业可在我们最新的长期支持版系统上部署关键业务工作负载,受益于可预期的稳定性与最新内核。 更新你的软件源 如果您一直在测试预览版,必须切换软件源配置,以确保使用正式生产版本。要切换软件源配置,请将您的源从 mssql-server-preview.repo 更新为 mssql-server-2025.repo。继续使用预览版软件源可能会导致安装不适用于生产环境工作负载的预发布版本。 Linux 增强功能 SQL Server 2025 CU1 针对在 Linux 基础设施上管理数据库推出了特定改进。 新增的动态管 […]
