glibc
tem uma opção de configuração chamada --enable-kernel
que permite especificar a versão mínima do kernel suportada. Quando arquivos de objeto são vinculados a essa compilação glibc, o vinculador adiciona uma seção SHT_NOTE ao executável resultante denominado .note.ABI-tag
, que inclui essa versão mínima do kernel. O formato exato é definido no LSB e o file
sabe procurar essa seção e como interpretar isso.
A razão pela qual o seu glibc específico foi construído para exigir o 2.6.9 depende de quem o construiu. É o mesmo no meu sistema (Gentoo); um comentário na ebuild da glibc diz que ele especifica 2.6.9 porque é o mínimo necessário para o NPTL , então é provável que um escolha comum. Outro que parece ser exibido é 2.4.1, porque era o mínimo necessário para LinuxThreads , o pacote usado antes do NPTL