Redox操作系统的开发人员揭幕 最近 他们介绍了 新包装经理 pkgar, 将在系统内使用。
对于那些不了解氧化还原的人 哪 这是一个操作系统 该 它的主要重点是其开发是使用Rust语言和微内核概念 其中仅在内核级别提供了进程和资源管理之间的交互,而所有其他功能都被转移到可以由内核和用户代理使用的库中。
作为项目的一部分, 一种新的包装格式正在开发中, 一个具有程序包管理功能的库和一个命令行工具,用于创建和提取经过密码验证的文件的集合。
pkgar格式不是通用的 并考虑到了Redox OS操作系统的特点对其进行了优化。
包裹经理 通过数字签名和完整性检查支持源验证。 校验和是使用blake3哈希函数计算的。 无需实际保存软件包文件即可访问pkgar的验证功能,而仅操作标头部分。
特别是, 该软件包包含一个头文件 (.pkgar_head)和一个数据文件(.pkgar_data)。 只需将头文件附加到数据文件,即可获得经过正确签名的完整摘要包(.pkgar)。
头文件包含数据文件的头和参数化结构的单独校验和,以及用于验证数据包的数字签名。
数据文件包括所有提供的文件和目录的顺序列表 在包装中。 在每个数据元素之前都有一个带有元数据的结构,该结构包括数据本身的校验和,大小,访问权限,要安装的文件的相对路径以及下一个数据元素的参数的偏移量。
如果在更新过程中单个文件没有更改并且校验和匹配,则将跳过这些文件而不下载它们。
可以通过仅获取头文件和所选数据文件的正确性来验证源的完整性,方法是仅从该文件中加载带有参数的结构,并确保它们与头文件中检查的校验和匹配。
直接在下载数据之后可以使用结构的校验和以及数据之前的参数来验证数据本身。
最初,程序包暗示了可重复组装的可能性,这意味着为特定目录创建程序包总是导致形成相同的程序包。 安装后,仅元数据被保存在系统上,这足以从已安装的数据重建软件包(软件包组成,校验和,路径和访问权限在元数据中可用)。
pkgar的主要目标:
- 原子: 更新 尽可能申请 自动地.
- 节省流量: 仅当哈希值更改时,数据才通过网络传输(在更新过程中仅下载更新的文件)。
- 涉及高性能的快速密码算法(在计算哈希时,blake3支持数据处理的并行化)。 如果存储库数据以前尚未缓存,则可以在引导时为下载的数据计算哈希值。
- 极简主义: 与其他格式不同,pkgar仅包含提取程序包所需的元数据。
- 安装目录独立性: 任何用户都可以将软件包安装在任何目录中(该用户必须具有写入所选目录的权限)。
- 安全性: 始终对数据包进行加密验证,并在执行实际的数据包操作之前完成验证(首先加载报头,如果数字签名正确,则将数据传输到临时目录,在验证之后将其移动到目录目标)。