nptl(7) Miscellaneous Information Manual nptl(7) NOM nptl -- Bibliotheque native des threads POSIX DESCRIPTION NPTL (Native POSIX Threads Library -- Bibliotheque native des threads POSIX) est l'implementation de la bibliotheque GNU C de threads POSIX utilisee dans les systemes Linux modernes. NPTL et signaux NPTL represente l'utilisation interne des deux premiers signaux temps reel (numeros de signal 32 et 33). Un de ces signaux est utilise pour gerer l'annulation de threads et d'horloges POSIX (consultez timer_create(2)), l'autre est utilise comme partie d'un mecanisme qui garantit que tous les threads d'un processus aient toujours les memes UID et GID comme demande par POSIX. Ces signaux ne peuvent pas etre utilises dans les applications. Pour prevenir d'une utilisation accidentelle de ces signaux dans des applications, pouvant interferer avec le fonctionnement de la mise en oeuvre de NPTL, diverses fonctions de la bibliotheque glibc et enveloppes d'appel systeme essaient de cacher ces signaux aux applications comme suit : - SIGRTMIN est regle a la valeur 34 (plutot que 32) ; - les interfaces sigwaitinfo(2), sigtimedwait(2) et sigwait(3) ignorent silencieusement les requetes d'attente de ces deux signaux s'ils sont specifies dans l'argument d'ensemble de signaux de ces appels ; - les interfaces sigprocmask(2) et pthread_sigmask(3) ignorent silencieusement les essais de bloquer ces deux signaux ; - les interfaces sigaction(2), pthread_kill(3) et pthread_sigqueue(3) echouent avec l'erreur EINVAL (indiquant un numero de signal non autorise) si ces signaux sont specifies ; - sigfillset(3) n'inclut pas ces deux signaux lorsqu'il cree un ensemble complet de signaux. Modifications des identifiants de processus et NPTL Au niveau du noyau Linux, les identifiants (ID utilisateur et ID groupe) sont des attributs particuliers a chaque thread. Cependant, POSIX demande que tous les threads POSIX d'un processus aient les meme identifiants. Pour satisfaire cette exigence, l'implementation de NPTL enveloppe tous les appels systeme qui modifient les identifiants avec des fonctions qui, en plus d'invoquer l'appel systeme sous-jacent, organisent aussi la modification des identifiants de tous les autres threads du processus. La mise en oeuvre de chacun de ces appels systeme implique l'utilisation d'un signal temps reel qui est envoye (en utilisant tgkill(2)) a chaque autre thread qui doit modifier ses identifiants. Avant l'envoi de ces signaux, le thread qui modifie ses identifiants stocke le ou les nouveaux identifiants et enregistre l'appel systeme a utiliser dans un tampon global. Un gestionnaire de signal dans le ou les threads recepteurs recherche cette information, puis utilise le meme appel systeme pour modifier ses identifiants. Des fonctions enveloppe utilisant cette technique sont fournies pour setgid(2), setuid(2), setegid(2), seteuid(2), setregid(2), setreuid(2), setresgid(2), setresuid(2) et setgroups(2). STANDARDS Pour des precisions sur la conformite de NPTL avec la norme POSIX, consultez pthreads(7). NOTES POSIX indique que tout thread dans chaque processus ayant acces a la memoire contenant un mutex de processus partage (PTHREAD_PROCESS_SHARED) peut agir sur ce mutex. Cependant, sur les systemes x86 64 bits, la definition du mutex pour x86-64 est incompatible avec celle pour i386, signifiant que les binaires 32 et 64 bits ne peuvent pas partager les mutex sur les systemes x86-64. VOIR AUSSI credentials(7), pthreads(7), signal(7), standards(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Paul Guillonneau Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 nptl(7)