developerWorks: Linux Threading Models Compared: LinuxThreads and NPTL
Aug 08, 2006, 04:30 (0 Talkback[s])
(Other stories by Vikram Shukla)
No-Size-Fits-All! An Application-Down Approach for Your Cloud Transformation REGISTER >
[ Thanks to IdaAshley for this link.
"When Linux was first developed, it did not have real support
for threading in the kernel. But it did support processes as
schedulable entities through the clone() system call. This call
created a copy of the calling process, with the copy sharing the
address space of the caller. The LinuxThreads project used this
system call to simulate thread support entirely in user space.
Unfortunately, this approach had a number of disadvantages,
particularly in the areas of signal handling, scheduling, and
interprocess synchronization primitives. Moreover, the threading
model did not conform to POSIX requirements.
"To improve on LinuxThreads, it was clear that some kernel
support and a rewritten threads library would be required. Two
competing projects were started to address these requirements. A
team including developers from IBM worked on NGPT, or
Next-Generation POSIX Threads. Meanwhile, developers at Red Hat
were working on the NPTL. NGPT was abandoned in mid-2003, leaving
the field to NPTL..."