Glibc 2.36 System Library Release

Eftir sex mánaða þróun hefur GNU C Library (glibc) 2.36 kerfissafnið verið gefið út, sem uppfyllir að fullu kröfur ISO C11 og POSIX.1-2017 staðlanna. Nýja útgáfan inniheldur lagfæringar frá 59 forriturum.

Sumar af endurbótunum sem innleiddar eru í Glibc 2.36 eru:

  • Bætti við stuðningi við nýja DT_RELR (relative relocation) heimilisfang flutningssniðið, sem gerir þér kleift að minnka stærð hlutfallslegra flutninga í samnýttum hlutum og keyranlegum skrám sem tengdar eru í PIE (Stöðuóháðar executables) ham. Notkun DT_RELR reitsins í ELF skrám krefst stuðnings fyrir "-z pack-relative-relocs" valkostinn í tengilinn, kynntur í útgáfu binutils 2.38.
  • Fyrir Linux pallinn eru aðgerðirnar pidfd_open, pidfd_getfd og pidfd_send_signal útfærðar, sem veita aðgang að pidfd virkni sem hjálpar til við að meðhöndla PID endurnýtingar aðstæður til að bera kennsl á ferla sem fá aðgang að vöktuðum skrám með nákvæmari hætti (pidfd er tengt tilteknu ferli og breytist ekki, á meðan PID getur vera tengdur við annað ferli eftir að núverandi ferli sem tengist því PID lýkur).
  • Fyrir Linux pallinn hefur process_madvise() aðgerðinni verið bætt við til að leyfa einu ferli að gefa út madvise() kerfiskallið fyrir hönd annars ferlis og auðkenna markferlið með því að nota pidfd. Í gegnum madvise() geturðu upplýst kjarnann um eiginleika þess að vinna með minni til að hámarka stjórnun vinnsluminni; til dæmis, byggt á sendum upplýsingum, getur kjarninn hafið losun á viðbótar lausu minni. Símtal til madvise() af öðru ferli gæti verið krafist í aðstæðum þar sem upplýsingarnar sem þarf til hagræðingar eru óþekktar fyrir núverandi ferli, en eru samræmdar af sérstöku bakgrunnsstýringarferli, sem getur sjálfstætt hafið fjarlægingu á ónotuðu minni úr ferlum.
  • Fyrir Linux pallinn hefur process_mrelease() fallinu verið bætt við, sem gerir þér kleift að flýta fyrir losun minnis fyrir ferli sem klárar framkvæmd þess. Undir venjulegum kringumstæðum er losun auðlinda og lokun ferlis ekki tafarlaus og getur tafist af ýmsum ástæðum, sem truflar snemmbúnar svörunarkerfi notendarýmis eins og oomd (útvegað af systemd). Með því að kalla process_mrelease, geta slík kerfi fyrirsjáanlega hrundið af stað endurheimt minni frá þvinguðum ferlum.
  • Stuðningur fyrir „no-aaaa“ valmöguleikann hefur verið bætt við innbyggða útfærslu DNS lausnarans, sem gerir þér kleift að slökkva á sendingu DNS beiðna fyrir AAAA færslur (ákvarða IPv6 vistfang með hýsilheiti), þar á meðal þegar þú keyrir NSS virka eins og getaddriinfo(), til að einfalda greiningu vandamála. Þessi valkostur hefur ekki áhrif á vinnslu á IPv6 vistfangabindingum sem skilgreindar eru í /etc/hosts og símtölum í getaddriinfo() með AI_PASSIVE fánanum.
  • Fyrir Linux pallinn hefur aðgerðunum fsopen, fsmount, move_mount, fsconfig, fspick, open_tree og mount_setattr verið bætt við, sem veita aðgang að nýju kjarna API til að stjórna skráarkerfisfestingu byggt á mount namespaces. Fyrirhugaðar aðgerðir gera þér kleift að vinna sérstaklega úr mismunandi stigum uppsetningar (vinnsla ofurblokkinn, fá upplýsingar um skráarkerfið, festa, festa við festingarpunktinn), sem áður voru framkvæmd með því að nota sameiginlega mount() aðgerðina. Aðskildar aðgerðir veita möguleika á að framkvæma flóknari uppsetningaratburðarás og framkvæma sérstaklega aðgerðir eins og að endurstilla ofurblokkina, virkja valkosti, breyta tengipunkti og flytja í annað nafnrými. Að auki gerir aðskilin vinnsla þér kleift að ákvarða nákvæmlega ástæður fyrir framleiðslu villukóða og stilla margar heimildir fyrir fjöllaga skráarkerfi, svo sem yfirlög.
  • localedef veitir stuðning við vinnslu svæðisskilgreiningarskráa sem fylgja með UTF-8 kóðun í stað ASCII.
  • Bætt við aðgerðum til að umbreyta multi-bæta mbrtoc8 og c8rtomb kóðun í ISO C2X N2653 og C++20 P0482R6 forskriftir.
  • Bætti við stuðningi við gerð char8_t sem skilgreind er í drögum að ISO C2X N2653 staðli.
  • Bætti við arc4random, arc4random_buf og arc4random_uniform aðgerðum sem veita umbúðir yfir getrandom kerfiskallið og /dev/urandom viðmótið sem skila hágæða gervihandahófsnúmerum.
  • Þegar keyrt er á Linux pallinum styður það LoongArch leiðbeiningasett arkitektúr sem notaður er í Loongson 3 5000 örgjörvunum og útfærir nýja RISC ISA, svipað og MIPS og RISC-V. Í núverandi mynd er aðeins stuðningur fyrir 64-bita útgáfu af LoongArch (LA64) í boði. Til að virka þarftu að minnsta kosti útgáfur af binutils 2.38, GCC 12 og Linux kjarna 5.19.
  • Fortengingarbúnaðurinn, sem og tengdar LD_TRACE_PRELINKING og LD_USE_LOAD_BIAS umhverfisbreytur og tengimöguleiki, hafa verið úreltar og verða fjarlægðar í framtíðarútgáfu.
  • Fjarlægði kóða til að athuga Linux kjarnaútgáfuna og meðhöndla LD_ASSUME_KERNEL umhverfisbreytuna. Lágmarksútgáfan af kjarnanum sem studd er þegar Glibc er byggð er ákvörðuð í gegnum ELF reitinn NT_GNU_ABI_TAG.
  • LD_LIBRARY_VERSION umhverfisbreytan hefur verið hætt á Linux pallinum.

Heimild: opennet.ru

Bæta við athugasemd