Redian新闻
>
规划 OTA 更新需要了解的 3 件事 | Linux 中国

规划 OTA 更新需要了解的 3 件事 | Linux 中国

科技
 
导读:在开始编写应用之前,为手机、物联网设备和边缘计算定义无线更新计划。                       
本文字数:1655,阅读时长大约:2分钟

在开始编写应用之前,为手机、物联网设备和边缘计算定义无线更新计划。

过去对系统的更新相对简单。当开发人员需要修改他们已经分发给公众的东西时,会发布一个更新程序供人们运行。用户将运行更新程序,允许用新文件替换旧文件并添加新文件。然而,即使有了这些“相对简单”的更新,也有一个问题。当用户安装好的系统处于意外状态时会发生什么?升级中断时会发生什么?当各种设备都在线时,这些问题同样重要,有时需要重要的安全更新。今天的许多更新都是通过无线、空中下载技术(over-the-air)(OTA)的方式提供的,连接不良、信号突然丢失或断电的可能性可能会对应该是次要更新的内容造成灾难性的影响。这些是你在计划提供 OTA 更新时需要考虑的三大策略。

1、验证

TCP 协议内置了很多验证功能,因此当你 向设备发送数据包🔗 www.redhat.com 时,通常可以确信每个数据包都已完好无损地收到。但是,TCP 无法报告它不知道的错误,因此由你来验证以下内容:

◈ 你是否已发送更新所需的所有文件?设备无法接收没有发送的内容。
◈ 收到的文件和你发送的文件一样吗?至少,检查 SHA 和以验证文件完整性。
◈ 如果可能,请使用 数字签名🔗 www.redhat.com 确保文件来自受信任的来源。
◈ 在允许更新开始之前,你必须验证设备能够应用更新。在提交更新之前检查权限和电池状态,并确保你的更新过程覆盖任何意外的用户事件,例如计划的重新启动或休眠。
◈ 最后,你必须验证声称已成功完成的更新是否已实际完成。在将更新正式标记为系统已完成之前,请检查目标设备上的文件位置和完整性。

2、回退和故障状态

更新的最坏情况是设备处于损坏状态,以至于它甚至不能继续被中止的更新。在这种情况下,更新程序文件存在于目标设备上,但该过程已被中断。这可能会使设备处于未知状态,其中一些文件已被更新版本替换,而其他文件尚未被替换。在最坏的情况下,已更新的文件与尚未更新的文件不兼容,因此设备无法按预期运行。

有一些策略可以解决这个问题。初始更新步骤可能是安装专用于完成更新的特殊引导镜像或环境,并在系统上设置“标志”以确认更新正在进行中。这样可以确保即使设备在更新过程中突然断电,更新过程也会在下次启动时重新启动。仅在验证更新后才删除表示更新成功的标志。

根据目标设备的安全策略和你要更新的内容,特殊的引导镜像可能不可行或不需要。不过,原理还是一样的。当启动后,更新必须建立一个环境,在这个环境中,待处理的更新是解决问题之前的唯一途径

但是,在更新被授予启动权限之前,用户(如果有的话)应该能够延迟或忽略更新。

3、附加更新

在许多边缘和物联网设备中,目标设备的底层是不可变的。更新只会添加到系统的已知状态。 Fedora Silverblue🔗 silverblue.fedoraproject.org 之类的项目正在证明这种模式可以在许多领域发挥作用,因此这种奢侈的做法可能会变得司空见惯。不过,在那之前,成功应用更新的一部分是了解你将要影响的环境。

不过,你不需要不可变的核心来应用附加更新。你可以构建一个使用相同概念的系统,将更新作为添加库或包的一种方式,而无需修改旧版本。作为此类更新的最后一步,具有更新路径的可执行文件是你所做的唯一实际修订。

OTA 更新

世界越来越无线化。对于手机、物联网设备和 边缘计算🔗 www.redhat.com,OTA 更新通常是唯一的选择。实施 OTA 更新策略需要仔细规划并仔细考虑不可能的情况。你最了解你的目标设备,因此请在开始编码之前规划好你的更新架构。


via: https://opensource.com/article/22/9/plan-ota-updates-edge

作者:Alan Smithee 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 :geekpi
💎💎💎💎
翻译: 1772.5 篇
|
贡献: 3248 天
2013-10-25
2022-09-16
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
修复 Ubuntu Linux 中 “Command ‘python’ not found” 的错误 | Linux 中国我是如何使用 Linux fmt 命令来格式化文本 | Linux 中国我家种了多少菜菜 DIY存放种子的收纳柜关于公证和认证的区别,您需要了解的基础知识!如何在 Ubuntu Linux 上更新谷歌 Chrome | Linux 中国在 Manjaro 和其他基于 Arch Linux 的发行版上安装 Spotify | Linux 中国MBA是否值得读?关于MBA学位你需要了解的事如何在 Manjaro 和其他 Arch Linux 衍生品上安装 Discord 客户端 | Linux 中国Linux 下的 Docker 入门教程 | Linux 中国新冠有效药Paxlovid能否救感染新冠的拜登?解决 Linux 中的 “Bash: Command Not Found” 报错 | Linux 中国Tuxedo 已对所有用户开放基于 Ubuntu 的 TUXEDO OS | Linux 中国离不了,又过不好的婚姻如何从 Windows 上用 SSH 连接到 Linux | Linux 中国如何在 Arch Linux 中安装深度桌面(DDE) | Linux 中国用 nftwatch 监控你的 Linux 防火墙 | Linux 中国在 Linux 上学习 C 语言的五种方式 | Linux 中国Rosalía 登意大利版《VOGUE》封面!学习 ReactJS 之前,你需要了解多少 JavaScript? | Linux 中国在 Linux 上使用 Rhythbox 听音乐 | Linux 中国在美国174.怪舞、遗憾在 Linux 中使用组合键输入隐藏的字形 | Linux 中国“作弊”:只需要知道这一个 Linux 命令就够了 | Linux 中国如何编写 C 程序在 Linux 上创建音乐播放列表 | Linux 中国波士顿第五代热玛吉最全问答!你想要了解的都在这里啦!Atoms 是一个可以让你轻松管理 Linux Chroot 环境的 GUI 工具 | Linux 中国关于 Linux 和 Git 的创造者 Linus Torvalds 的 20 件趣事 | Linux 中国Linux Mint 的更新管理器现在支持 Flatpak | Linux 中国如何通过 chroot 恢复 Arch Linux 安装 | Linux 中国导游杂谈是时候抛弃 32 位的 Linux,改用 64 位的了 | Linux 中国如何在 Ubuntu/Linux 和 Windows 之间共享文件夹 | Linux 中国Pop!_OS 22.04 Linux 发行版现在支持树莓派 4 了 | Linux 中国【双养日课 1013】孩子成长,你需要了解的六个阶段内地发现首例猴痘,这里有你需要了解的所有问题
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。