谢谢您的订阅!
当新的内容发布后您将开始接收邮件。您也可以点击邮件内的链接随时取消订阅。关闭Close

  1. 博客
  2. 文章

Canonical
28 March 2023


我们将在此博文中评估实时(Real-Time)系统的关键特征。例如,了解具有实时功能的 Linux 内核与主线的不同之处,并涵盖在选择实时内核或低延迟内核时需要权衡的性能因素。

尽管阅读本系列博文没有知识门槛,但我们建议您对 Linux 在嵌入式计算领域扮演的角色具有基本的了解。如果您是该领域的新手,刚刚从零开始,请先阅读嵌入式 Linux 简介,或深入研究针对嵌入式应用的 Linux 官方指南。

什么是实时 Linux?

根据 IDC 的预测,到 2025 年,全球将近 30% 的数据需要实时处理[1]。虽然工作负载需要不同级别的实时性能,所需周期时间也因具体的系统配置而异,但分析师认为,未来几年市场会继续并加快采用实时计算。

对具有实时功能的驱动控制系统、工业边缘服务器、PLC、机器人和无人机等工业计算机的需求正在上升。在软件方面,由于对硬件设备和外围设备的大力支持,通过 Linux 内核进行实时计算正成为一种具有价值的解决方案。在将实时功能植入内核的各种方法中,PREEMPT_RT 补丁旨在通过修改现有内核代码来提高可预测性并减少延迟。

具有实时能力的 Linux 内核旨在为外部事件提供有限的响应时间

本博客系列旨在说明什么是实时 Linux。遗憾的是,这个话题颇具争议性,术语上似乎也并未完全统一。第一部分,我们将探究实时的两个确切定义。您将很快了解到,实时系统具有时间限制,并有明确规定的定时限制。

但是,还有其他一些实时定义,其中一些甚至互相矛盾。由于这种混乱的情况,我们先看一看关于实时 Linux 的常见误解,以拨开迷雾。稍后我们将高度概括一些可能需要实时的领域,以进一步阐明其用例。

之后的第二篇博文,我们将再深入介绍实时 Linux 内核,了解在具有和不具有实时计算能力的 Linux 内核中的优先权,以及用户空间转换为内核空间的差异。最后,将在第三篇介绍 PREEMPT_RT,并学习补丁集减少内核延迟的实现机制。

话不多说,赶快开始吧。

对实时 Linux 的误解

只要有一个实时内核就能实现实时系统

在更深入地了解实时 Linux 的构成部分之前,请务必了解实时 Linux 内核本身并不一定构成实时系统。内核只是实时系统的一个组件,即使是最高效的实时操作系统(RTOS,real-time operating system),在存在其他延迟接收器的情况下也可能毫无用武之处。即使是具有实时功能的内核,每个系统通常也会需要特定调参。要满足实时计算需求,则需要仔细理解整体堆栈,从底层硅芯片、操作系统,到网络层和应用程序。

实时 = 性能优化

另一个常见误解是实时会带来所谓的性能优化。这种误解通常来自被称作实时(因为延迟通常不被察觉而被称作实时)的视频应用程序。这些通常只是尽力而为系统,性能卓越,足以消除人类能够察觉到的任何错过截止时间。实时 Linux 内核并不会带来性能优化。我们研究的是对外部事件的确定性响应,目的是尽可能减少响应延迟,而不是优化吞吐量。实际上,实时 Linux 内核除了任务调度响应,在其他方面几乎肯定会逊色于 CFS 或其他调度程序。

总是必不可少

此外,实时操作系统也并非总是必不可少。「实时」听起来不错,因为通常暗含了性能很好的意思,但必须考虑错过截止时间的实际后果,以及它们是否保证实时要求。例如,如果截止时间为秒级,经过适当调参的多 GHz CPU 则很可能不会错过它。

为什么 Linux 是物联网设备的首选操作系统?

嵌入式应用 Linux 官方指南

何时使用实时 Linux

记住上述说明,那么何时应该使用实时 Linux 内核呢?

根据众所周知的定义,实时系统中的计算正确性不仅取决于结果的逻辑正确性,还取决于结果的生成时间。如果不满足系统的时间限制,便会发生系统故障[2]。POSIX 标准 1003.1 也有类似定义。该标准规定,实时性是操作系统在有限的响应时间内提供所需级别服务的能力[3]。

简而言之,实时系统非常适用于极度依赖延迟的用例,在这种情况下,错过截止时间会导致故障而不仅仅是系统降级。我们通常会在哪里看到这些场景?

目标领域和应用程序中的实时 Linux

医疗保健

想一想像生命支持设备这样的专用医疗设备,操作员希望计算系统在给定的截止时间内完成任务,如果错过便会造成灾难性后果。

工厂

除了医疗保健行业的医疗机器人,实时功能在各种用例和垂直行业中都发挥着重要作用。在领先的细分市场中,我们看到了工业领域中的过程和离散自动化。确定性和实时能力在工厂车间至关重要。例如,在装配线上的 PLC 必须实时传输和处理数据,以维护系统完整性和持续性生产,而错过截止时间则会危及整条生产线。

电信公司

实施虚拟化的 Open RAN 架构能够让移动运营商部署特定的网络功能,从而实现更大的灵活性,更高效地利用网络资源。在 Open RAN 架构中运行实时 Linux,运营商可构建现代化、可扩展、节能和经济高效的 5G 网络,确保 6G 准备就绪,并为用户部署创新性新服务。 

汽车

实时系统也应用于汽车行业,因为该行业的延迟需求非常严格,若错过截止时间便会导致灾难性后果,例如汽车制动未能防止撞车。汽车行业已广泛部署 RTOS 来满足延迟相关需求。然而目前,原始设备制造商及其一级供应商在信息娱乐系统和人机交互界面等应用上日益依赖 Linux 内核。

航空

实时 Linux 另一个有趣的用例是自动驾驶飞机上的伺服回路。例如,飞机传感器必须不断向控制计算机提供正确的测量值。在这种情况下,只要测量延误,飞机性能便会下降,有时甚至会导致不可接受的后果。

总结

除了上述应用,实时 Linux 还有更广泛的市场应用,如产品质量保证和安全到对自动化系统有严格精度要求的石油、天然气以及运输。
如何知道是选用低延迟操作系统,还是选用实时 Linux 内核?要回答这个问题,您必须考虑低延迟要求以及错过截止时间的后果。明智的决定只会来自于这些数据。如果您的延迟需求非常严苛,而且错过截止时间会造成系统故障,则实时 Linux 可能是必要之选。另一方面,如果延迟需求没那么严格,后果也没那么严重,则低延迟内核可能已经足够。

想在正式环境中执行实时 Linux 吗?

与我们联系

其他參考資源

实时 Linux 基础介绍(英文)

汽车产业中的安全性与实时 Linux(英文)

实时 Linux 如何加速工业转型(英文)


查看更多内容

Canonical Managed Kubeflow AI 运维平台现已登陆 Microsoft Azure Marketplace

Ubuntu 发行商 Canonical 近日宣布,其 Managed Kubeflow 服务已在 Microsoft Azure Marketplace 正式上线,实现全面商用(GA)。该解决方案允许 AI 团队在自有云租户环境内获得一个完全托管、可直接投入生产的 MLOps 平台。 上游 Kubeflow...

全新工具 Workshop 上线:一条命令即可在 Ubuntu 中启动沙箱开发环境

开发者如今可在智能体 AI 等前沿工作流程中,获得环境统一、可复现的开发体验 Canonical 正式发布 Workshop,该解决方案可通过单条命令快速启动开发环境。只需配置一次,此开发环境即可在多台设备上复现使用。这意味着各类开发设备与部署流水线可保持统一工作流程,并可大幅减少管理依赖关系所花费的时间。...

Canonical 技术案例 – 彻底解决 12 年老旧代码中的 Linux 性能漏洞

部分支持案例处理起来十分简单。另一些案例则要深入老旧遗留代码,一处逻辑缺陷就能悄无声息让常规指令引发严重性能故障。本系列将介绍 Canonical 技术支持与持续工程团队如何协作,排查、修复并向上游提交仅靠常规故障排查无法解决的疑难问题。在第二篇帖子中,libnss-db 中一处存在 12 年之久的漏洞导致 getent...

借助全新 NVIDIA OpenShell Snap,在 Ubuntu 上安全管控 AI 智能体工作流

NVIDIA 发布经过验证的 OpenShell Snap 软件包,用于在 Ubuntu 上安全管控 AI 智能体工作流 Canonical 在 COMPUTEX 宣布与 NVIDIA 达成全新合作,将面向智能体的 NVIDIA OpenShell 运行时直接集成至 Ubuntu 生态系统。Canonical 将 OpenShell 封装为 Snap...