Glibc 2.36 vine cu noi funcții pentru Linux, îmbunătățiri și multe altele

După șase luni de dezvoltare, a fost anunțată lansarea noii versiuni de glibc 2.36, care respectă pe deplin cerințele standardelor ISO C11 și POSIX.1-2017 și în care noua versiune include corecții de la 59 de dezvoltatori. .

Pentru cei care nu sunt familiarizați cu Glibc, ar trebui să știe ce este o bibliotecă GNU C, cunoscut sub numele de glibc este biblioteca standard de rulare GNU C. Pe sistemele în care este utilizat, această bibliotecă C care furnizează și definește apelurile de sistem și alte funcții de bază, este utilizat de aproape toate programele. 

Principalele caracteristici noi ale Glibc 2.36

În această nouă versiune care este prezentată, se evidențiază că a adăugat suport pentru un nou format de adresă de relocare relativă DT_RELR, care vă permite să reduceți dimensiunea relocațiilor relative în obiectele partajate și executabilele legate în modul PIE (Position Independent Executables). Utilizarea câmpului DT_RELR în fișierele ELF necesită suport pentru opțiunea „-z pack-relative-relocs” din linker, introdusă în binutils 2.38.

O altă schimbare care iese în evidență în noua versiune este aceea pentru Linux funcțiile pidfd_open, pidfd_getfd și pidfd_send_signal au fost implementate pentru a oferi acces la funcționalitatea pidfd care ajută la gestionarea situațiilor de reutilizare a PID pentru a identifica mai precis procesele care accesează fișierele monitorizate (pidfd este asociat cu un anumit proces și nu se modifică, în timp ce PID-ul poate fi atașat unui alt proces după încheierea procesului). PID).

Pe lângă asta, de asemenea, în Linux vine process_madvise() permite unui proces să execute un apel de sistem madvise() în numele unui alt proces, identificând procesul țintă folosind pidfd. Prin madvise(), puteți informa nucleul despre caracteristicile lucrului cu memoria pentru a optimiza gestionarea memoriei procesului, de exemplu, pe baza informațiilor transmise, nucleul poate începe să elibereze memorie suplimentară liberă.

De asemenea, se remarcă faptul că funcția a fost adăugată process_mrelease(), care vă permite să accelerați eliberarea memoriei pentru un proces care își încheie execuția. În circumstanțe normale, eliberarea resurselor și terminarea procesului nu sunt instantanee și pot fi amânate din diverse motive, interferând cu sistemele de avertizare timpurie a spațiului utilizatorului, cum ar fi oomd (furnizat de systemd). Apelând process_mrelease, aceste sisteme pot începe mai previzibil recuperările de memorie pentru procesele care au fost încheiate forțat.

Pe de altă parte, se observă că a fost adăugat suport pentru opțiunea „no-aaaa”. la implementarea integrată a Rezoluție DNS, care vă permite să dezactivați trimiterea de solicitări DNS pentru înregistrările AAAA (determinarea unei adrese IPv6 după numele de gazdă), chiar și atunci când rulați funcții NSS precum getaddrinfo(), pentru a simplifica depanarea. Această opțiune nu afectează gestionarea legăturilor de adrese IPv6 definite în /etc/hosts și apelurile la getaddrinfo() cu flag AI_PASSIVE.

Pentru Linux, au adăugat funcțiile fsopen, fsmount, move_mount, fsconfig, fspick, open_tree și mount_setattr alin oferiți acces la un nou API kernel pentru a controla modul în care sunt montate sistemele de fișiere pe baza spațiilor de nume de montare. Funcțiile propuse permit procesarea separată a diferitelor etape de montare (procesarea superblocului, obținerea de informații despre sistemul de fișiere, montare, atașarea la punctul de montare), care au fost efectuate anterior folosind funcția comună mount().

Au fost adaugate funcțiile arc4random, arc4random_buf și arc4random_uniform pentru a furniza legături la apelul de sistem la întâmplare și interfața / Dev / urandom, returnând numere pseudoaleatoare de înaltă calitate.

Când rulați pe Linux, este oferit suport pentru arhitectură. din setul de instrucțiuni LoongArch utilizat în procesoarele Loongson 3 5000 și este implementat un nou RISC ISA similar cu MIPS și RISC-V. În forma sa actuală, este disponibilă doar compatibilitatea cu varianta pe 64 de biți de la LoongArch (LA64). Pentru a rula, necesită cel puțin binutils 2.38, GCC 12 și Linux kernel 5.19.

Dintre celelalte schimbări care se remarcă:

  • Mecanismul de preconectare, precum și variabilele de mediu asociate LD_TRACE_PRELINKING și LD_USE_LOAD_BIAS și caracteristicile de linker sunt depreciate și vor fi eliminate într-o versiune viitoare.
  • S-a eliminat codul pentru a verifica versiunea kernel-ului Linux și a gestiona variabila de mediu LD_ASSUME_KERNEL. Versiunea minimă de kernel acceptată la compilarea Glibc este determinată de câmpul ELF NT_GNU_ABI_TAG.
  • Variabila de mediu LD_LIBRARY_VERSION a fost retrasă pe platforma Linux.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre aceasta, puteți consulta detaliile În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.