Pas pas gjashtë muajsh zhvillim, është lëshuar versioni i librit sistemik GNU C Library (glibc) 2.36, e cila plotëson kërkesat e standardeve ISO C11 dhe POSIX.1-2017. Në këtë lëshim të ri janë përfshirë rregullime nga 59 zhvillues.
Nga përmirësimet e realizuara në Glibc 2.36, mund të veçojmë:
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r formatin e ri tĂ« zhvendosjeve relative DT_RELR (zhvendosje relative), i cili lejon tĂ« reduktohet madhĂ«sia e zhvendosjeve relative nĂ« objekte tĂ« ndara dhe skedarĂ« ekzekutivĂ«, tĂ« kompozuar nĂ« modalitetin PIE (skedarĂ« ekzekutivĂ« tĂ« pavarur nga pozita). PĂ«r tĂ« pĂ«rdorur fushĂ«n DT_RELR nĂ« skedarĂ«t ELF, nevojitet mbĂ«shtetje pĂ«r opsionin "-z pack-relative-relocs" nĂ« kompozitor, i cili Ă«shtĂ« shfaqur nĂ« publikimin e pakos binutils 2.38.
- Për platformën Linux janë realizuar funksionet pidfd_open, pidfd_getfd dhe pidfd_send_signal, të cilat ofrojnë akses në funksionalitetin pidfd, duke ndihmuar në përpunimin e situatave me ri-përdorimin e PID për identifikimin më të saktë të proceseve që i qasen skedarëve të ndjekur (pidfd është i lidhur me një proces të caktuar dhe nuk ndryshon, ndërsa PID mund të lidhet me një proces tjetër pas përfundimit të procesit aktual që është i lidhur me këtë PID).
- Për platformën Linux, është shtuar funksioni process_madvise(), i cili lejon një proces të kryejë thirrjen sistemike madvise() në emër të një procesi tjetër, duke identifikuar procesin e synuar përmes pidfd. Përmes madvise(), mund t'i informoni bërthamës për karakteristikat e punës me memorien për të optimizuar menaxhimin e memories së procesit; për shembull, bazuar në informacionin e dërguar, bërthama mund të inicijojë lëshimin e memories së lirë shtesë. Thirrja madvise() nga një proces tjetër mund të nevojitet në situatat kur informacioni i nevojshëm për optimizimin nuk njihet nga procesi aktual, dhe do të koordinohej nga një proces menaxhues në background, i cili mund të inicirojë vetë tërheqjen e memories së pakonsumuara nga proceset.
- Për platformën Linux është shtuar funksioni process_mrelease(), i cili lejon të përshpejtojë lirimin e memories nga procesi që përfundon. Në kushte normale, lirimi i burimeve dhe përfundimi i procesit nuk përfundon menjëherë dhe për shkak të arsyeve të ndryshme mund të vonohet, gjë që pengon funksionimin e sistemeve të reagimit të hershëm për mungesën e memories në hapësirën e përdoruesit, si oomd (i ofruar në systemd). Me thirrjen e process_mrelease, këto sisteme mund të nisin kthimin e memories nga proceset e detyruara të përfundimit më parashikueshëm.
- Në implementimin e integruar të DNS-resolver, është shtuar mbështetje për opsionin "no-aaaa", i cili lejon që për thjeshtimin e diagnostikimit të problemeve të çaktivizohet dërgimi i kërkesave DNS për regjistrat AAAA (përcaktimi i adresës IPv6 me emër hosti), përfshirë gjatë ekzekutimit të funksioneve NSS, të ngjashme me getaddrinfo(). Ky opsion nuk ndikon në përpunimin e lidhjeve të adresave IPv6, të përcaktuara në /etc/hosts dhe thirrjet getaddrinfo() me flamurin AI_PASSIVE.
- Për platformën Linux janë shtuar funksionet fsopen, fsmount, move_mount, fsconfig, fspick, open_tree dhe mount_setattr, të cilat ofrojnë akses në një API të ri të kernelit për menaxhimin e montimeve të sistemeve të files me konsideratë për hapësirat e emrave të pikave të montimit (mount namespaces). Funksionet e propozuara lejojnë trajtimin e veçantë të fazave të ndryshme të montimit (trajtime e superblock-ut, marrja e informacionit rreth FS-së, montimi, lidhja me pikën e montimit), të cilat më parë kryheshin përmes një funksioni të përbashkët mount(). Funksionet e veçanta ofrojnë mundësinë për të realizuar skenarë më të komplikuar të montimit dhe për të kryer veprime të tilla si ristrukturimi i superblock-ut, aktivizimi i opsioneve, ndërrimi i pikës së montimit dhe transferimi në një hapësirë tjetër emri. Për më tepër, trajtimi i veçantë lejon përcaktimin e saktë të arsyeve të dhënies së kodove gabimi dhe caktimin e burimeve të shumta për FS të shumëfishta, si overlayfs.
- Në localedef është implementuar mbështetje për përpunimin e skedarëve me përkufizime lokalësh, të dërguara në kodimin UTF-8 në vend të ASCII.
- Funksionet për konvertimin e kodifikimeve me shumë bajta mbrtoc8 dhe c8rtomb, përkatëse me specifikimet ISO C2X N2653 dhe C++20 P0482R6, janë shtuar.
- Jehohet mbështetje për llojin char8_t, i përcaktuar në skicën e standardit ISO C2X N2653.
- Funksionet arc4random, arc4random_buf dhe arc4random_uniform, që ofrojnë lidhje mbi thirrjen sistemike getrandom dhe ndërfaqen /dev/urandom, që kthejnë numra pseudarrandom me cilësi të lartë, janë shtuar.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r arkitekturĂ«n e grupit tĂ« komandave LoongArch nĂ« platformĂ«n Linux, e pĂ«rdorur nĂ« procesorĂ«t Loongson 3 5000, qĂ« implementojnĂ« njĂ« ISA tĂ« ri RISC, tĂ« ngjashĂ«m me MIPS dhe RISC-V. NĂ« formĂ«n aktuale, mbĂ«shtetet vetĂ«m varianti 64-bit i LoongArch (LA64). KĂ«rkohet tĂ« paktĂ«n versioni 2.38 i binutils, GCC 12 dhe bĂ«rthama Linux 5.19.
- Mekanizmi prelink është shpallur i vjetruar dhe do të hiqet në versionin e ardhshëm, si dhe variablat e lidhur të mjedisit LD_TRACE_PRELINKING dhe LD_USE_LOAD_BIAS dhe funksionalitetet e lidhjes.
- Kodet për verifikimin e versionit të bërthamës Linux dhe trajtimin e variablit të mjedisit LD_ASSUME_KERNEL janë hequr. Versioni minimal i mbështetur për ndërtimin e Glibc përcaktohet përmes fushës ELF NT_GNU_ABI_TAG.
- Në platformën Linux është ndalur mbështetja për variablin e ambientit LD_LIBRARY_VERSION.
Burimi: opennet.ru
