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

什么是实时 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 内核,了解在具有和不具有实时计算能力的 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 如何加速工业转型(英文)

订阅博客文章

订阅您感兴趣的主题

在提交此表格的同时,我确认已阅读和同意的隐私声明隐私政策。

查看更多内容

在搭载实时内核的汽车中进行快速 SDV 定型

如何在云端使用实时计算为软件定义汽车定型 汽车软件开发人员想要在目标硬件上试用他们的软件时,经常会遇到挑战。由于多个团队必须共享有限的硬件资源和原型试验台,而这样会导致问题发生。微芯片短缺也进一步加大了获取硬件试验台进行软件测试和调试的难度。 得益于云计算技术的进步,很多开发工作可以通过访问最先进的性能和协作选项远程完成。在基于云的开发中,工程师可以使用明显高于嵌入式系统功能的高性能功能,因此,结果和效果并不能反映目标系统在实际条件下的表现。 在大多数情况下,与目标硬件相比,结果并不具有代表性,原因要么是车辆接口饱和,要么是内存管理存在差异。因此,基于云的开发的挑战在于考虑目标系统的约束条件。 环境奇偶校验法可以通过尽可能多地模拟目标硬件解决这个问题。 什么是环境奇偶校验 […]

Real-time Ubuntu 现已登陆 AWS Marketplace

Canonical 很高兴地宣布,搭载实时内核的 Ubuntu Pro 22.04 LTS 已登陆 AWS Marketplace。AWS Marketplace 是一个包含来自独立软件供应商的成千上万款软件列表的数字目录,可以轻松查找、测试、购买和部署基于亚马逊网络服务(AWS)运行的软件。 Canonical 是 AWS 合作伙伴网络(APN)中的高级服务合作伙伴,这是针对独立软件供应商(ISV)的最高级别。我们密切合作十余年,共同努力确保 AWS 客户可以在 AWS 上部署 Ubuntu。Canonical 在 AWS 上提供超过 40 种服务器映像,涵盖关键的 AWS 服务,如 Amazon Elastic Compute Cloud(Amazon EC2)、AW […]

使用实时内核实现边缘云中延迟最小化

从电信应用到边缘云和工业数字孪生,在云技术中试验实时功能已成为行业趋势。边缘应用程序在与实时系统交互时通常有一个额外的要求:它们需要确切地运行。这意味着它们在系统内的执行和交互都有时间限制。 Canonical 推出的 MicroCloud 是一种小型云部署平台,托管可扩展和高可用性的应用程序,在更接近数据源的位置提供计算、安全网络和弹性存储等功能。它们特别适用于需要在所需地方附近提供工作负载的用例,例如边缘云部署。在 Ubuntu 实时内核功能的加持下,MicroCloud 是一个适用于具有严格低延迟要求的边缘应用程序的绝佳解决方案。 本篇文章将介绍如何在 MicroCloud 主机中启用实时内核。文中还将涵盖我们的实时测试,比较利用 Ubuntu 实时和通用内核的虚拟 […]