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 :

  1. Le module de correction du noyau est copié dans le répertoire /var/lib/kpatch/ et enregistré pour être réappliqué au noyau par systemd lors du prochain démarrage.
  2. 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.
  3. 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

rhel kpatch overview