Dans le code de base du noyau Linux, sur lequel la version 6.19 sera construite début février, le code du sous-système LUO (Live Update Orchestrator), développé par Google pour mettre à jour le noyau en mode live sans redémarrage physique, a été intégré. Ce sous-système est basé sur le mécanisme KHO (Kexec HandOver), précédemment ajouté dans le noyau 6.16, qui permet de démarrer un nouveau noyau à partir de l'ancien sans perdre l'état du système.
Le Live Update Orchestrator permet de redémarrer complètement et de mettre à jour le noyau sans interrompre le fonctionnement et sans perdre l'état du système, des dispositifs et des processus. En plus des fonctionnalités du KHO, le sous-système LUO conserve l'état des dispositifs et de la mémoire vive, tout en garantissant la continuité des opérations liées au DMA et au traitement des interruptions. L'état est conservé jusqu'au changement vers le nouveau noyau et est restauré après l'activation du nouveau noyau sans perturber les opérations continues des dispositifs, effectuées par le système et les applications dans l'espace utilisateur.
Une caractéristique des nouveaux patchs est la possibilité de conserver les descripteurs de fichiers memfd pour maintenir l'état des données importantes en mémoire entre les redémarrages, comme le contenu de la mémoire vive. machines virtuellesComme domaine d’application privilégié du sous-système, on évoque la mise à jour rapide serveurs avec des systèmes de virtualisation basés sur l'hyperviseur KVM, pour résoudre les problèmes de sécurité et de stabilité avec un temps d'arrêt minimal des machines virtuelles. Google utilise déjà cette technologie dans ses environnements de travail.
Contrairement à livepatch, Ksplice, kpatch, kGraft et d'autres mécanismes de patching à chaud, le nouveau sous-système ne se limite pas à l'application de correctifs individuels au noyau en cours d'exécution et permet de remplacer complètement le noyau. Contrairement à l'appel de kexec, le sous-système LUO conserve l'état des dispositifs et des sous-systèmes du noyau entre les redémarrages, tandis que l'appel à kexec fonctionne seulement comme un chargeur, lançant un nouveau noyau avec une réinitialisation complète du système (équivalent à un redémarrage, mais sans transfert de contrôle au firmware).
Source : opennet.ru
