Provided by: manpages-ro_4.21.0-2_all bug

NUME

       nptl - biblioteca nativă POSIX pentru fire de execuție „Native POSIX Threads Library”

DESCRIERE

       NPTL  (Native  POSIX  Threads  Library)  este  o  implementare POSIX de fire de execuție a
       bibliotecii GNU C care este utilizată în sistemele Linux moderne.

   NPTL și semnalele
       NPTL utilizează intern primele două semnale în timp real (numerele de semnal  32  și  33).
       Unul  dintre aceste semnale este utilizat pentru a susține anularea firelor de execuție și
       cronometrele POSIX (a se vedea timer_create(2)); celălalt este utilizat ca  parte  a  unui
       mecanism  care asigură că toate firele de execuție dintr-un proces au întotdeauna aceleași
       UID și GID, așa cum este cerut de POSIX.  Aceste semnale nu pot fi utilizate în aplicații.

       Pentru a preveni utilizarea accidentală a acestor semnale în aplicații, care ar  putea  să
       interfereze  cu  funcționarea  implementării  NPTL, diverse funcții de bibliotecă glibc și
       funcții de învăluire a  apelurilor  de  sistem  încearcă  să  ascundă  aceste  semnale  de
       aplicații, după cum urmează:

       •  SIGRTMIN este definit cu valoarea 34 (în loc de 32).

       •  Interfețele  sigwaitinfo(2),  sigtimedwait(2)  și  sigwait(3)  ignoră  în mod silențios
          cererile de  așteptare  a  acestor  două  semnale  dacă  acestea  sunt  specificate  în
          argumentul set de semnale al acestor apeluri.

       •  Interfețele sigprocmask(2) și pthread_sigmask(3) ignoră în mod silențios încercările de
          blocare a acestor două semnale.

       •  Interfețele sigaction(2), pthread_kill(3) și  pthread_sigqueue(3)  eșuează  cu  eroarea
          EINVAL (care indică un număr de semnal nevalid) dacă sunt specificate aceste semnale.

       •  sigfillset(3)  nu  include  aceste  două  semnale atunci când creează un set complet de
          semnale.

   NPTL și modificări ale acreditărilor de proces
       La nivelul nucleului Linux, acreditările (ID-urile de  utilizator  și  de  grup)  sunt  un
       atribut  pentru  fiecare  fir de execuție.  Cu toate acestea, POSIX impune ca toate firele
       POSIX dintr-un proces să aibă aceleași credențiale.  Pentru a se conforma acestei cerințe,
       implementarea NPTL include toate apelurile de sistem care modifică acreditările procesului
       cu funcții care, pe lângă apelul de sistem de bază, se ocupă de modificarea  acreditărilor
       tuturor celorlalte fire din proces.

       Implementarea  fiecăruia dintre aceste apeluri de sistem implică utilizarea unui semnal în
       timp real care este trimis (folosind tgkill(2)) către fiecare dintre celelalte  fire  care
       trebuie  să  își  schimbe  acreditările.   Înainte de a trimite aceste semnale, firul care
       schimbă acreditările salvează noile acreditări și înregistrează apelul de sistem  utilizat
       într-o  memorie  tampon  globală.   Un  gestionar de semnal din firul (firele) de execuție
       receptoar(e) preia aceste informații și apoi utilizează același apel de sistem pentru a-și
       schimba acreditările.

       Funcțiile  de  învăluire  care utilizează această tehnică sunt furnizate pentru setgid(2),
       setuid(2), setegid(2), seteuid(2), setregid(2), setreuid(2), setresgid(2), setresuid(2) și
       setgroups(2).

STANDARDE

       Pentru detalii privind conformitatea NPTL cu standardul POSIX, a se vedea pthreads(7).

NOTE

       POSIX  spune că orice fir din orice proces care are acces la memoria care conține un mutex
       partajat de proces (PTHREAD_PROCESS_SHARED) poate opera pe acel mutex.  Cu toate  acestea,
       pe  sistemele  x86 pe 64 de biți, definiția mutex-ului pentru x86-64 este incompatibilă cu
       definiția mutex-ului pentru i386, ceea ce înseamnă că binarele pe 32 de biți și 64 de biți
       nu pot partaja mutex-uri pe sistemele x86-64.

CONSULTAȚI ȘI

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

TRADUCERE

       Traducerea  în  limba  română  a  acestui  manual  a  fost  creată  de Remus-Gabriel Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea  3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  sau  o  versiune  ulterioară cu
       privire la condiții privind drepturile de autor.  NU se asumă Nicio RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui  manual,  vă  rugăm  să  trimiteți  un  e-mail  la
       ⟨translation-team-ro@lists.sourceforge.net⟩.