Jump to content

# Kernel live patching (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Kernel live patching. Data da última tradução: 2020-06-26. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Módulos de kernel
- Kernel/Compilação
- Kexec

O Kernel Live Patching ou KLP ("Aplicação de patches durante o uso do kernel" em uma tradução livre) permite correções rápidas no espaço de kernel sem reiniciar o sistema inteiro. Desde a versão 4.0, os patches (modificações) relacionados foram aceitos[1][2][3], de forma que é possível configurar seu kernel para ativar esse recurso. Geralmente, o KLP é alcançado por meio das seguintes etapas:

1. Obter a árvore de fontes do kernel que está sendo usado
2. Preparar o patch no kernel
3. Aplicar algumas ferramentas (veja a seguir) para ajudar a transformar e carregar o patch

Alguns projetos forneciam os utilitários de aplicação de patches durante o uso antes do suporte oficial do KLP, como o ksplice da Oracle, o #kGraft da SuSE e o #kpatch da Red Hat. Eles implementaram a funcionalidade KLP de diferentes maneiras. O conjunto funcional minimalista de patches inseridas no kernel mainstream foi derivado do kpatch e do kGraft.

## kpatch

### Instalação

Instale kpatchAUR para um kernel apropriado e kpatch-gitAUR para ferramentas de userspace.

Você também pode compilar manualmente um kernel que possui suporte ao uso kpatch, habilitando `CONFIG_LIVEPATCH`, `CONFIG_DEBUG_INFO` e `CONFIG_KALLSYMS`.

Nota Lembre-se de atualizar o gerenciador de boot após você instalar o kernel especial.

### Uso

Depois que os dois pacotes forem criados com sucesso e após a reinicialização, você pode

    $ export ROOTDIR=some/dir/aur/linux-kpatch/src/linux-x-y
    $ cd $ROOTDIR

Suponha que você tenha feito algumas modificações e tenha um patch algum.patch (contra a árvore de fontes após um `makepkg -o`, não o kernel padrão da versão x.y) em o diretório de trabalho. Inicie o utilitário kpatch,

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

Este comando envolve duas compilações do kernel, a original e a corrigida, portanto, pode levar um tempo para ser concluído. Após o término da compilação, deve haver um módulo kpatch-algum.ko no mesmo diretório. E depois,

    # insmod kpatch-algum.ko

deve resolver a questão.

Para mais informações, consulte as páginas man ou o repositório no GitHub.

## kGraft

KGraft não foi testado no ambiente do Arch.

## Veja também

- O documento do kernel sobre livepatch
- wikipedia:Kpatch
- wikipedia:KGraft
- wikipedia:Ksplice

Category:

- Kernel (Português)

Kernel live patching (Português)
Add topic