Como você pode ver no changelog do kernel Linux , há mensagens de atualização como "Bump ABI - Maverick ABI 28".
De acordo com o Ubuntu Wiki , ABI é algo como uma ponte entre o espaço do kernel e os outros módulos (minha interpretação).
Essa atualização adiciona recursos e / ou correções extras? Devo atualizar meu kernel para a próxima versão?
aptitude changelog linux-image-2.6.35-28-generic
exibe uma lista de alterações. Não sei por que o meta-pacote não contém as atualizações doslinux-{image,headers}-*-generic
pacotes; talvez porque também existemlinux-{image,headers}-*-server
pacotes?A ABI é a Interface Binária do Aplicativo (não deve ser confundida com a API, a Interface de Programação de Aplicativo). A ABI define os tamanhos, os sinais e as ordens dos números que o aplicativo está usando.
Para deixar claro, aqui está um exemplo: eu quero codificar a idade de um edifício, expressa em anos. Para fazer isso, eu posso usar um C
unsigned char
, que é um tipo de tamanho de 1 byte, e que pode codificar valores de 0 a 255. Agora, suponha que eu descubra que 255 é um limite muito baixo porque há edifícios que foram construídos mais de 255 anos atrás. Posso então usar um Cunsigned int
, que tem 4 bytes de comprimento e pode codificar valores de 0 a 65535.Alterando o tipo de
char
paraint
, não mudei o significado semântico do campo (era uma idade expressa em anos e ainda é), no entanto, mudei seu tamanho. Todo software que interage com meu aplicativo não precisará ser alterado, no entanto, ele falará um "idioma" diferente.Portanto, quando um kernel altera sua ABI, significa que ele mudou o idioma 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 esse novo idioma, mas eles não precisam ser alterados de forma alguma para funcionar corretamente.
fonte