Native POSIX Thread Library

Before the 2.6 version of the Linux kernel, processes were the schedulable entities, and there were no special facilities for threads.

Unfortunately, it only partially complied with POSIX, particularly in the areas of signal handling, scheduling, and inter-process synchronization primitives.

To improve upon LinuxThreads, it was clear that some kernel support and a new threading library would be required.

Threads created by the library (via pthread_create) correspond one-to-one with schedulable entities in the kernel (processes, in the Linux case).

NPTL relies on kernel support for futexes to more efficiently implement user-space locks.