POSIX Thread Library ( angl. Native POSIX Thread Library , angl. NPTL ) je sada programového kódu, která umožňuje jádru operačního systému Linux efektivně spouštět programy, které používají vlákna POSIX . V současné době je integrován do knihovny glibc .
Na základě testů provedených na 32bitové architektuře ( IA-32 ) NPTL úspěšně spustí 100 000 vláken za přibližně 2 sekundy. Pro srovnání, jádro bez podpory NPTL trvá asi 15 minut. [1] [2]
Ve verzích Linuxu před 2.6 neexistovala žádná skutečná architektura vláken, i když existovala podpora například pro systémové volání clone () , které vytvořilo kopii procesu, který jej volal, ve stejném paměťovém adresním prostoru jako proces. sám. Konkrétně projekt LinuxThreads používal toto systémové volání k poskytování podpory pro vlákna ve stejném adresním prostoru. Bohužel tato knihovna měla problémy s kompatibilitou POSIX , včetně zpracování signálů v reálném čase , odesílání a meziprocesních synchronizačních primitiv.
K nápravě této situace byly spuštěny dva projekty – NGPT (Next Generation POSIX Threads, POSIX Threads of the next generation), vyvinutý vývojáři IBM , a NPTL vyvinutý zaměstnanci Red Hat . NGPT byla uzavřena v polovině roku 2003 nějakou dobu po vydání NPTL.
NPTL má určité podobnosti s LinuxThreads, například primární abstrakce jádra je také proces nebo se nová vlákna vytvářejí voláním clone(). K synchronizaci vláken používá NPTL podporu z jádra (systémové volání futex).
NPTL je součástí distribuce Red Hat Enterprise Linux od verze 3 a je součástí glibc .
Verzi lze nalézt pomocí následujícího příkazového řádku:
getconf GNU_LIBPTHREAD_VERSIONPříkaz vám poskytne verzi výchozí knihovny vláken na libovolném systému Linux.