Provided by: manpages-fr_4.26.0-1_all bug

NOM

       nptl — Bibliothèque native des threads POSIX

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.

   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
       timer_create(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.

       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 :

       -  SIGRTMIN est réglé à la valeur 34 (plutôt que 32) ;

       -  les interfaces sigwaitinfo(2), sigtimedwait(2) et sigwait(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 ;

       -  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)  échouent  avec  l’erreur  EINVAL
          (indiquant un numéro de signal non autorisé) si ces signaux sont spécifiés ;

       -  sigfillset(3) n’inclut pas ces deux signaux lorsqu’il crée 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
       à 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.

       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 tgkill(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.

       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 précisions sur la conformité de NPTL avec la norme POSIX, consultez pthreads(7).

NOTES

       POSIX  indique  que  tout  thread  dans  chaque  processus ayant accès à la mémoire contenant un mutex de
       processus partagé (PTHREAD_PROCESS_SHARED) 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.

VOIR AUSSI

       credentials(7), pthreads(7), signal(7), standards(7)

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                            nptl(7)