Accueil Formations Développements Documents Présentation Contact
Formations
• Programmer des scripts shell pour Unix et Linux
• Développement système sous Unix et Linux
• Écriture de drivers pour le noyau Linux
• Linux temps-réel et embarqué
Autres thèmes…
Documents
• Aides-mémoire Unix & Linux
• Manuel Linux en français
Articles
• Linux : histoire d'un noyau
• Lancer une application au démarrage de Linux
• Sécuriser l'accès à une station Linux
Autres articles…
Présentation
• Renseignements
• Contact
Pthreads library
This Pthreads library is a partial and experimental implementation of the Posix.1c standard for thread programming. It is only intented for educational purposes, not for really productive applications. I wrote this library to show internal details while presenting courses of system programming.

The library is totally implemented in user space, using none of the system call (like clone(2)) provided by the kernel to help implement threads library. It only works on Intel based Linux systems, because of the processor dependant stack handling.

All the typedef and functions use the "Pthread_" prefix, while the real Posix.1c implementations use the "pthread_" prefix. This is intented to avoid confusion when the C library automatically includes "pthread_" typedefs. So the Pthreads library can be installed on a system that has already a pthread library. A shell script named pthread_2_Pthread.sh is provided to convert the source files, with the help of the Sed tool.

The library uses the SIGALRM signal to schedule the threads. So you must not uses this signal, nor the ITIMER_REAL timer in your application. In fact, I suspect that a large part of the sleeping system calls and functions won't work (sleep(3), usleep(3), setitimer(2)…)

Note that most of the Posix.1c functions are not implemented yet, the scheduler is ridiculous, a thousand of bugs are still there, but I think that the Pthreads library can be useful to understand how a real user-space thread libraries could be built.
Download
This library is only interesting for source code studying, so I do not provide any binary-only package!
Accueil | Contact | Mentions légales

Conception : Logilin - Formations Linux