.\" -*- coding: UTF-8 -*-
.\" Copyright, the authors of the Linux man-pages project
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH nptl 7 "17 mai 2025" "Pages du manuel de Linux 6.15"
.SH NOM
nptl — Bibliothèque native des threads POSIX
.SH DESCRIPTION
.\"
NPTL (Native POSIX Threads Library — Bibliothèque native des threads POSIX)
est l’implémentation de la bibliothèque GNU C de threads POSIX utilisée dans
les systèmes Linux modernes.
.SS "NPTL et signaux"
NPTL représente l’utilisation interne des deux premiers signaux temps réel
(numéros de signal 32 et 33). Un de ces signaux est utilisé pour gérer
l’annulation de threads et d’horloges POSIX (consultez \fBtimer_create\fP(2)),
l’autre est utilisé comme partie d’un mécanisme qui garantit que tous les
threads d’un processus aient toujours les mêmes UID et GID comme demandé par
POSIX. Ces signaux ne peuvent pas être utilisés dans les applications.
.P
Pour prévenir d’une utilisation accidentelle de ces signaux dans des
applications, pouvant interférer avec le fonctionnement de la mise en œuvre
de NPTL, diverses fonctions de la bibliothèque glibc et enveloppes d’appel
système essaient de cacher ces signaux aux applications comme suit :
.IP \- 3
\fBSIGRTMIN\fP est réglé à la valeur 34 (plutôt que 32) ;
.IP \-
les interfaces \fBsigwaitinfo\fP(2), \fBsigtimedwait\fP(2) et \fBsigwait\fP(3)
ignorent silencieusement les requêtes d’attente de ces deux signaux s’ils
sont spécifiés dans l’argument d’ensemble de signaux de ces appels ;
.IP \-
les interfaces \fBsigprocmask\fP(2) et \fBpthread_sigmask\fP(3) ignorent
silencieusement les essais de bloquer ces deux signaux ;
.IP \-
les interfaces \fBsigaction\fP(2), \fBpthread_kill\fP(3) et \fBpthread_sigqueue\fP(3)
échouent avec l’erreur \fBEINVAL\fP (indiquant un numéro de signal non
autorisé) si ces signaux sont spécifiés ;
.IP \-
.\"
\fBsigfillset\fP(3) n’inclut pas ces deux signaux lorsqu’il crée un ensemble
complet de signaux.
.SS "Modifications des identifiants de processus et NPTL"
Au niveau du noyau Linux, les identifiants (ID utilisateur et ID groupe)
sont des attributs particuliers à chaque thread. Cependant, POSIX demande
que tous les threads POSIX d’un processus aient les même identifiants. Pour
satisfaire cette exigence, l’implémentation de NPTL enveloppe tous les
appels système qui modifient les identifiants avec des fonctions qui, en
plus d’invoquer l’appel système sous\-jacent, organisent aussi la
modification des identifiants de tous les autres threads du processus.
.P
La mise en œuvre de chacun de ces appels système implique l’utilisation d’un
signal temps réel qui est envoyé (en utilisant \fBtgkill\fP(2)) à 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 système à utiliser dans un tampon global. Un
gestionnaire de signal dans le ou les threads récepteurs recherche cette
information, puis utilise le même appel système pour modifier ses
identifiants.
.P
.\" FIXME .
.\" Maybe say something about vfork() not being serialized wrt set*id() APIs?
.\" https://sourceware.org/bugzilla/show_bug.cgi?id=14749
Des fonctions enveloppe utilisant cette technique sont fournies pour
\fBsetgid\fP(2), \fBsetuid\fP(2), \fBsetegid\fP(2), \fBseteuid\fP(2), \fBsetregid\fP(2),
\fBsetreuid\fP(2), \fBsetresgid\fP(2), \fBsetresuid\fP(2) et \fBsetgroups\fP(2).
.SH STANDARDS
Pour des précisions sur la conformité de NPTL avec la norme POSIX, consultez
\fBpthreads\fP(7).
.SH NOTES
.\" See POSIX.1-2008 specification of pthread_mutexattr_init()
.\" See sysdeps/x86/bits/pthreadtypes.h
POSIX indique que tout thread dans chaque processus ayant accès à la mémoire
contenant un mutex de processus partagé (\fBPTHREAD_PROCESS_SHARED\fP) peut
agir sur ce mutex. Cependant, sur les systèmes x86 64 bits, la définition 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 systèmes
x86\-64.
.SH "VOIR AUSSI"
\fBcredentials\fP(7), \fBpthreads\fP(7), \fBsignal\fP(7), \fBstandards\fP(7)
.PP
.SH TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess ,
Stéphan Rafin ,
Thierry Vignaud ,
François Micaux,
Alain Portal ,
Jean-Philippe Guérard ,
Jean-Luc Coulon (f5ibh) ,
Julien Cristau ,
Thomas Huriaux ,
Nicolas François ,
Florentin Duneau ,
Simon Paillard ,
Denis Barbier ,
David Prévot
et
Jean-Paul Guillonneau
.
.PP
Cette traduction est une documentation libre ; veuillez vous reporter à la
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License version 3
.UE
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
.PP
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
.MT debian-l10n-french@lists.debian.org
.ME .