1. 程式人生 > 資訊 >Win11 更新包大小暴減 40%,微軟官方解析技術原理

Win11 更新包大小暴減 40%,微軟官方解析技術原理

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