Provided by: manpages-ro_4.27.0-1_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   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                            nptl(7)