什么是实时 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 24.10 Oracular Oriole
最新版 Ubuntu 具备最先进的内核以及增强的桌面安全性 Canonical 发布 Ubuntu 24.10,代号“Oracular Oriole”,用户可前往下载并安装。 Ubuntu 24.10 具备最新的内核、工具链和 GNOME 47 桌面环境,同时在软件安全性方面进行了重大改进。 “Oracular Oriole 为提供最新的上游内核和工具链设定了新的步伐。”Canonical 首席执行官 Mark Shuttleworth 称,“实验性的新增安全功能表明了我们致力于在未来 20 年甚至更长时间内保持社区互动沟通,不断提升 Linux 桌面体验的决心。” 免费下载 Linux 6.11 提供最新的硬件支持 Ubuntu 24.10 采用了 Linux 6.11 […]
如何为企业选择最合适的企业数据存储解决方案?
围绕 IT 基础架构所做的选择对业务成本和性能都有很大的影响,其中涉及到运营、财务、数据分析和市场营销等多个领域。鉴于数据在所有这些领域中的重要性,甚至是在整个企业中的重要性,在选择新的存储系统时做出正确的决定至关重要。本篇文章将介绍选择时的一些考虑因素,以确保您在成本效益和性能之间取得平衡。 一、性能 存储性能涉及多个维度,首先来考虑最简单的度量指标: IOPs(Input/Output operations per Second)– 每秒输入/输出操作数,即一秒钟内可处理的操作次数。 响应时间(Response time)– IO 操作处理后安全存储到存储系统中并向请求应用程序发送确认信息所耗用的时间。 带宽(Bandwidth)– 一秒钟内可以传输的数据量的度量方 […]
Charmed PostgreSQL 全面上市
值得信赖的企业级 PostgreSQL Canonical 正式发布 Charmed PostgreSQL,这是一款企业级解决方案,有助于确保安全性,可自动完成 PostgreSQL 数据库在私有云和公共云上的部署、维护和升级。 PostgreSQL 是一个开源数据库管理系统。已在 IT 领域应用超过 30 年。成熟的技术、活跃的社群使其始终成为开发人员的首选 DBMS。 Canonical 推出的 Charmed PostgreSQL 便以此为基础进行构建并提供额外的功能,能够满足您的一切企业需求: 长达 10 年的安全维护和支持 订阅 Ubuntu Pro,即可购买 Charmed PostgreSQL 安全与支持服务。Ubuntu Pro 订阅提供长达 10 年的安 […]