LinuxThreads is an implementation of the Posix 1003.1c thread package
for Linux.
Unlike other implementations of Posix threads for Linux, LinuxThreads provides
kernel-level threads: threads are created with the new
clone() system call and all scheduling is done in the kernel.
The main strength of this approach is that it can take full advantage of
multiprocessors. It also results in a simpler, more robust thread library,
especially w.r.t. blocking system calls.
LinuxThreads is now obsolete and is being replaced by NPTL. The initial
author of LinuxThreads (Xavier Leroy) stopped working on LinuxThreads
a long time ago. The glibc development team, in particular Ulrich
Drepper, continued working on LinuxThreads for a while, but are now
developing NPLT instead.
The information on this Web page has not been updated in a
while and may not be 100% up to date.
The glibc mailing lists
often contain more up-to-date information.
General questions about LinuxThreads and programming with POSIX
threads should be posted on the comp.programming.threads
newsgroup.
Bug reports should be sent directly to the glibc development team
using the glibcbug script that is installed on your
machine along with glibc itself.
Obtaining LinuxThreads
For Linux systems based on glibc 2 (e.g. RedHat 5.0 and later):
the glibc 2 version of LinuxThreads is distributed along with
glibc 2 itself.
If you have installed a Linux distribution based on glibc 2
(such as RedHat 5.0 and later, or indeed most major Linux
distributions these days), you already have LinuxThreads on your
computer. Congratulations. Otherwise, both glibc 2 and the
associated LinuxThreads distribution can be found on Cygnus/RedHat source collection,
and also on any FTP site
that mirrors GNU software (the Cygnus/RedHat site is sometimes more
up-to-date than the GNU sites).
For Linux systems based on libc 5 (e.g. old versions of Slackware):
The source distribution of LinuxThreads for libc 5 is
available at ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy/linuxthreads.tar.gz.
Please note that the libc 5 version of LinuxThreads is obsolete and
no longer maintained. An upgrade to glibc 2 is highly recommended for
reliable multithreading programming.
Debugging threaded programs with GDB:
Recent versions of gdb and glibc support the debugging of
multithreaded programs. For instance, RedHat 6.2 and later come with
a thread-aware version of gdb.
For older systems: see H.J.Lu's patches for gdb, which include thread support and more.
The very first attempt at multi-threaded debugging for LinuxThreads
was the patches for gdb 4.17
developed at The Open Group, Grenoble, but this is now largely obsolete.
The Open Group patches are for glibc 2. Kaz Kylheku back-ported them to
libc 5: patch for LinuxThreads 0.71/libc5
and patch for GDB 4.17.
Blackdown's port of the Java
Development Kit 1.2 for Linux supports "native" threads built on
top of LinuxThreads as an alternative to the JDK's own "green" threads.
The Kaffe Java implementation does
the same.
GNAT, the GNU Ada95 compiler,
comes with a "native" run-time system that implements Ada tasks
using LinuxThreads.
Ted Baker's FLORIST package is a POSIX.5 library for GNAT that can be used as
an Ada95 interface to LinuxThreads and other Linux system calls. It
also includes a POSIX conformance test kit.
The LinuxThreads library
LinuxThreads is an implementation of the Posix 1003.1c thread package for Linux.Unlike other implementations of Posix threads for Linux, LinuxThreads provides kernel-level threads: threads are created with the new clone() system call and all scheduling is done in the kernel.
The main strength of this approach is that it can take full advantage of multiprocessors. It also results in a simpler, more robust thread library, especially w.r.t. blocking system calls.
For more information, see the LinuxThreads README and the LinuxThreads Frequently Asked Questions.
Warning
LinuxThreads is now obsolete and is being replaced by NPTL. The initial author of LinuxThreads (Xavier Leroy) stopped working on LinuxThreads a long time ago. The glibc development team, in particular Ulrich Drepper, continued working on LinuxThreads for a while, but are now developing NPLT instead.The information on this Web page has not been updated in a while and may not be 100% up to date. The glibc mailing lists often contain more up-to-date information.
General questions about LinuxThreads and programming with POSIX threads should be posted on the
comp.programming.threads
newsgroup.Bug reports should be sent directly to the glibc development team using the
glibcbug
script that is installed on your machine along with glibc itself.Obtaining LinuxThreads
For Linux systems based on glibc 2 (e.g. RedHat 5.0 and later): the glibc 2 version of LinuxThreads is distributed along with glibc 2 itself. If you have installed a Linux distribution based on glibc 2 (such as RedHat 5.0 and later, or indeed most major Linux distributions these days), you already have LinuxThreads on your computer. Congratulations. Otherwise, both glibc 2 and the associated LinuxThreads distribution can be found on Cygnus/RedHat source collection, and also on any FTP site that mirrors GNU software (the Cygnus/RedHat site is sometimes more up-to-date than the GNU sites).For Linux systems based on libc 5 (e.g. old versions of Slackware): The source distribution of LinuxThreads for libc 5 is available at ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy/linuxthreads.tar.gz. Please note that the libc 5 version of LinuxThreads is obsolete and no longer maintained. An upgrade to glibc 2 is highly recommended for reliable multithreading programming.
Debugging threaded programs with GDB: Recent versions of gdb and glibc support the debugging of multithreaded programs. For instance, RedHat 6.2 and later come with a thread-aware version of gdb.
For older systems: see H.J.Lu's patches for gdb, which include thread support and more. The very first attempt at multi-threaded debugging for LinuxThreads was the patches for gdb 4.17 developed at The Open Group, Grenoble, but this is now largely obsolete. The Open Group patches are for glibc 2. Kaz Kylheku back-ported them to libc 5: patch for LinuxThreads 0.71/libc5 and patch for GDB 4.17.
Documentation
comp.programming.threads
: O'Sullivan's FAQ and Lewis' FAQ.LinuxThreads-related software
Xavier.Leroy@inria.fr
Recent Posts
Archive Posts
Tags