NPTL, também conhecido como
Native POSIX Thread Library, é
o novo sistema de threading do kernel 2.6. O NPTL promete melhor
compatibilidade com o padrão POSIX, maior escalabilidade e maior
desempenho na criação e destruição de threads, colocando o
Linux
em pé de igualdade com os Unix comerciais em termos de alto
desempenho (e custando muuuuuuuuito menos! :-)
Para os chegados em tecnicalidades ou estudiosos de sistemas
operacionais, vale a leitura do
paper descritivo da
biblioteca em:
A RedHat vem implementando um backport do NPTL para os seus kernels
2.4 desde o RedHat 9 e o kernel do Fedora Core 1 tem o mesmo patch.
Só que alguns programas podem crashar alegremente, deixando você com
um segfault na mão e uma cara de tacho. Exemplos clássicos são o
IBM JRE e o
Sun JVM (antes do 1.4.1, bem, você deveria
estar utilizando o 1.4.2 mesmo...). Neste caso, LD_ASSUME_KERNEL é
seu amigo.
LD_ASSUME_KERNEL é uma variável de ambiente que diz ao kernel para
utilizar o velho LinuxThreads em vez do NPTL, com isso deixando o
programa problemático mais feliz. Pode assumir os valores 2.2.5,
2.4.1 ou 2.4.19 (ou seja, emulação do comportamento de kernels
específicos). Uma boa política é utilizar um alias do shell para o
programa crashento, por exemplo: