PĂ€rast kuue kuu arengut on vĂ€lja antud GNU C Library (glibc) 2.36 sĂŒsteemiraamatukogu versioon, mis vastab tĂ€ielikult ISO C11 ja POSIX.1-2017 standardite nĂ”uetele. Uue vĂ€ljaande koosseisu kuuluvad parandused 59 arendajalt.
Glibc 2.36 elluviidud parendustest vÔib mÀrkida:
- Uue DT_RELR (relative relocation) aadressi suhte siirdamise formaadi tugi, mis vĂ”imaldab vĂ€hendada suhet siirdamisi jagatud objektides ja tĂ€idetavates failides, komponeerituna PIE (Position-independent executables) reĆŸiimis. DT_RELR vĂ€lja kasutamiseks ELF-failides on vajalik toetada valikut "-z pack-relative-relocs" linkers, mis ilmus binutils 2.38 toote komplekti vĂ€ljaande ajal.
- Linuxi platvormile on rakendatud funktsioonid pidfd_open, pidfd_getfd ja pidfd_send_signal, mis pakuvad juurdepÀÀsu pidfd funktsionaalsusele, aidates kÀsitleda olukordi, kus PID-i uuesti kasutamine on vajalik vÀiksema protsesside tuvastamise tÀpsuse saavutamiseks, mis pöörduvad jÀlgitavate failide poole (pidfd on seotud konkreetse protsessiga ja ei muutu, samal ajal kui PID vÔib olla seotud teise protsessiga pÀrast praeguse protsessi lÔppu, mis on seotud selle PID-ga).
- Linuxi platvormile on lisatud process_madvise() funktsioon, mis vĂ”imaldab ĂŒhel protsessil teostada sĂŒsteemi kĂ”net madvise() teise protsessi nimel, tuvastades sihtprotsessi pidfd abil. Madvise() kaudu saab teavitada tuuma mĂ€luhalduse eripĂ€ra maksimeerimiseks, nĂ€iteks vĂ”ib tuum vastavalt edastatud teabele algatada lisavaba mĂ€lu vabastamise. Teise protsessi madvise() kutsumine vĂ”ib osutuda vajalikuks olukordades, kus optimeerimiseks vajalik teave ei ole praegusele protsessile teada, kuid seda koordineerib eraldi taustal töötav haldusteenus, mis saab iseseisvalt algatada kasutamata mĂ€lu Ă€ravĂ”tmise protsessidelt.
- Linux platvormile on lisatud funktsioon process_mrelease(), mis vĂ”imaldab kiiresti vabastada protsessi mĂ€luruumi, mis lĂ”petab oma töö. Tavalistes tingimustes toimub ressursside vabastamine ja protsessi lĂ”petamine mitte kohe ning erinevatel pĂ”hjustel vĂ”ib see viibida, mis takistab kasutajaruumi sĂŒsteemide, nagu oomd (mis on saadaval systemd), tĂ”husat tegevust mĂ€lu nappuse korral. Funktsiooni process_mrelease abil saavad sellised sĂŒsteemid ennustatavamalt algatada mĂ€lu tagastamise sundlĂ”petatud protsessidelt.
- Sisseehitatud DNS-resolveri rakendusse on lisatud tugi valikule "no-aaaa", mis vÔimaldab probleemide diagnoosimise lihtsustamiseks peatada DNS-pÀringute saatmise AAAA kirjeid (IPv6 aadresside mÀÀramine hostinime kaudu), sealhulgas NSS-funktsioonide, nagu getaddrinfo(), tÀitmisel. Valik ei mÔjuta IPv6-aadresside sidumise töötlemist, mis on mÀÀratletud /etc/hosts, ega getaddrinfo() kutsumist AI_PASSIVE lipuga.
- Linuxi platvormile on lisatud funktsioonid fsopen, fsmount, move_mount, fsconfig, fspick, open_tree ja mount_setattr, mis vĂ”imaldavad juurdepÀÀsu uuele tuuma API-le failisĂŒsteemide mountimise haldamiseks mount namespacete arvesse vĂ”ttes. Need funktsioonid vĂ”imaldavad eraldi töödelda erinevaid mountimise etappe (superblocki töötlemine, failisĂŒsteemi teabe saamine, monteerimine, mountimise punkti kĂŒlge kinnitamine), mida varem tehti ĂŒldise funktsiooni mount() abil. Erilised funktsioonid pakuvad vĂ”imalust teostada keerukamaid mountimise stsenaariume ja lĂ€bi viia selliseid toiminguid nagu superblocki taaskonfigureerimine, valikute aktiveerimine, mountimise punkti muutmine ja teiste nimede ruumidesse liigutamine. Lisaks vĂ”imaldab jagatud töötlemine tĂ€pselt mÀÀrata vigade kodade vĂ€ljastamise pĂ”hjuseid ja mÀÀrata mitmeid allikaid kihilistele failisĂŒsteemidele, nagu overlayfs.
- Localedefis on rakendatud toetust UTF-8 kodeeringus kohandatud lokaliseerimisfailide töötlemiseks ASCII asemel.
- Lisatud on mitme baitide kodeeringute mbrtoc8 ja c8rtomb teisendamise funktsioonid, mis vastavad ISO C2X N2653 ja C++20 P0482R6 spetsifikatsioonidele.
- Lisatud on tugi char8_t tĂŒĂŒbi jaoks, mis on mÀÀratletud ISO C2X N2653 standardi mustandis.
- Lisatud on funktsioonid arc4random, arc4random_buf ja arc4random_uniform, mis pakuvad sidet sĂŒsteemikĂ”ne getrandom ja /dev/urandom liidesega, tagastades kĂ”rge kvaliteediga pseudojuhuslikke arve.
- Linuxi platvormil on rakendatud LoongArch kÀskude komplekti arhitektuuri tugi, mida kasutatakse Loongson 3 5000 protsessorites ning mis rakendab uut RISC ISA, mis sarnaneb MIPS ja RISC-V-ga. Praeguses vormis on saadaval ainult 64-bitine LoongArch (LA64) tugi. NÔutav on vÀhemalt versioonide binutils 2.38, GCC 12 ja Linuxi tuum 5.19 olemasolu.
- Prelink mehhanism kuulutati aegunuks ja eemaldatakse jÀrgmises vÀljaandes, samuti seotud keskkonnamuutujad LD_TRACE_PRELINKING ja LD_USE_LOAD_BIAS ning linkimise vÔimalused.
- Eemaldati kood Linuxi tuuma versiooni kontrollimiseks ja keskkonnamuutuja LD_ASSUME_KERNEL töötlemiseks. Glibc kokkupaneku minimaalne toetatud tuuma versioon mÀÀratakse ELF-ala NT_GNU_ABI_TAG kaudu.
- Linux platvormil on keskkonnamuutuja LD_LIBRARY_VERSION tugi lÔpetatud.
Allikas: opennet.ru
