A POSIX Thread Library ( eng. Native POSIX Thread Library , eng. NPTL ) egy olyan programkód készlet , amely lehetővé teszi a Linux operációs rendszer kernelének a POSIX szálakat használó programok hatékony végrehajtását . Jelenleg a glibc könyvtárba integrálva .
A 32 bites architektúrán ( IA-32 ) végzett tesztek alapján az NPTL körülbelül 2 másodperc alatt sikeresen elindít 100 000 szálat. Összehasonlításképpen egy NPTL támogatás nélküli kernel körülbelül 15 percig tart. [1] [2]
A Linux 2.6 előtti verzióiban nem volt valódi szálfűző architektúra, bár támogatták például a klón () rendszerhívást , amely létrehozta az azt meghívó folyamat másolatát a folyamattal azonos memóriacímtérben. maga. Konkrétan a LinuxThreads projekt ezt a rendszerhívást használta arra, hogy támogatást nyújtson az azonos címtartományon belüli szálak számára. Sajnos ennek a könyvtárnak POSIX -kompatibilitási problémái voltak , beleértve a valós idejű jelfeldolgozást , az elosztást és a folyamatok közötti szinkronizálási primitíveket.
A helyzet orvoslására két projekt indult: az NGPT (Next Generation POSIX Threads, POSIX Threads of the next generáció), amelyet az IBM fejlesztői fejlesztettek ki , és az NPTL, amelyet a Red Hat alkalmazottai fejlesztettek ki . Az NGPT-t 2003 közepén zárták be, valamivel az NPTL megjelenése után.
Az NPTL-nek van némi hasonlósága a LinuxThreads-szel, például a kernel elsődleges absztrakciója is egy folyamat, vagy új szálak jönnek létre a clone() meghívásával. A szálak szinkronizálásához az NPTL a kernel támogatását használja (a futex rendszerhívás).
Az NPTL a 3. verzió óta szerepel a Red Hat Enterprise Linux disztribúcióban , és a glibc része .
A verzió a következő parancssorból érhető el:
getconf GNU_LIBPTHREAD_VERSIONA parancs megadja az alapértelmezett szálfűzési könyvtár verzióját bármely Linux rendszeren.