Provided by: manpages-fr_4.18.1-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 makes internal use of the first two real-time signals (signal numbers 32 and 33). One
       of  these  signals  is  used  to  support  thread  cancelation  and  POSIX   timers   (see
       timer_create(2));  the  other is used as part of a mechanism that ensures all threads in a
       process always have the same UIDs and GIDs, as required by POSIX. These signals cannot  be
       used in 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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.