nptl(7) Miscellaneous Information Manual nptl(7) NUME nptl - biblioteca nativa POSIX pentru fire de execuie ,,Native POSIX Threads Library" DESCRIERE NPTL (Native POSIX Threads Library) este o implementare POSIX de fire de execuie a bibliotecii GNU C care este utilizata in sistemele Linux moderne. NPTL i semnalele NPTL utilizeaza intern primele doua semnale in timp real (numerele de semnal 32 i 33). Unul dintre aceste semnale este utilizat pentru a susine anularea firelor de execuie i cronometrele POSIX (a se vedea timer_create(2)); celalalt este utilizat ca parte a unui mecanism care asigura ca toate firele de execuie dintr-un proces au intotdeauna aceleai UID i GID, aa cum este cerut de POSIX. Aceste semnale nu pot fi utilizate in aplicaii. Pentru a preveni utilizarea accidentala a acestor semnale in aplicaii, care ar putea sa interfereze cu funcionarea implementarii NPTL, diverse funcii de biblioteca glibc i funcii de invaluire a apelurilor de sistem incearca sa ascunda aceste semnale de aplicaii, dupa cum urmeaza: o SIGRTMIN este definit cu valoarea 34 (in loc de 32). o Interfeele sigwaitinfo(2), sigtimedwait(2) i sigwait(3) ignora in mod silenios cererile de ateptare a acestor doua semnale daca acestea sunt specificate in argumentul set de semnale al acestor apeluri. o Interfeele sigprocmask(2) i pthread_sigmask(3) ignora in mod silenios incercarile de blocare a acestor doua semnale. o Interfeele sigaction(2), pthread_kill(3) i pthread_sigqueue(3) eueaza cu eroarea EINVAL (care indica un numar de semnal nevalid) daca sunt specificate aceste semnale. o sigfillset(3) nu include aceste doua semnale atunci cand creeaza un set complet de semnale. NPTL i modificari ale acreditarilor de proces La nivelul nucleului Linux, acreditarile (ID-urile de utilizator i de grup) sunt un atribut pentru fiecare fir de execuie. Cu toate acestea, POSIX impune ca toate firele POSIX dintr-un proces sa aiba aceleai credeniale. Pentru a se conforma acestei cerine, implementarea NPTL include toate apelurile de sistem care modifica acreditarile procesului cu funcii care, pe langa apelul de sistem de baza, se ocupa de modificarea acreditarilor tuturor celorlalte fire din proces. Implementarea fiecaruia dintre aceste apeluri de sistem implica utilizarea unui semnal in timp real care este trimis (folosind tgkill(2)) catre fiecare dintre celelalte fire care trebuie sa ii schimbe acreditarile. Inainte de a trimite aceste semnale, firul care schimba acreditarile salveaza noile acreditari i inregistreaza apelul de sistem utilizat intr-o memorie tampon globala. Un gestionar de semnal din firul (firele) de execuie receptoar(e) preia aceste informaii i apoi utilizeaza acelai apel de sistem pentru a-i schimba acreditarile. Funciile de invaluire care utilizeaza aceasta tehnica 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 ca orice fir din orice proces care are acces la memoria care conine un mutex partajat de proces (PTHREAD_PROCESS_SHARED) poate opera pe acel mutex. Cu toate acestea, pe sistemele x86 pe 64 de bii, definiia mutex-ului pentru x86-64 este incompatibila cu definiia mutex-ului pentru i386, ceea ce inseamna ca binarele pe 32 de bii i 64 de bii nu pot partaja mutex-uri pe sistemele x86-64. CONSULTAI I credentials(7), pthreads(7), signal(7), standards(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 nptl(7)