Windows Mises à jour à l’aide de différentiels avant et inversé

Les mises à jour qualité mensuelles windows sont cumulatives et contiennent tous les correctifs publiés précédemment pour garantir la cohérence et la simplicité. Pour une plateforme de système d’exploitation comme Windows, qui reste prise en charge pendant plusieurs années, la taille des mises à jour qualité mensuelles peut rapidement augmenter, ce qui a un impact direct sur la consommation de bande passante réseau.

Aujourd’hui, ce problème est résolu à l’aide de téléchargements rapides, où des téléchargements différentiels pour chaque fichier modifié dans la mise à jour sont générés en fonction des révisions historiques sélectionnées et de la version de base. Dans cet article, nous introduisons une nouvelle technique pour créer des packages de mises à jour logicielles compacts applicables à toute révision de la version de base, puis nous décrivons comment les mises à jour qualité Windows utilisent cette technique.

Conditions générales

Les conditions générales suivantes s’appliquent tout au long de ce document :

  • Version de base : version majeure du logiciel avec des modifications importantes, comme Windows 10, version 1809 (Windows 10 Build 17763.1)
  • Révision : versions mineures entre les versions principales, telles que KB4464330 (Windows 10 Build 17763.55)
  • Fichiers de stockage de correctifs sans base (PSF sans base) : corriger les fichiers de stockage qui contiennent des fichiers binaires ou des fichiers complets

Dans cet article, nous introduisons une nouvelle technique qui peut produire des mises à jour logicielles compactes optimisées pour n’importe quelle paire de révision d’origine/destination. Pour ce faire, il calcule le différentiel d’un fichier modifié de la version de base et son différentiel inverse vers la version de base. Les différentiels avant et inversé sont ensuite empaquetés sous forme de mise à jour et distribués aux points de terminaison exécutant le logiciel à mettre à jour. Le contenu du package de mise à jour peut être symbolisé comme suit :

Représentation symbolique du contenu du package de mise à jour. Zone contenant deux expressions : delta sub zero transform to sub N, suivi delta sub N transform to sub zéro.

Les points de terminaison qui ont la version de base du fichier (V0) hydratent la révision cible (VN) en appliquant une transformation simple :

Équation : V sub zero + delta sub zero transform to sub N = V sub n.

Les points de terminaison qui ont la révision N du fichier (VN), hydratent la révision cible (VR) en appliquant l’ensemble de transformations suivant :

Équation 1 : V sub n + delta sub n transform to 0 = V sun 0 ; Équation 2 : V sub zero + delta sub 0 transformer en R = V sub R.

Les points de terminaison conservent les différentiels inverses pour la révision logicielle sur laquelle ils se trouvent, afin qu’ils puissent être utilisés pour l’hydratation et l’application de la prochaine mise à jour de révision.

En utilisant une base de référence commune, cette technique produit un package de mise à jour unique avec de nombreux avantages :

  • Taille compacte
  • Applicable à toutes les bases de référence
  • Simple à générer
  • Installation efficace
  • Redistributable

Historiquement, les tailles de téléchargement des mises à jour qualité Windows (Windows 10, version 1803 et versions antérieures prises en charge de Windows 10) étaient optimisées à l’aide du téléchargement rapide. Le téléchargement rapide est optimisé de sorte que la mise à jour des systèmes Windows télécharge le nombre minimal d’octets. Pour ce faire, vous générez des différentiels pour chaque fichier mis à jour en fonction des révisions de base historique sélectionnées du même fichier + de sa version de base ou RTM.

Par exemple, si la mise à jour qualité mensuelle d’octobre a été mise à jour Notepad.exe, des différentiels pour Notepad.exe de fichiers sont générés de septembre à octobre, d’août à octobre, de juillet à octobre, de juin à octobre et de la version de fonctionnalité d’origine à octobre. Tous ces différentiels sont stockés dans un fichier de stockage de correctifs (PSF, également appelé fichiers de téléchargement rapide) et hébergés ou mis en cache sur Windows Update ou d’autres serveurs de gestion ou de distribution des mises à jour (par exemple, Windows Server Update Services (WSUS), Microsoft Configuration Manager, ou un serveur de gestion des mises à jour ou de distribution non-Microsoft qui prend en charge les mises à jour rapides). Un appareil appliquant des mises à jour rapides utilise le protocole réseau pour déterminer les différentiels optimaux, puis télécharge uniquement ce qui est nécessaire à partir des points de terminaison de distribution de mise à jour.

Le côté inverse du téléchargement rapide est que la taille des fichiers PSF peut être élevée en fonction du nombre de bases de référence historiques par rapport auxquelles les différentiels ont été calculés. Le téléchargement et la mise en cache de fichiers PSF volumineux sur des serveurs de distribution de mises à jour locaux ou distants sont problématiques pour la plupart des organisations. Par conséquent, elles ne peuvent pas utiliser les mises à jour rapides pour maintenir leur parc d’appareils exécutant Windows à jour. Deuxièmement, en raison de la complexité de la génération de différentiels et de la taille des fichiers express qui doivent être mis en cache sur les serveurs de distribution de mises à jour, il est uniquement possible de générer des fichiers de téléchargement express pour les bases de référence les plus courantes. Par conséquent, les mises à jour express ne s’appliquent qu’aux bases de référence sélectionnées. Enfin, le calcul des différentiels optimaux est coûteux en termes d’utilisation de la mémoire système, en particulier pour les systèmes à faible coût, ce qui a un impact sur leur capacité à télécharger et à appliquer une mise à jour en toute transparence.

Dans les sections suivantes, nous décrivons comment les mises à jour qualité utilisent cette technique basée sur les différentielles avant et inversée pour les versions plus récentes de Windows et Windows Server afin de surmonter les problèmes liés aux téléchargements rapides.

Conception de haut niveau

Mise à jour de l’empaque

Les packages de mise à jour qualité Windows contiennent des différentiels de transfert des bases de référence RTM de mise à jour qualité (∆RTM→N) et des différentiels inversés vers RTM (∆N→RTM) pour chaque fichier qui a changé depuis RTM. En utilisant la version RTM comme base de référence, nous nous assurons que tous les appareils ont une charge utile identique. Les métadonnées de package de mise à jour, les manifestes de contenu et les différentiels de transfert et d’inverse sont empaquetés dans un fichier d’armoire (.cab). Ce fichier .cab et la logique d’applicabilité seront également encapsulés au format Microsoft Standalone Update (.msu).

Il peut arriver que de nouveaux fichiers soient ajoutés au système pendant la maintenance. Ces fichiers n’ont pas de bases de référence RTM, donc les différentiels avant et inverse ne peuvent pas être utilisés. Dans ces scénarios, les différentiels null sont utilisés pour gérer la maintenance. Les différentiels Null sont la version légèrement compressée et optimisée des fichiers binaires complets. Les packages de mise à jour peuvent contenir des différentiels vers l’avant ou inverse, ou un différentiel null d’un binaire donné. L’image suivante symbolise le contenu d’un programme d’installation de mise à jour de qualité Windows :

Zone externe intitulée .msu contenant deux sous-zones : 1) Logique d’applicabilité, 2) zone étiquetée .cab contenant quatre sous-zones : 1) métadonnées de mise à jour, 2) manifestes de contenu, 3) transformation delta sub RTM en sous-N (fichier 1, fichier2, etc.) et 4) delta sub N transform en RTM (fichier 1, fichier 2, etc.).

Hydratation et installation

Une fois que les vérifications d’applicabilité habituelles sont effectuées sur le package de mise à jour et sont déterminées comme applicables, l’infrastructure de maintenance des composants Windows hydrate les fichiers complets pendant la préinstallation, puis poursuit le processus d’installation habituel.

Voici une séquence générale d’activités que l’infrastructure de maintenance des composants exécute dans une transaction pour terminer l’installation de la mise à jour :

  • Identifiez tous les fichiers requis pour installer la mise à jour.
  • Hydratez chacun des fichiers nécessaires à l’aide de la version actuelle (VN) du fichier, du différentiel inverse (VN--->RTM) du fichier vers la mise à jour de qualité RTM/version de base et différentielle (VRTM--->R) de la mise à jour des fonctionnalités RTM/version de base vers la version cible. Utilisez également l’hydratation différentielle Null pour hydrater les fichiers compressés null.
  • Phasez les fichiers hydratés (fichier complet), les différentiels de transfert (sous f dossier) et les différentiels inversés (sous r dossier) ou les fichiers compressés null (sous n dossier) dans le magasin de composants (dossier%windir%\WinSxS).
  • Résolvez les dépendances et installez les composants.
  • Nettoyer l’état antérieur (VN-1) ; l’état précédent VN est conservé pour la désinstallation et la restauration ou la réparation.

Hydratation résiliente

Pour garantir la résilience contre l’altération du magasin de composants ou les fichiers manquants qui pourraient se produire en raison de la vulnérabilité de certains types de matériel à l’altération du système de fichiers, un service de réparation d’altération a été traditionnellement utilisé pour récupérer le magasin de composants automatiquement (réparation automatique d’altération) ou à la demande (réparation manuelle d’altération) à l’aide d’une source de réparation en ligne ou locale. Ce service continuera à offrir la possibilité de réparer et de récupérer du contenu pour l’hydratation et d’installer correctement une mise à jour, si nécessaire.

Lorsque l’altération est détectée pendant les opérations de mise à jour, la réparation automatique de la corruption démarre comme d’habitude et utilise le fichier de stockage patch sans base publié pour Windows Update pour chaque mise à jour afin de corriger les manifestes endommagés, les différentiels binaires ou les fichiers hydratés ou complets. Les fichiers de stockage de correctifs sans base contiennent des différentiels inversés et de transfert et des fichiers complets pour chaque composant mis à jour. L’intégrité des fichiers de réparation sera vérifiée par hachage.

La réparation de la corruption utilise le manifeste du composant pour détecter les fichiers manquants et obtenir des hachages pour la détection d’altération. Lors de l’installation de la mise à jour, de nouveaux indicateurs de Registre pour chaque différentiel intermédiaire sur l’ordinateur sont définis. Lorsque la réparation automatique de la corruption s’exécute, elle analyse les fichiers hydratés à l’aide du manifeste et les fichiers différentiels à l’aide des indicateurs. Si le différentiel est introuvable ou vérifié, il est ajouté à la liste des altérations à réparer.

Réparation automatique de la corruption différée

La « réparation automatique de la corruption différée » s’exécute pendant les opérations de mise à jour pour détecter les fichiers binaires et les différentiels endommagés. Lors de l’application d’une mise à jour, si l’hydratation d’un fichier échoue, la réparation automatique de la corruption « différée » démarre automatiquement, identifie le fichier binaire ou différentiel endommagé, puis l’ajoute à la liste d’altérations. Plus tard, l’opération de mise à jour se poursuit aussi loin que possible, de sorte que la réparation d’altération automatique « différée » puisse collecter autant de fichiers endommagés que possible à corriger. À la fin de la section d’hydratation, la mise à jour échoue et la réparation automatique de la corruption démarre. La réparation d’altération automatique s’exécute comme d’habitude et, à la fin de son fonctionnement, ajoute la liste d’endommagement générée par la réparation d’altération automatique « différée » au-dessus de la nouvelle liste à réparer. La réparation automatique de la corruption répare ensuite les fichiers figurant dans la liste d’endommagement et l’installation de la mise à jour réussit lors de la tentative suivante.