Jump to content

Kernel live patching (Italiano)

From ArchWiki
Stato della traduzioneQuesto articolo è la versione tradotta di Kernel live patching. Data dell'ultima traduzione: 2025-12-20. Se ci sono cambiamenti nella versione inglese, è possibile dare una mano a sincronizzarne la traduzione.

Il Kernel Live Patching (KLP) consente di applicare correzioni rapide nel kernel space senza riavviare l'intero sistema. Dalla versione 4.0, le relative patch sono state accettate [1] [2] [3], rendendo possibile la configurazione del proprio kernel per abilitare questa funzione. In generale, il KLP si ottiene attraverso i seguenti passaggi:

  1. ottenere l'albero dei sorgenti del kernel in esecuzione;
  2. preparare la patch per il kernel;
  3. utilizzare alcuni strumenti (come descritto a seguire) per facilitare la trasformazione e il caricamento della patch.

Alcuni progetti fornivano utility per il live patching prima che il KLP fosse ufficialmente supportato, come ksplice di Oracle, #kGraft di SuSE e #kpatch di Red Hat. Questi progetti hanno implementato la funzionalità KLP in modi differenti. Il set funzionale minimalista di patch entrato nel kernel mainstream è stato derivato da kpatch e kGraft.

kpatch

Installazione

Installare kpatchAUR per un kernel appropriato e kpatch-git per gli strumenti nello user space.

È anche possibile compilare manualmente un kernel che supporti l'uso di kpatch, abilitando le opzioni CONFIG_LIVEPATCH, CONFIG_DEBUG_INFO e CONFIG_KALLSYMS.

Nota Ricordarsi di aggiornare il boot loader dopo aver installato il kernel speciale.

Uso

Una volta che entrambi i pacchetti sono stati compilati con successo e la macchina è stata riavviata, è possibile procedere come segue:

$ export ROOTDIR=percorso/a/directory/aur/linux-kpatch/src/linux-x-y
$ cd $ROOTDIR

Supponendo di aver apportato alcune modifiche e di avere una patch some.patch (riferita all'albero dei sorgenti dopo un makepkg -o, non al kernel vanilla della versione x.y) nella directory di lavoro, avviare l'utility di kpatch:

$ kpatch-build -s $(pwd) -v $(pwd)/vmlinux some.patch

Questo comando comporta due compilazioni del kernel, quella originale e quella con la patch, quindi potrebbe richiedere del tempo per il completamento. Al termine della compilazione, dovrebbe essere presente un modulo kpatch-some.ko nella stessa directory. A quel punto:

# insmod kpatch-some.ko

dovrebbe completare l'operazione.

Per ulteriori informazioni, consultare le pagine man o il repository GitHub.

kGraft

This article or section needs expansion.

Reason: Nessuna informazione utile. (Discuss in Talk:Kernel live patching (Italiano))

kGraft non è stato testato in ambiente Arch.

Ulteriori informazioni