Ubuntu Core 中的小工具快照的目的是什么?

物联网 ubuntu 核心 活泼的
2021-06-07 02:27:38

我一直在研究如何在 Raspberry Pi 上设置 Ubuntu Core(Ubuntu 的 IoT 版本),并且我已经阅读了关于gadget snaps 的内容,文档说它旨在定义设备功能:

小工具 snap 负责定义和操作特定于一个或多个设备的系统属性,从实现的角度来看,这些设备通常看起来彼此相似。

拥有小工具快照的动机是什么?是否无法通过正常的系统功能(例如 )获取信息lshw,或者是否有其他原因(可能是安全性或更具声明性的环境)?

我问的原因是因为如果我希望在不同的设备上使用 Ubuntu Core,预定义的小工具快照将不适合,但我不确定为什么我什至首先需要小工具快照。

1个回答

根据developer.ubuntu.com,基本上有两个目的

- 向系统声明硬件功能

引用Ubuntu 文档

小工具 snap 负责定义和操作特定于一个或多个设备的系统属性,从实现的角度来看,这些设备通常看起来彼此相似。此快照必须由设备品牌生成并签名,该品牌通过模型断言定义。该品牌知道该设备将在何处以及如何使用,并相应地设计小工具快照。

例如,品牌可能知道该设备实际上是在特定云上使用的特殊 VM,或者它可能知道它将在特定工厂制造。小工具 snap 可以对设备初始化机制(密钥生成和身份认证)以及设备生命周期的特定过程(例如出厂重置)进行编码。不同模型完全可以共享一个小工具快照。

- 预先允许访问需要使用此硬件的快照

同样来自Ubuntu 文档

可选的prepare-device挂钩是一个脚本,在安装gadget snap 之后,将在设备初始化过程开始时在gadget 上调用该脚本。如果此过程稍后在初始化失败的情况下从头开始重试,则该钩子也将被调用。

设备初始化过程例如负责通过与设备服务的交换来设置设备的序列号。例如,prepare-device 挂钩可以重定向此交换并动态设置与其相关的选项。