Compilando a versão do kernel diferente

1

Existe alguma regra sobre quais versões do kernel você pode compilar e executar com sucesso em uma base específica de SO?

Ou seja, supondo que eu esteja no Ubuntu 16.04, que inclui algumas versões específicas do glibc, GTK e muitos outros softwares de suporte, eu acho que não posso simplesmente compilar qualquer versão do kernel e executá-lo, já que presumivelmente muitos desses componentes de suporte ao usuário podem ter uma dependência de versões específicas do kernel. Então, há regras básicas? Por exemplo, dentro de uma versão secundária é bom, etc.

    
por BeeOnRope 11.01.2017 / 19:13

1 resposta

2

Os mantenedores do kernel Linux levam a sério a compatibilidade com versões anteriores. Se um sistema funciona em uma determinada versão do kernel, ele deve funcionar em qualquer versão mais recente. Como o Ubuntu 16.04 vem com o kernel 4.4.0, qualquer versão mais recente que a 4.4.0 deve funcionar.

Não há muito software que dependa de recursos recentes do kernel. Além da libc e de alguns utilitários do sistema, a maioria dos softwares não interage diretamente com o kernel, apenas através da libc. Existem sistemas que devem continuar rodando por um longo tempo sem reiniciar, mas onde as pessoas querem rodar um software mais novo (geralmente em um chroot da instalação principal, nunca atualizada), então a libc tende a não requerer uma versão do kernel muito recente. O Ubuntu 16.04 vem com glibc 2.23 que aceita kernels Linux tão antigos quanto 2.6.32. A maioria dos softwares Ubuntu 16.04 deve rodar em kernels mais antigos, mas alguns softwares como systemd e udev requerem kernels mais recentes: a partir de v229 , você precisa de pelo menos 3.11.

Observe que tudo isso se aplica apenas ao software da web do usuário. Se você precisar compilar qualquer driver de terceiros, estará por sua conta. As APIs internas do kernel mudam com muita frequência.

    
por 12.01.2017 / 01:45