Native POSIX Thread Library (NPTL)
Native POSIX Thread Library (NPTL) to biblioteka, która umożliwia efektywne uruchamianie programów zgodnych ze standardem POSIX Threads w systemie Linux. Dzięki NPTL osiągnięto znaczną poprawę wydajności, co ilustruje przykład uruchomienia 100 000 wątków: bez NPTL zajmuje to około 15 minut, natomiast z NPTL czas ten skraca się do około 2 sekund.
Historia NPTL
NPTL została wprowadzona w wersji 2.6 jądra Linux. Wcześniej wątki tworzono za pomocą wywołania systemowego clone(), co prowadziło do rozgałęzienia procesu macierzystego na dwa wątki. Współdzieliły one przestrzeń adresową oraz tablicę deskryptorów plików. Pierwszą znaczącą implementacją wątków w jądrze Linux był projekt LinuxThreads, który umożliwił prostsze korzystanie z wątków w przestrzeni użytkownika. Mimo swojej popularności, LinuxThreads był stosunkowo wolnym rozwiązaniem.
W odpowiedzi na te ograniczenia, firma IBM zaprezentowała koncepcję NGPT (Next Generation POSIX Threads). Okazało się jednak, że rozwiązanie opracowane przez Red Hat, czyli NPTL, było znacznie bardziej wydajne. W 2003 roku IBM zakończyła prace nad NGPT.
NPTL, która pojawiła się po raz pierwszy w systemie Red Hat Linux 9, wprowadziła założenie, że każdy wątek można traktować jak proces. Jądro systemu Linux nie rozróżnia wątków i procesów, z wyjątkiem tego, że przy przełączaniu wątków nie ma konieczności zmiany przestrzeni adresowej, co znacznie przyspiesza ten proces.