什么是实时 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 基础介绍(英文)
订阅博客文章
查看更多内容
实时操作系统是否适合您的业务?
随着自动化几乎遍及社会的每个部门,从汽车和电信到工业制造,实时操作系统(OS)在各个行业都变得至关重要。实时操作系统(RTOS)可确保精确和确定的响应,满足对安全性和性能至关重要的严格的时间要求。但究竟是 Zephyr 或 FreeRTOS 等传统的 RTOS 才是您业务的正确选择,还是具有实时功能的 Linux 解决方案更适合您的需求呢? 我们最新的白皮书对这些问题进行了深入的探讨,在这篇博客中,我们将进行顶层概述。 是什么让系统实现 “实时”? 实时系统优先考虑计时而不是原始性能。它们的设计初衷是在严格的时间限制内处理特定的任务。与考虑总吞吐量的通用系统不同,实时系统关注确定性结果,因为每个操作都必须在定义的限制内可预测地发生。这种确定性对于车辆安全机制、工业控制系 […]
2025 年第一季度芯片技术及设备发展概览
欢迎阅读由 Canonical 首次发布的芯片技术与设备季度发展概览。 在第一季度,边缘人工智能和网络安全领域频频传出重大消息。半导体和软件生态系统领域的各大公司都在着力于在边缘实现更强大、更高能效的人工智能模型,同时增强其安全性,以满足诸如欧洲《网络弹性法案》(CRA)等合规要求。许多政府和行业组织现在也要求汽车系统中必须采取网络安全措施。Canonical 于近期宣布获得 ISO 21434 认证。 在 Canonical,我们亲眼目睹到安全可靠的嵌入式人工智能驱动系统是如何给我们的客户带来显著影响。如今,创新速度加快,为了帮助您及时了解最新的行业趋势,我们精心整理了一份关于芯片技术与设备的最新发展概览。 Arm 发布首款 Armv9 边缘 AI 平台 首先让我们聚 […]
Ubuntu 20.04 LTS 标准支持周期终止 — 激活 ESM
ESM 确保设备集群的安全与运行性能 Focal Fossa 的标准支持周期将于 2025 年 5 月终止,也称生命周期终止(EOL)。Ubuntu 20.04 LTS 已然成为全球数百万物联网和嵌入式设备的关键组件,广泛应用于自助服务终端、数字引导牌、工业设备以及机器人系统等设备。该版本是医疗保健到制造业等各行业的企业进行创新的基础。与其他所有迎来标准支持周期终止的 Ubuntu LTS 版本一样,Focal Fossa 将转为扩展安全维护(EOL)模式。本文将为开发者和企业介绍相关选择,并说明如何启用 ESM 以持续获得支持。 在深入探讨之前,我们先来回顾一下 Ubuntu 版本为何存在生命周期终止(EOL)。 Ubuntu 版本为何存在 EOL? 每个 Ubuntu […]