POSIX Thread Library ( eng. Native POSIX Thread Library , eng. NPTL ) er et sæt programkode, der gør det muligt for kernen i Linux -operativsystemet effektivt at udføre programmer, der bruger POSIX-tråde . I øjeblikket integreret i glibc- biblioteket .
Baseret på test udført på en 32-bit arkitektur ( IA-32 ), starter NPTL med succes 100.000 tråde på omkring 2 sekunder. Til sammenligning tager en kerne uden NPTL-understøttelse omkring 15 minutter. [1] [2]
I versioner af Linux før 2.6 var der ingen egentlig trådarkitektur, selvom der for eksempel var understøttelse af klonen () systemkaldet , som skabte en kopi af processen, der kaldte den i det samme hukommelsesadresserum som processen sig selv. Især LinuxThreads- projektet brugte dette systemkald til at yde support til tråde inden for det samme adresserum. Desværre havde dette bibliotek problemer med POSIX -kompatibilitet , inklusive signalbehandling i realtid , afsendelse og synkronisering mellem processer.
For at afhjælpe situationen blev to projekter lanceret - NGPT (Next Generation POSIX Threads, POSIX Threads of the next generation), udviklet af IBM -udviklere , og NPTL, udviklet af Red Hat -medarbejdere . NGPT blev lukket i midten af 2003 nogen tid efter udgivelsen af NPTL.
NPTL har nogle ligheder med LinuxThreads, såsom den primære abstraktion af kernen er også en proces, eller nye tråde oprettes ved at kalde clone(). For at synkronisere tråde bruger NPTL support fra kernen (futex-systemkaldet).
NPTL har været inkluderet i Red Hat Enterprise Linux-distributionen siden version 3 og er en del af glibc .
Versionen kan findes med følgende kommandolinje:
getconf GNU_LIBPTHREAD_VERSIONKommandoen giver dig versionen af standardtrådsbiblioteket på ethvert Linux-system.