# Kernel live patching (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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)