Glibc 2.36 Izdanje knjižnice sustava

Nakon šest mjeseci razvoja izašla je sistemska biblioteka GNU C Library (glibc) 2.36 koja je u potpunosti usklađena sa zahtjevima standarda ISO C11 i POSIX.1-2017. Novo izdanje uključuje popravke od 59 programera.

Neka od poboljšanja implementiranih u Glibc 2.36 uključuju:

  • Dodana je podrška za novi DT_RELR (relativno premještanje) format premještanja adresa, koji vam omogućuje smanjenje veličine relativnih premještanja u zajedničkim objektima i izvršnim datotekama povezanim u PIE (Izvršne datoteke neovisne o položaju) načinu rada. Korištenje polja DT_RELR u ELF datotekama zahtijeva podršku za opciju "-z pack-relative-relocs" u povezivaču, uvedenu u izdanju binutils 2.38.
  • Za platformu Linux implementirane su funkcije pidfd_open, pidfd_getfd i pidfd_send_signal, koje omogućuju pristup funkcionalnosti pidfd koja pomaže u rješavanju situacija ponovne upotrebe PID-a radi točnije identifikacije procesa koji pristupaju nadziranim datotekama (pidfd je povezan s određenim procesom i ne mijenja se, dok PID može biti priključen na drugi proces nakon što trenutni proces povezan s tim PID-om završi).
  • Za Linux platformu, funkcija process_madvise() je dodana kako bi se jednom procesu omogućilo da izda sistemski poziv madvise() u ime drugog procesa, identificirajući ciljni proces pomoću pidfd-a. Putem madvise() možete obavijestiti kernel o značajkama rada s memorijom kako biste optimizirali upravljanje memorijom procesa; na primjer, na temelju prenesenih informacija, kernel može pokrenuti oslobađanje dodatne slobodne memorije. Poziv madvise() od strane drugog procesa može biti potreban u situaciji kada su informacije potrebne za optimizaciju nepoznate trenutnom procesu, ali ih koordinira zasebni proces pozadinske kontrole, koji može neovisno pokrenuti uklanjanje neiskorištene memorije iz procesa.
  • Za Linux platformu dodana je funkcija process_mrelease() koja vam omogućuje da ubrzate oslobađanje memorije za proces koji završava svoje izvršenje. Pod normalnim okolnostima, oslobađanje resursa i prekid procesa nisu trenutni i mogu biti odgođeni iz raznih razloga, ometajući sustave ranog odgovora memorije korisničkog prostora kao što je oomd (omogućuje systemd). Pozivanjem process_mrelease takvi sustavi mogu predvidljivije pokrenuti vraćanje memorije iz prisilnih procesa.
  • Podrška za opciju "no-aaaa" dodana je ugrađenoj implementaciji DNS razlučivača, što vam omogućuje da onemogućite slanje DNS zahtjeva za AAAA zapise (određivanje IPv6 adrese prema imenu glavnog računala), uključujući i prilikom izvršavanja NSS-a funkcije poput getaddrinfo(), za pojednostavljenje dijagnoze problema. Ova opcija ne utječe na obradu povezivanja IPv6 adresa definiranih u /etc/hosts i poziva getaddrinfo() s oznakom AI_PASSIVE.
  • Za Linux platformu dodane su funkcije fsopen, fsmount, move_mount, fsconfig, fspick, open_tree i mount_setattr, koje omogućuju pristup novom API-ju kernela za upravljanje montiranjem datotečnog sustava na temelju prostora imena montiranja. Predložene funkcije omogućuju vam da zasebno obradite različite faze montiranja (obrada superbloka, dobivanje informacija o datotečnom sustavu, montiranje, pripajanje na točku montiranja), koje su prethodno izvedene pomoću zajedničke funkcije mount(). Zasebne funkcije pružaju mogućnost izvođenja složenijih scenarija montiranja i zasebnog izvođenja operacija kao što je rekonfiguracija superbloka, omogućavanje opcija, promjena točke montiranja i premještanje u drugi prostor imena. Osim toga, odvojena obrada vam omogućuje da točno odredite razloge za izlaz kodova grešaka i postavite više izvora za višeslojne datotečne sustave, kao što su slojevi.
  • localedef pruža podršku za obradu datoteka definicije lokalizacije isporučenih u UTF-8 kodiranju umjesto ASCII.
  • Dodane su funkcije za pretvaranje višebajtnih mbrtoc8 i c8rtomb kodiranja u specifikacije ISO C2X N2653 i C++20 P0482R6.
  • Dodana podrška za tip char8_t definiran u nacrtu standarda ISO C2X N2653.
  • Dodane funkcije arc4random, arc4random_buf i arc4random_uniform, koje pružaju omote preko getrandom sistemskog poziva i /dev/urandom sučelja koje vraća pseudoslučajne brojeve visoke kvalitete.
  • Kada radi na Linux platformi, podržava arhitekturu skupa instrukcija LoongArch koja se koristi u procesorima Loongson 3 5000 i implementira novi RISC ISA, sličan MIPS-u i RISC-V. U trenutnom obliku dostupna je samo podrška za 64-bitnu verziju LoongArcha (LA64). Za rad su vam potrebne najmanje verzije binutils 2.38, GCC 12 i Linux kernel 5.19.
  • Mehanizam predveze, kao i njegove povezane varijable okoline LD_TRACE_PRELINKING i LD_USE_LOAD_BIAS i mogućnosti povezivača, zastarjeli su i bit će uklonjeni u budućem izdanju.
  • Uklonjen kod za provjeru verzije Linux kernela i rukovanje varijablom okoline LD_ASSUME_KERNEL. Minimalna verzija kernela podržana prilikom izgradnje Glibc-a određena je kroz ELF polje NT_GNU_ABI_TAG.
  • Varijabla okoline LD_LIBRARY_VERSION više nije dostupna na Linux platformi.

Izvor: opennet.ru

Dodajte komentar