O que é uma atualização do kernel com o “Bump ABI”?

18

Como você pode ver no changelog para o Kernel do Linux , há mensagens de atualização como "Bump ABI - Maverick ABI 28".

De acordo com o Ubuntu Wiki , o ABI é algo como uma ponte entre o espaço do kernel e os outros módulos ( minha interpretação).

Essa atualização adiciona recursos extras e / ou correções de bugs? Devo atualizar meu kernel para a próxima versão?

    
por Lekensteyn 21.03.2011 / 16:14

3 respostas

11

NB: Eu não sou especialista em kernel - então, isso é baseado no conhecimento e experiência coletados.

Um "bump" da ABI não deve trazer novos recursos, embora possa "consertar" bugs em alguns módulos / aplicativos que estão procurando por uma versão superior da ABI. Você ainda deve instalar essas atualizações, pois geralmente manter todos os componentes em sincronia garantirá estabilidade e segurança.

    
por RolandiXor 21.03.2011 / 17:41
11
Primeiro, você não está olhando para o changelog do kernel do Linux. Você está olhando para o pacote meta, que é um pacote que depende do kernel mais recente. Você provavelmente quer algo como: link

O objetivo deste meta-pacote é fazer a transição do usuário por meio desses obstáculos da ABI.

Eu mantenho a mesma visão que você na ABI e no kernel. Na prática, um aumento de ABI significa que todos os módulos precisam ser reconstruídos em relação ao kernel atualizado.

Meu entendimento também está de acordo com a Roland, na medida em que uma colisão da ABI não significa novos recursos, apenas correções críticas e atualizações de segurança.

    
por user1974 21.03.2011 / 18:02
3

A ABI é a Interface Binária da Aplicação, (não deve ser confundida com a API, a Interface de Programação de Aplicativos). A ABI define os tamanhos, os sinais e as ordens dos números que o aplicativo está usando.

Para ser claro, aqui está um exemplo: quero codificar a idade de um edifício, expressa em anos. Para fazer isso, eu posso usar um C unsigned char , que é um tipo cujo tamanho é 1 byte, e que pode codificar valores de 0 a 255. Agora, suponha que eu descubra que 255 é um limite muito baixo, porque existem edifícios que foram construídos há mais de 255 anos. Eu posso então usar um C unsigned int , que tem 4 bytes de comprimento e pode codificar valores de 0 a 65535.

Alterando o tipo de char para int , eu não mudei o significado semântico do campo (era uma idade expressa em anos e ainda é), porém eu mudei seu tamanho. Todo software que interage com o meu aplicativo não precisará ser alterado, mas falará um "idioma" diferente.

Portanto, quando um kernel muda sua ABI, isso significa que ele alterou a linguagem que fala, mas nenhuma funcionalidade foi adicionada, removida ou modificada. Todos os módulos de terceiros que precisam interagir com o kernel precisam ser recompilados para falar este novo idioma, mas eles não precisam ser alterados de forma alguma para funcionar corretamente.

    
por Andrea Corbellini 03.11.2014 / 11:52