|
Microsoft ежемесячно предоставляет последние обновления безопасности и пользовательского интерфейса Windows. Обновления являются модульными, а это означает, что независимо от того, какое обновление вы установили в данный момент, вам нужно только самое последнее обновление качества, чтобы обновить ваш ПК.
Благодаря быстрым темпам исправлений безопасности и качества Windows, распространение этого большого объема обновленного содержимого требует значительных затрат пропускной способности. Уменьшение этой сетевой передачи имеет решающее значение для отличного опыта. Более того, пользователи в более медленных сетях могут изо всех сил пытаться поддерживать свои ПК в актуальном состоянии с помощью последних исправлений безопасности, если они не могут загрузить пакет.
Проблема с большим размером обновлений Windows
Помимо сельских сообществ с ограниченным доступом к высокоскоростной широкополосной связи, гибридная и удаленная работа усложнили распространение обновлений для многих корпораций. Без высокоскоростных внутренних сетей для распространения обновлений на устройства корпорации должны полагаться на свои виртуальные приватные сети и домашние интернет-соединения своих удаленных сотрудников для распространения обновлений. Минимизация сетевого трафика увеличивает скорость установки исправлений безопасности, обеспечивая защиту удаленных сотрудников, где бы они ни находились.
Цели
Microsoft решила уменьшить размер обновлений Windows 11, преследуя следующие цели:
• Уменьшить размер сетевых загрузок;
• Не регрессировать время установки;
• Поддержка совместимости со всеми каналами распространения без каких-либо изменений конфигурации, необходимых ИТ-специалистам;
Понимание обслуживания Windows
Начиная с Windows 10 версии 1809, при обслуживании Windows использовалось парное прямое и обратное дифференциальное сжатие. Используя прямой и обратный дифференциалы, ОС может вернуться к своей базовой версии в качестве промежуточного состояния при обслуживании. Хотя прямая и обратная дифференциалы симметричны по своей функции, их содержимое в значительной степени не пересекается, а означает, что двунаправленная дельта, содержащая общий и непересекающийся контент, ненамного меньше пары прямых и обратных дифференциалов.
Почему двунаправленный дельта-подход нежизнеспособен:
Двоичные дельты используют преобразования и инструкции исправления для преобразования файла из его базовой версии в целевую версию. Хотя некоторые исправления и преобразования, которые добавляют данные в файл, являются неразрушающими, преобразования и исправления могут удалять данные, необходимые для обратной дельты. По этой причине двунаправленная дельта должна хранить контент, добавленный в прямую дельту, и контент, удаленный во время прямого применения. Поскольку данные в прямой и обратной дельтах в значительной степени не пересекаются, двунаправленная дельта малоэффективна по сравнению с парными прямой и обратной дельтами.
Генерация данных обратного обновления
Microsoft обнаружила, что эти преобразования и исправления можно «наблюдать» на этапе применения дельты и эффективно перекодировать в обратную дельту (n-> 0), устраняя необходимость в распределении обратных дельт в подходе парной дельты.
Сопоставление виртуальных адресов ассемблера
Архитектурно продуманные дельта-алгоритмы, такие как Microsoft MSDelta, переназначают виртуальные адреса при изменении адреса функции. Это важно, потому что даже базовые исправления в ассемблерном коде смещают адрес функции последующих функций в двоичной программе. Без переназначения виртуальных адресов изменение однострочного ассемблерного кода может привести к десяткам тысяч вызовов функций, требующих корректировки виртуальных адресов.
Сопоставление работает путем побайтового дизассемблирования ассемблерного кода программы и определения виртуальных адресов. Виртуальные адреса логически соответствуют точкам входа для функций ассемблера и смещаются, когда ассемблер обновляется исправлением. Эти сдвиги наблюдаются движком дельта и фиксируются таблицей сопоставления. Процесс сопоставления при дельта-применении нормализует адреса этих изменений и является значительной частью причины, по которой современные архитектурно просвещенные дельта-алгоритмы настолько эффективны.
Обратное сопоставление виртуальных адресов ассемблера
Подобно основным инструкциям по исправлению, эти преобразования можно «наблюдать» и обращать вспять. Существуют небольшие накладные расходы, так как не все сопоставления равны 1:1, и в тех случаях, когда прямое сопоставление конфликтует с наблюдаемым обратным сопоставлением, для выравнивания сопоставления необходимо использовать дополнительную инструкцию по исправлению. Это можно сделать на месте, и обратное сопоставление обеспечит почти такую же производительность, что и обратная с прямым сопоставлением из поколения дельта, выполненного на сервере.
Резюме
Для версионных систем данных, требующих пар прямой и обратной дельты, «генерация данных обратного обновления» обеспечивает способ эффективного распределения прямой дельты на ПК и обеспечения того, чтобы ПК поддерживал путь обратно в исходное состояние. Microsoft успешно применила этот подход в Windows 11, сократив размер обновлений на 40%.
|
|