Microsoft has been on a long mission to reduce the size of its updates for Windows 10 and Windows 11. Now it’s explained why it was necessary to reduce the size of them, which in the past have been almost 5 GB in size.
In a word, it’s about bandwidth, which millions of households in the US have a shortage of due to poor broadband in remote areas.
“With the fast pace of Windows security and quality fixes, distributing this large amount of updated content takes up substantial bandwidth,” says Microsoft software engineer Jonathon Ready.
“Reducing this network transfer is critical for a great experience. Moreover, users on slower networks can struggle to keep their machines up to date with the latest security fixes if they cannot download the package,” he adds. Microsoft said that more than 20 million Americans lack access to high-speed broadband.
The company made significant changes to its update cadence with Windows 11: instead of two major feature updates per year with Windows 10, it shifted to one a year for Windows 11 with the Home and Pro editions getting 24 months of support, while Enterprise and Education get 36 months of support.
Everyone on supported Windows still gets Patch Tuesday and feature updates via Windows Update, but as Microsoft said at the Windows 11 announcement, those updates would be 40% smaller and happen in the background.
The other reason why smaller updates are important now is the pandemic and the wholesale move to remote work, with an increased reliance on virtual private networks.
“In addition to rural communities with limited access to high-speed broadband, hybrid and remote work have increased the complexity of update distribution for many corporations,” notes Microsoft’s Ready.
“Without high-speed internal networks to distribute updates to devices, corporations must rely on their virtual private networks and their remote workers’ home internet connections to provide update distribution. Minimizing network traffic increases the velocity of security patches, keeping a remote workforce protected wherever they are.”
Since Windows 10 version 1809, Microsoft has paired forward and reverse differential compression to make updates – via delta pairs – smaller in size while also maintaining consistency between version updates on a Windows PC – and without destroying data. At least that was the intent.
“By utilizing the forward and reverse differentials, the OS can revert to its base version as an intermediate state in servicing. While the forward and reverse differentials are symmetric in their function, their content is largely disjoint, which means that a bidirectional delta containing the shared and disjoint content is not significantly smaller than a pair of forward and reverse differentials,” he explains.
Ready adds that another “bidirectional delta” approach wasn’t feasible because it could destroy data and ultimately wouldn’t reduce the size of updates from one version of the OS to another.
“Binary deltas utilize transforms and patching instructions to transform a file from its base version to a target version. While some patching and transforms that add data to a file are non-destructive, transforms and patches may delete data needed for a reverse delta. For this reason, a bidirectional delta would need to store the content added in the forward delta and the content deleted during the forward apply. Because the data in forward and reverse deltas are largely disjoint, little efficiency is gained from a bidirectional delta over paired forward and reverse deltas,” he writes.
The rest of Ready’s explanation is for software engineers who understand the intricacies of how patches and updates use assembly code to remap virtual memory addresses in hardware.
Microsoft’s Windows shrinkage technique, in the end, relied on “reverse mapping” the assembly of virtual addresses.
“Much like the basic patching instructions, these transforms can be “observed” and reversed. There is a slight overhead as not all mappings are 1:1, and where forward mapping conflicts with its observed reverse mapping, additional patch instruction must be used to align the mapping. This can be done in-place, and the reverse mapping will provide nearly the same performance as a reverse delta with a direct mapping from a delta generation done on the server.”
He concludes by explaining that Microsoft significantly reduced the size of updates via reverse mapping of virtual address in memory.
“For versioned data systems requiring forward and reverse delta pairs, “reverse update data generation” provides a way of efficiently distributing the forward delta to the machine and having the machine maintain a path back to its original state. Microsoft has successfully employed this approach in Windows 11, providing a 40% reduction in update size. This benefits our customer base who will need to download less to remain up-to-date and secure.”