As interfaces de chamada de sistema do kernel do Linux são muito estáveis. Mas o kernel tem outras interfaces que nem sempre são compatíveis.
-
/proc
é praticamente estável, mas houve algumas alterações no passado (por exemplo, algumas interfaces mudaram para/sys
algum tempo depois que/sys
foi criado). - Várias interfaces relacionadas a dispositivos foram removidas no passado.
-
/sys
contém algumas interfaces estáveis (listadas emDocumentation/ABI/stable
) e outras que não são. Você não deve usar os que não são, mas às vezes as pessoas fazem isso, e uma atualização simples de segurança e estabilidade não deve quebrar as coisas para eles. - Houve incompatibilidades com modutils no passado (novos kernels requerendo uma nova versão de modutils), embora eu ache que já faz algum tempo.
- Também houve incompatibilidades em relação ao processo de inicialização em algumas configurações incomuns. Mesmo aumentar o tamanho do kernel pode causar problemas em alguns sistemas embarcados.
- Embora as interfaces externas do kernel sejam bastante estáveis, as interfaces internas não são. A regra para interfaces internas é que qualquer um pode quebrá-las, desde que consertem usos internos, mas a correção de módulos de terceiros é de responsabilidade do autor dos módulos mencionados. No geral, muitas instalações executam módulos de terceiros: drivers extras para hardware que não eram suportados pelo kernel (se o hardware é suportado pelo novo kernel, tudo bem, mas e se não for), drivers proprietários ( enquanto o mundo seria um lugar melhor se todos os drivers fossem de código aberto, esse não é o caso, por exemplo, se você quer um bom desempenho de GPU 3D, você está bem preso a drivers proprietários, etc.
- Algumas pessoas precisam recompilar seu kernel ou alguns módulos de terceiros. Kernels mais recentes muitas vezes não podem ser compilados com compiladores antigos.
Em suma, o principal motivo para não mudar para uma versão mais recente do kernel são os módulos de terceiros.
Algumas distribuições, no entanto, oferecem kernels recentes como uma opção. Por exemplo, o Debian faz com que os kernels sejam testados para usuários da versão estável através de backports. Da mesma forma, no Ubuntu LTS, os kernels das versões mais recentes do Ubuntu estão disponíveis, mas não são usados por padrão. Isso é útil principalmente para novas instalações em hardware que ainda não tinham suporte quando a distribuição foi finalizada.