As novas versões do glibc podem ser usadas com um kernel antigo?

18

Aparentemente, o glibc pode ser compilado --enable-kernelpara suportar versões mais antigas do kernel. No entanto, não consegui encontrar informações sobre quais versões do kernel são suportadas em uma versão glibc específica . Idealmente, quero ver uma matriz de compatibilidade para todos os lançamentos glibc (2.x) e kernel (2.6.x). Isto existe?

Se não existe, talvez seja porque todas as versões do glibc (nos últimos 5 anos) suportam todos os kernels desde a versão 2.6.0?

(Arch = x86-64, se isso importa)

netvope
fonte

Respostas:

7

Para algumas versões do glibc, o email de anúncio informa quais versões do kernel são compatíveis.

glibc    Released      Kernel
----------------------------------------------------------

2.27     2 Feb 2018    (same as 2.26?)
2.26     2 Aug 2017    3.2
2.25     5 Feb 2017    (same as 2.24?)

2.24     4 Aug 2016    on i[4567]86 and x86_64  ->  2.6.32
2.24     4 Aug 2016    on other platforms       ->  3.2

Pode ser possível estender a tabela acima rastreando e lendo mais emails de anúncio para versões mais antigas (ou mais recentes) de glibc.

Para referência:

Linux distribution    glibc version

Debian 9 Stretch      2.24
Debian 10 Buster      2.27 (as of March 2018).

Ubuntu 16.04          2.23
Ubuntu 16.10          2.24
Ubuntu 17.04          2.24
Ubuntu 17.10          2.26
Ubuntu 18.04          2.27

Fontes:
GNU C Library (glibc)
A GNU C Library versão 2.27 já está disponível
A GNU C Library versão 2.26 já está disponível
A GNU C Library versão 2.25 já está disponível
A GNU C Library versão 2.24 está disponível
DistroWatch.com: Ubuntu

mpb
fonte
4

De acordo com o README do projeto, você pode usar o glibc com 2.4 kernels, mas perderá algumas funcionalidades:

Ao trabalhar com kernels Linux, a GNU C Library versão 2.4 destina-se principalmente ao uso com o kernel Linux versão 2.6.0 e posterior. Somente suportamos o uso da implementação NPTL de pthreads, que agora é a configuração padrão. A maior parte da biblioteca C continuará funcionando em kernels Linux mais antigos e muitos programas não exigirão que o kernel 2.6 seja executado corretamente. No entanto, pthreads e funcionalidades relacionadas não funcionarão em kernels antigos e não recomendamos o uso do glibc 2.4 com nenhum kernel Linux anterior ao 2.6.

Observe que isso --enable-kernel=VERSIONsignifica:

compilar para compatibilidade com o kernel não anterior a VERSION

tshepang
fonte