Biblioteca POSIX Thread ( ing. Native POSIX Thread Library , ing. NPTL ) este un set de cod de program care permite nucleului sistemului de operare Linux să execute eficient programe care utilizează fire POSIX . În prezent integrat în biblioteca glibc .
Pe baza testelor efectuate pe o arhitectură pe 32 de biți ( IA-32 ), NPTL pornește cu succes 100.000 de fire în aproximativ 2 secunde. Pentru comparație, un nucleu fără suport NPTL durează aproximativ 15 minute. [1] [2]
În versiunile de Linux anterioare versiunii 2.6, nu exista o arhitectură reală de threading, deși exista suport, de exemplu, pentru apelul de sistem clone () , care a creat o copie a procesului care l-a numit în același spațiu de adresă de memorie ca și procesul. în sine. În special, proiectul LinuxThreads a folosit acest apel de sistem pentru a oferi suport pentru firele din același spațiu de adrese. Din păcate, această bibliotecă a avut probleme de compatibilitate POSIX , inclusiv procesarea semnalului în timp real , dispecerizarea și primitivele de sincronizare între procese.
Pentru a remedia situația, au fost lansate două proiecte - NGPT (Next Generation POSIX Threads, POSIX Threads of the next generation), dezvoltat de dezvoltatorii IBM și NPTL, dezvoltat de angajații Red Hat . NGPT a fost închis la mijlocul anului 2003 la ceva timp după lansarea NPTL.
NPTL are unele asemănări cu LinuxThreads, cum ar fi abstracția primară a nucleului este, de asemenea, un proces, sau fire noi sunt create prin apelarea clone(). Pentru a sincroniza firele de execuție, NPTL folosește suportul din nucleu (apelul de sistem futex).
NPTL a fost inclus în distribuția Red Hat Enterprise Linux începând cu versiunea 3 și face parte din glibc .
Versiunea poate fi găsită cu următoarea linie de comandă:
getconf GNU_LIBPTHREAD_VERSIONComanda vă va oferi versiunea bibliotecii implicite de threading pe orice sistem Linux.