Glibc 2.36 stiže sa novim funkcijama za Linux, poboljšanjima i još mnogo toga

Nakon šest mjeseci razvoja najavljeno je lansiranje nove verzije glibc 2.36, koja je u potpunosti usklađena sa zahtjevima standarda ISO C11 i POSIX.1-2017 i u kojoj nova verzija uključuje ispravke od 59 programera.

Za one kojima Glibc nije poznat, trebali bi znati o čemu se radi biblioteka GNU C, općenito poznat kao glibc standardna je GNU C biblioteka za vrijeme izvođenja. Na sistemima gdje se koristi, ova C biblioteka to pruža i definira sistemske pozive i druge osnovne funkcije, koriste ga gotovo svi programi. 

Glavne nove funkcije Glibca 2.36

U ovoj novoj verziji koja je predstavljena, to je naglašeno Dodata podrška za novi format adrese relativnog preseljenja DT_RELR, koji omogućava smanjenje veličine relativnih premještanja u dijeljenim objektima i povezanim izvršnim datotekama u PIE (Position Independent Executables) modu. Upotreba polja DT_RELR u ELF datotekama zahtijeva podršku za opciju "-z pack-relative-relocs" u povezivaču, uvedenu u binutils 2.38.

Još jedna promjena koja se ističe u novoj verziji je ta za Linux funkcije pidfd_open, pidfd_getfd i pidfd_send_signal implementirani su kako bi se omogućio pristup pidfd funkcionalnosti koji pomaže u rješavanju situacija ponovnog korištenja PID-a kako bi se preciznije identificirali procesi koji pristupaju praćenim datotekama (pidfd je povezan sa određenim procesom i ne mijenja se, dok PID može biti pridružen drugom procesu nakon što proces završi trenutni proces povezan s ovim PID-om).

Pored toga, process_madvise() također stiže na Linuxque dozvoljava procesu da izvrši madvise() sistemski poziv u ime drugog procesa, identifikujući ciljni proces koristeći pidfd. Putem madvise() možete informirati kernel o karakteristikama rada s memorijom kako biste optimizirali upravljanje memorijom procesa, na primjer, na osnovu proslijeđenih informacija, kernel može pokrenuti oslobađanje dodatne slobodne memorije.

Također se napominje da je funkcija dodana process_mrelease(), koji vam omogućava da ubrzate oslobađanje memorije za proces koji završava svoje izvršavanje. U normalnim okolnostima, oslobađanje resursa i završetak procesa nisu trenutni i mogu biti odgođeni iz različitih razloga, ometajući sisteme ranog upozorenja u korisničkom prostoru kao što je oomd (koji obezbjeđuje systemd). Pozivanjem process_mrelease, ovi sistemi mogu predvidljivije pokrenuti povrat memorije iz prisilno prekinutih procesa.

S druge strane, ističe se da je dodat podrška za opciju “ne-yyyy”. na integrisanu implementaciju DNS rezolucija, koja vam omogućava da onemogućite slanje DNS zahtjeva za AAAA zapise (određivanje IPv6 adrese po imenu hosta), čak i kada se izvode NSS funkcije kao što je getaddrinfo(), kako bi se pojednostavilo rješavanje problema. Ova opcija ne utiče na rukovanje vezama IPv6 adresa definisanim u /etc/hosts i pozive getaddrinfo() sa AI_PASSIVE zastavicom.

Za Linux su dodane funkcije fsopen, fsmount, move_mount, fsconfig, fspick, open_tree i mount_setattr para omogući pristup novom API-ju kernela za kontrolu načina na koji se sistemi datoteka montiraju zasnovano na imenskim prostorima sklopa. Predložene funkcije omogućavaju odvojenu obradu različitih faza montiranja (obrada superbloka, dobijanje informacija o sistemu datoteka, montiranje, pričvršćivanje na tačku montiranja), koje su prethodno izvedene pomoću zajedničke funkcije mount().

Dodani su funkcije arc4random, arc4random_buf i arc4random_uniform da obezbedite veze na sistemskom pozivu getrandom i sučelje /dev/urandom, vraćajući visokokvalitetne pseudoslučajne brojeve.

Kada se radi na Linuxu, pruža se podrška za arhitekturu iz skupa uputa LoongArch koristi se u Loongson 3 5000 procesorima i implementira novi RISC ISA sličan MIPS i RISC-V. U svom trenutnom obliku dostupna je samo kompatibilnost sa 64-bitnom varijantom od LoongArch (LA64). Za rad je potreban najmanje binutils 2.38, GCC 12 i Linux kernel 5.19.

Od ostalih promjena koje se ističu:

  • Mehanizam prethodnog povezivanja, kao i pridružene LD_TRACE_PRELINKING i LD_USE_LOAD_BIAS varijable okruženja i karakteristike povezivača, su zastarjeli i bit će uklonjeni u budućem izdanju.
  • Uklonjen kod za provjeru verzije Linux kernela i rukovanje LD_ASSUME_KERNEL varijablom okruženja. Minimalna verzija kernela podržana prilikom kompajliranja Glibc-a određena je poljem ELF NT_GNU_ABI_TAG.
  • Varijabla okruženja LD_LIBRARY_VERSION je zastarjela na Linux platformi.

Konačno, ako vas zanima više o tome, možete se obratiti detaljima Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.