Native POSIX Thread Library: Difference between revisions

Content deleted Content added
+ Template:Linux because Template:Linux kernel does not exist yet
Zalzal (talk | contribs)
Line 2:
 
==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]]. However, it did have a [[system call]] — <tt>[[clone (Linux system call)#Clone|clone]]</tt> — 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]]. NGPT was abandoned in mid-2003, at about the same time when NPTL was released.