Native POSIX Thread Library: Difference between revisions

Content deleted Content added
Wor52 (talk | contribs)
History: Provided citation
Tags: Mobile edit Mobile web edit
Wor52 (talk | contribs)
m Indented text block
Line 3:
==History==
Before the 2.6 version of the [[Linux kernel]], processes were the schedulable entities, and there were no special facilities for [[Thread (computer science)|threads]].<ref>[https://web.archive.org/web/20210929083526/https://man7.org/linux/man-pages/man7/pthreads.7.html pthreads(7) — Linux manual page]</ref>
However, it did have a [[system call]] — {{mono|[[clone (Linux system call)#Clone|clone]]}} — which creates a copy of the calling process where the copy shares the address space of the caller. The [[LinuxThreads]] project used this system call to provide kernel-level threads (most of the previous thread implementations in Linux worked entirely in [[Userland (computing)|userland]]). 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. Two competing projects were started to address the requirement: [[NGPT]] (Next Generation POSIX Threads) worked on by a team which included developers from [[IBM]], and NPTL by developers at [[Red Hat]]. The NGPT team collaborated closely with the NPTL team and combined the best features of both implementations into NPTL. The NGPT project was subsequently abandoned in mid-2003 after merging its best features into NPTL.