Provided by: manpages-ro_4.21.0-2_all 

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 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.03 5 februarie 2023 nptl(7)