物联网项目生命周期:大规模 OTA 更新的关键考虑因素
by Canonical on 7 March 2023
从信息娱乐到信息安全,如今自动化无处不在。智能设备在丰富我们生活的同时也在悄然改变我们的居家生活,使其变得更高效、更具价值、更加环保。
大多数嵌入式设备都采用 Linux 系统,且数量还在不断增长。当我们进入信息时代,屋内遍布存储个人信息,并配备摄像头和麦克风的智能设备,自由软件在推动这场信息革命中起到至关重要的作用。虽然我们坚信开源的力量可以释放创造力,但这一巨大的成功也给 Linux 社区带来了深远的责任。
传统的嵌入式系统基本上都互无连接,手动应用的更新最多仅包含功能修复。新一代的设备都已连接至网络,这使得黑客可利用漏洞攻破安全防线。当前的模式能否为现场的低功耗、不可访问且通常为远程管理的嵌入式 Linux 设备提供安全可靠的软件更新?
传统更新机制不适用于物联网设备
多数更新依赖于 tarball 和 shell 脚本,类似于早期 Linux 发行版的演变,tarball 中存在没有依赖关系的软件包。脚本化的更新并不稳健,因为其缺乏原子性,无法在原始闪存中更新内核 [1]。
像 dpkg 和 RPM 这样的现代工具和软件包管理器通过包含一组完整的依赖项来解决某些问题,但仍然提供非原子的增量更新。软件包管理器通常替换系统上现有的文件和二进制文件,这些文件常常处于相互依赖的长链中,可能会导致更新后的机器无法工作。如果手动选择软件包来搭建发行版,则需要特定的安装前/安装后脚本,可能导致系统不一致 [2]。
使用传统的更新机制时,错误的更新可能会导致物联网设备异常,修复它们需要通过工程师现场操作或召回设备来进行昂贵的人工干预
当需要恢复至先前的软件版本时,从软件包回收中下载旧版本并将其安装在损坏的系统上,可能需要软件包维护者提供一组复杂的脚本。开发人员通常获取较新或较旧版本的依赖软件包,来解决安装的库对特定软件具有依赖性的问题,这可能会进一步破坏兼容性,并将问题推向另一组软件包 [3]。
此外,尽管 apt-get update 适用于安全环境中的服务器,但是现场设备间歇性断电、网络中断意味着更新可能会中断。无论是软件错误、电力中断或是文件系统问题,系统都可能变得不一致,需要花费高昂费用请专家进行手动干预才能恢复。而与标准 Linux 发行版的发布节奏相比,下一代物联网创新的发展日新月异。
OTA 更新的关键考虑因素
物联网设备需要稳健的产品级软件分发机制,能够传输无人监管的空中下载无线(OTA,Over-the-air)更新。OTA 更新不仅需要通过修复错误来保护设备在现场的安全,而且还需要部署新功能以提高设备性能。
为 OTA 构建用于更新恢复的故障安全机制和可扩展的基础设施是非常昂贵且耗时的。此外,更新程序必须满足某些要求才能在规模上起效。首先,许多嵌入式设备的远程特性意味着:
- 它们需要回滚以防错误的更新
- 该服务需要提供稳健的自动更新
- 系统必须有足够的冗余来处理自动重构和无网络引导
提供关键更新也至关重要,因为设备可能需要在常规更新周期之外进行紧急错误修复和漏洞修补。此外,无人监管的更新必须为原子性,以防设备无法使用,并且它们需要保存用户数据。
解决物联网设备的软件更新问题
在 Canonical,我们如同站在巨人的肩膀上构建 Ubuntu。现在,我们正不断提高自由软件的可能性,同时确保以非凡的安全性进行交付。
通过 Ubuntu Core,我们为物联网设备构建了最简单、最安全的 Ubuntu 版本。由于 Ubuntu Core 是创新者首选的嵌入式 Linux 版本,因此我们致力于通过在第一天自动交付 OTA 更新来确保它的安全。
Ubuntu Core 的更新机制比基于软件包的传统物联网设备方法更快速、更高效且更可靠。Ubuntu Core 允许在系统中进行原子事务更新。内核、根文件系统和所有顶部应用程序都是事务性更新,可实现更快速、更可靠的更新。
系统尝试应用 OTA 增量差来节省带宽。它在成功时向前移动,失败时自动回滚。Ubuntu Core 可减少应用程序更新失败时的修改导致的数据损坏。它会在升级前维护原始数据,需要时允许进行无缝回滚。与替代或更传统的软件包管理器不同,失败的更新从不会让系统处于不可预测的状态。
此外,随着每个软件版本的发布,开发人员可将他们的物联网设备所需的所有内容捆绑到一个软件包中,消除了丢失依赖项的风险。
从最精简的设备到最繁重的 x86 服务器,开发人员现在可以制作原型、构建并发布可用于生产的设备,这些设备将自动更新至最新版本;以及带有所有他们期望从 Ubuntu 得到的安全补丁。Ubuntu Core 及其稳健 OTA 更新机制使得下一代安全、开放和可扩展的物联网设备成为可能,从机顶盒和家庭集线器再到机器人和无人机,推动一波新的创造力和创新浪潮。
延伸阅读
为什么 Linux 是物联网设备的首选操作系统?请参阅嵌入式应用 Linux 官方指南(中)。
阅读我们关于物联网生命周期管理的白皮书(英),获取更多见解。
加入物联网话语交流会,讨论与物联网和紧密嵌入式互连设备相关的一切话题。
订阅博客文章
查看更多内容
快速推进 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 应用。该镜 […]
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 […]
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 基础设施上管理数据库推出了特定改进。 新增的动态管 […]