Win11 更新包大小暴减 40%,微软官方解析技术原理

IT之家 10 月 13 日消息,据 Neowin 报道,今天,Windows 11 正式版收到了第一个“星期二更新补丁”。考虑到操作系统在一周前刚刚开始以阶段性方式推出,这并不是一个巨大的更新。它只是修复了一些兼容性问题。

向超过 10 亿用户提供 Windows 更新和安全修复涉及分发大量的更新内容,并占用大量带宽。为了减少网络带宽,微软使用了新的压缩技术,将 Windows 11 更新包大小减少了 40%。

微软今天通过文章分享了 Windows 11 更新模式改变的细节。

“对于需要正向和反向 delta 对的版本数据系统,“反向更新数据生成”提供了一种方法,可以有效地将正向 delta 分发到设备上,并让设备保持一个返回到原始状态的路径。微软已经在 Windows 11 中成功地采用了这种方法,使更新包的大小减少了 40%。这有利于我们的客户群,他们将需要更少的下载来保持最新和安全。”

IT之家获悉,Windows 是一个被用于全球各种环境的操作系统,特别是在这个混合环境中,每个人可能无法获得最快的互联网连接,但仍然需要通过安全补丁保持保护。这就是为什么补丁必须是小尺寸的,尤其是每月的累积更新包含了所有以前发布的修复程序。

Windows 10 版本 1809 及以上使用上图中描述的成对的正向和反向差分压缩。它确保操作系统在服务时可以恢复到其基本版本作为中间状态。正如你可能注意到的,虽然正向和反向差分是对称的,但它们的特点是内容非常不同。微软没有利用双向差分,因为一些转换和补丁可能会删除反向差分所需的数据。为了确保非破坏性的转换,反向 delta 首先需要存储由正向 delta 增加和删除的内容。然而,正如上面所指出的,由于内容上的不衔接,这个过程不会非常有效,至少与成对的正向和反向差分压缩相比是这样的。

微软在 Windows 11 中使用一种叫做反向更新数据生成的方法对这一过程进行了重大改变。这是一个看似简单和直观的方法,它观察 delta 指令,然后直接逆转它们,而不经过成对的 delta 反向通道。然而,在后端,这构成了一个重大的后端变化,它使用一个映射表来映射汇编代码功能中的结果变化。微软解释说:

“映射的工作原理是对程序的汇编代码进行逐个字节的反汇编,并确定虚拟地址。虚拟地址在逻辑上对应于汇编代码功能的入口点,并在汇编代码被修复更新时发生转移。这些移动被 delta 引擎观察到,并被一个映射表所捕获。关于 delta 应用的映射过程使这些变化的地址正常化,这也是现代架构上开明的 delta 算法如此高效的很大一部分原因。

与基本的修补指令一样,这些转换可以被观察和逆转。由于不是所有的映射都是 1:1 的,所以有一点开销,当前向映射与观察到的反向映射冲突时,必须使用额外的修补指令来对齐映射。这可以在原地完成,反向映射将提供与反向 delta 几乎相同的性能,其直接映射来自服务器上完成的 delta 生成。”

微软声称,其反向更新数据生成方法使 Windows 11 更新包大小减少了 40%。该公司表示,它在几个月前还为这种方法申请了专利。微软是否会将这种技术也回传到 Windows 10,还有待观察。