Glibc 2.36 prihaja z novimi funkcijami za Linux, izboljšavami in še več

Po šestih mesecih razvoja je bil objavljen izid nove različice glibc 2.36, ki v celoti ustreza zahtevam standardov ISO C11 in POSIX.1-2017 in v kateri nova različica vključuje popravke 59 razvijalcev.

Za tiste, ki Glibca ne poznajo, bi morali vedeti, kaj je to knjižnica GNU C, splošno znana kot glibc je standardna knjižnica časa izvajanja GNU C. V sistemih, kjer se uporablja, ta knjižnica C to zagotavlja in definira sistemske klice in druge osnovne funkcije, uporabljajo ga skoraj vsi programi. 

Glavne nove funkcije Glibca 2.36

V tej novi različici, ki je predstavljena, je to poudarjeno dodana podpora za novo obliko naslova relativne premestitve DT_RELR, ki vam omogoča zmanjšanje velikosti relativnih premestitev v skupnih objektih in povezanih izvršljivih datotekah v načinu PIE (Position Independent Executables). Uporaba polja DT_RELR v datotekah ELF zahteva podporo za možnost "-z pack-relative-relocs" v povezovalniku, uvedeno v binutils 2.38.

Druga sprememba, ki izstopa v novi različici, je ta za Linux funkcije pidfd_open, pidfd_getfd in pidfd_send_signal so bili implementirani za zagotavljanje dostopa do funkcionalnosti pidfd ki pomaga pri obravnavanju situacij ponovne uporabe PID za natančnejšo identifikacijo procesov, ki dostopajo do nadzorovanih datotek (pidfd je povezan z določenim procesom in se ne spremeni, medtem ko je PID mogoče pripeti drugemu procesu po koncu procesa). trenutni proces, povezan s tem PID).

Poleg tega, tudi v Linuxu je na voljo process_madvise()To dovoljuje procesu, da izvede sistemski klic madvise() v imenu drugega procesa, ki identificira ciljni proces z uporabo pidfd. Preko madvise() lahko jedro obvestite o značilnostih dela s pomnilnikom, da optimizirate upravljanje pomnilnika procesa, na primer, na podlagi posredovanih informacij lahko jedro začne sproščati dodaten prosti pomnilnik.

Opozoriti je treba tudi, da je bila funkcija dodana process_mrelease(), ki vam omogoča, da pospešite sprostitev pomnilnika za proces, ki konča svoje izvajanje. V normalnih okoliščinah sprostitev virov in prekinitev procesa nista trenutna in sta lahko odložena zaradi različnih razlogov, kar moti sisteme zgodnjega opozarjanja uporabniškega prostora, kot je oomd (zagotavlja systemd). S klicem process_mrelease lahko ti sistemi bolj predvidljivo začnejo pridobivanje pomnilnika za procese, ki so bili prisilno prekinjeni.

Po drugi strani pa je ugotovljeno, da je bil dodan podpora za možnost "ne-aaaa". do integriranega izvajanja Rešitev DNS, ki vam omogoča onemogočanje pošiljanja zahtev DNS za zapise AAAA (določanje naslova IPv6 z imenom gostitelja), tudi pri izvajanju funkcij NSS, kot je getaddrinfo(), za poenostavitev odpravljanja težav. Ta možnost ne vpliva na ravnanje z naslovnimi vezavami IPv6, definiranimi v /etc/hosts, in na klice getaddrinfo() z zastavico AI_PASSIVE.

Za Linux dodane funkcije fsopen, fsmount, move_mount, fsconfig, fspick, open_tree in mount_setattr za omogočite dostop do novega API-ja jedra za nadzor nad priklopom datotečnih sistemov na podlagi imenskih prostorov priklopa. Predlagane funkcije omogočajo ločeno obdelavo različnih korakov priklopa (obdelava superbloka, pridobivanje informacij o datotečnem sistemu, pripenjanje, pripenjanje na točko priklopa), ki so bili prej izvedeni s skupno funkcijo mount().

So bili dodani funkcije arc4random, arc4random_buf in arc4random_uniform za zagotavljanje vezav na sistemski klic getrandom in vmesnik /dev/urrandom, ki vrača visokokakovostna psevdonaključna števila.

Pri izvajanju v sistemu Linux je zagotovljena podpora za arhitekturo. iz nabora navodil LoongArch uporablja se v procesorjih Loongson 3 5000 in implementiran je nov RISC ISA, podoben MIPS in RISC-V. V trenutni obliki je na voljo samo združljivost s 64-bitno različico od LoongArch (LA64). Za delovanje potrebuje vsaj binutils 2.38, GCC 12 in jedro Linuxa 5.19.

Od ostalih sprememb, ki izstopajo:

  • Mehanizem vnaprejšnjega povezovanja, kot tudi povezane spremenljivke okolja LD_TRACE_PRELINKING in LD_USE_LOAD_BIAS ter funkcije povezovalnika so opuščeni in bodo odstranjeni v prihodnji izdaji.
  • Odstranjena koda za preverjanje različice jedra Linuxa in obravnavanje spremenljivke okolja LD_ASSUME_KERNEL. Najmanjša različica jedra, ki je podprta pri prevajanju Glibc, je določena s poljem ELF NT_GNU_ABI_TAG.
  • Spremenljivka okolja LD_LIBRARY_VERSION je bila opuščena na platformi Linux.

Nazadnje, če vas zanima več o tem, se lahko posvetujete s podrobnostmi V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.