POSIX Thread Library ( eng. Native POSIX Thread Library , eng. NPTL ) är en uppsättning programkod som tillåter kärnan i operativsystemet Linux att effektivt köra program som använder POSIX-trådar . För närvarande integrerad i glibc- biblioteket .
Baserat på tester utförda på en 32-bitars arkitektur ( IA-32 ), startar NPTL framgångsrikt 100 000 trådar på cirka 2 sekunder. Som jämförelse tar en kärna utan NPTL-stöd cirka 15 minuter. [1] [2]
I versioner av Linux före 2.6 fanns det ingen riktig trådningsarkitektur, även om det fanns stöd för till exempel clone () systemanropet , som skapade en kopia av processen som anropade den i samma minnesadressutrymme som processen sig. I synnerhet LinuxThreads- projektet använde detta systemanrop för att ge stöd för trådar inom samma adressutrymme. Tyvärr hade det här biblioteket POSIX -kompatibilitetsproblem , inklusive signalbehandling i realtid , sändning och synkronisering mellan processer.
För att råda bot på situationen lanserades två projekt - NGPT (Next Generation POSIX Threads, POSIX Threads of the next generation), utvecklad av IBM -utvecklare , och NPTL, utvecklad av Red Hat -anställda . NGPT stängdes i mitten av 2003 en tid efter lanseringen av NPTL.
NPTL har vissa likheter med LinuxThreads, som att den primära abstraktionen av kärnan också är en process, eller så skapas nya trådar genom att anropa clone(). För att synkronisera trådar använder NPTL stöd från kärnan (futex-systemanropet).
NPTL har inkluderats i Red Hat Enterprise Linux-distributionen sedan version 3, och är en del av glibc .
Versionen kan hittas med följande kommandorad:
getconf GNU_LIBPTHREAD_VERSIONKommandot ger dig versionen av standardtrådsbiblioteket på alla Linux-system.