16.5. Comment fonctionne le live patching du noyau
La solution de correction du noyau kpatch
utilise le sous-système du noyau livepatch
pour rediriger les anciennes fonctions vers les nouvelles. Lorsqu'un correctif du noyau est appliqué à un système, les choses suivantes se produisent :
-
Le module de correction du noyau est copié dans le répertoire
/var/lib/kpatch/
et enregistré pour être réappliqué au noyau parsystemd
lors du prochain démarrage. -
Le module kpatch est chargé dans le noyau en cours d'exécution et les nouvelles fonctions sont enregistrées dans le mécanisme
ftrace
avec un pointeur sur l'emplacement en mémoire du nouveau code. -
Lorsque le noyau accède à la fonction corrigée, il est redirigé par le mécanisme
ftrace
qui contourne les fonctions d'origine et redirige le noyau vers la version corrigée de la fonction.
Figure 16.1. Comment fonctionne le live patching du noyau