10 月 13 日消息,据 Neowin 报道,今天,Windows 11 正式版收到了第一个“星期二更新补丁”。考虑到操作系统在一周前刚刚开始以阶段性方式推出,这并不是一个巨大的更新。它只是修复了一些兼容性问题。
向超过 10 亿用户提供 Windows 更新和安全修复涉及分发大量的更新内容,并占用大量带宽。为了减少网络带宽,微软使用了新的压缩技术,将 Windows 11 更新包大小减少了 40%。
微软今天通过文章分享了 Windows 11 更新模式改变的细节。
“对于需要正向和反向 delta 对的版本数据系统,“反向更新数据生成”提供了一种方法,可以有效地将正向 delta 分发到设备上,并让设备保持一个返回到原始状态的路径。微软已经在 Windows 11 中成功地采用了这种方法,使更新包的大小减少了 40%。这有利于我们的客户群,他们将需要更少的下载来保持最新和安全。”
获悉,Windows 是一个被用于全球各种环境的操作系统,特别是在这个混合环境中,每个人可能无法获得最快的互联网连接,但仍然需要通过安全补丁保持保护。这就是为什么补丁必须是小尺寸的,尤其是每月的累积更新包含了所有以前发布的修复程序。
微软着手减少 Windows 11 更新的大小,目标如下:
-
减少网络下载的大小。
-
不加长安装时间。
-
保持与所有分销渠道的兼容性,而不需要 IT 专业人员进行任何配置更改。
Windows 10 版本 1809 及以上使用上图中描述的成对的正向和反向差分压缩。它确保操作系统在服务时可以恢复到其基本版本作为中间状态。正如你可能注意到的,虽然正向和反向差分是对称的,但它们的内容在很大程度上是不相干的。这意味着包含共享和不相干内容的双向差分并不比一对正向和反向差分小很多。
微软没有利用双向差分,因为一些转换和补丁可能会删除反向差分所需的数据。为了确保非破坏性的转换,反向 delta 首先需要存储由正向 delta 增加和删除的内容。然而,正如上面所指出的,由于内容上的不衔接,这个过程不会非常有效,至少与成对的正向和反向差分压缩相比是这样的。因为正向和反向 delta 中的数据基本上是不相干的,所以双向 delta 比成对的正向和反向 delta 的效率要高得多。
微软在 Windows 11 中使用一种叫做反向更新数据生成的方法对这一过程进行了重大改变。这是一个看似简单和直观的方法,它观察 delta 指令,然后直接逆转它们,而不经过成对的 delta 反向通道。然而,在后端,这构成了一个重大的后端变化,它使用一个映射表来映射汇编代码功能中的结果变化。
微软解释说:
“当一个函数的地址发生变化时,架构上开明的 delta 算法,如微软的 MSDelta,会重新映射虚拟地址。这很重要,因为即使是汇编代码中的基本补丁也会改变二进制程序中后续函数的地址。如果不重新映射虚拟地址,一行汇编代码的改变可能会导致数以万计的函数调用需要调整虚拟地址。
映射的工作原理是对程序的汇编代码进行逐个字节的反汇编,并确定虚拟地址。虚拟地址在逻辑上对应于汇编代码功能的入口点,并在汇编代码被修复更新时发生转移。这些移动被 delta 引擎观察到,并被一个映射表所捕获。关于 delta 应用的映射过程使这些变化的地址正常化,这也是现代架构上开明的 delta 算法如此高效的很大一部分原因。
与基本的修补指令一样,这些转换可以被观察和逆转。由于不是所有的映射都是 1:1 的,所以有一点开销,当前向映射与观察到的反向映射冲突时,必须使用额外的修补指令来对齐映射。这可以在原地完成,反向映射将提供与反向 delta 几乎相同的性能,其直接映射来自服务器上完成的 delta 生成。”
微软声称,其反向更新数据生成方法使 Windows 11 更新包大小减少了 40%。该公司表示,它在几个月前还为这种方法申请了专利。微软是否会将这种技术也回传到 Windows 10,还有待观察。
https://techcommunity.microsoft.com/t5/windows-it-pro-blog/how-microsoft-reduced-windows-11-update-size-by-40/ba-p/2839794