Väljund süsteemi teegist Glibc 2.36

Pärast kuut kuud arendust on välja antud GNU C Library (glibc) 2.36 süsteemiteegi väljaanne, mis täidab ISO C11 ja POSIX.1-2017 standardite nõudeid. Uues väljaandes on parandused 59 arendajalt.

Glibc 2.36 rakendatud täiustustest võib välja tuua:

  • Lisatud on toetus uuele relatatiivsete aadresside DT_RELR (relatiivne üleviimine) formaadile, mis võimaldab vähendada relativistlike üleviimiste suurust jagatud objektides ja täidetavates failides, mis on komponeeritud PIE (positsioonist sõltumatud täidetavad failid) režiimis. DT_RELR välja kasutamiseks ELF-failides on vajalik toetada valikut "-z pack-relative-relocs" linkijate paketis binutils 2.38.
  • Linuxi platvormile on rakendatud funktsioonid pidfd_open, pidfd_getfd ja pidfd_send_signal, mis pakuvad joonist pidfd funktsionaalsusele, mis aitab lugeda olukordi PID korduvkasutamiseks, et täpselt tuvastada protsesse, mis suhtlevad jälgitavate failidega (pidfd seondub konkreetse protsessiga ja ei muutu, samas kui PID võib pärast praeguse protsessi lõpetamist olla seotud teise protsessiga, mis on seotud selle PID-ga).
  • Linuxi platvormile on lisatud funktsioon process_madvise(), mis võimaldab ühel protsessil teostada madvise() süsteemi kutset teise protsessi nimel, tuvastades sihtprotsessi pidfd abil. madvise() kaudu saab teavitada tuuma mälu töötamise omadustest, et optimeerida mälu haldamist protsessis, näiteks selle põhjal võib tuum algatada täiendavate vabade mälude vabastamise. Madvise() kutse teise protsessi poolt võib olla vajalik juhul, kui praegusele protsessile vajalikud optimeerimisandmed pole teada, ent neid koordineerib eraldi taustajuhteprotsess, mis võib iseseisvalt algatada protsessidest kasutamata mälu eemaldamise.
  • Linux'i platvormile on lisatud funktsioon process_mrelease(), mis kiirendab protsessi lõpetamise ajal mälu vabastamist. Tavalistes tingimustes toimub ressursside vabastamine ja protsessi lõpetamine mitte hetkega ning erinevatel põhjustel võib see viibida, mis takistab kasutajaruumi varajase reageerimise süsteemide, nagu oomd (mis on saadaval systemd), tööd. Funktsiooni process_mrelease abil saavad sellised süsteemid prognoositavamalt algatada mälu tagastamist sunniviisiliselt lõpetatud protsessidelt.
  • Sisseehitatud DNS-resolveri teostusse on lisatud tugi valikule "no-aaaa", mis võimaldab lihtsustada probleemide diagnoosimist, keelates DNS-päringute saatmise AAAA-recordide (IPv6 aadressi määramine hostinime kaudu) puhul, sealhulgas NSS-funktsioonide, nagu getaddrinfo(), täitmisel. Valik ei mõjuta IPv6-aadresside sidumiste töötlemist, mis on määratletud /etc/hosts failis ega getaddrinfo() väljakutseid, kus on kasutatud lippu AI_PASSIVE.
  • Linux'i platvormile on lisatud funktsioonid fsopen, fsmount, move_mount, fsconfig, fspick, open_tree ja mount_setattr, mis pakuvad juurdepääsu uuele süsteemi API-le failisüsteemide mountimise haldamiseks mäetpunktide (mount namespaces) arvestamisel. Esitatud funktsioonid võimaldavad eraldi töödelda erinevaid mountimise etappe (superploki töötlemine, failisüsteemi teabe saamine, mountimine, mountimispunktiga seondumine), mis varem toimusid üldise funktsiooni mount() abil. Eraldi funktsioonid võimaldavad teostada keerukamaid mountimisskeeme ja eraldi teostada selliseid toiminguid nagu superploki ümberkonfigureerimine, valikute aktiveerimine, mountimispunkti muutmine ja teise nimiruumi üleviimine. Lisaks võimaldab eraldi töötlemine täpselt määratleda veakoodide väljundi põhjuseid ja määrata mitmeid allikaid kihilistele failisüsteemidele nagu overlayfs.
  • Localedef'i teostusse on lisatud tugi locale-definitsioonide failide töötlemiseks, mis on tarnitud UTF-8 kodeeringus, mitte ASCII-s.
  • Lisatud funktsioonid mitme baiti kodeeringute mbrtoc8 ja c8rtomb, mis vastavad ISO C2X N2653 ja C++20 P0482R6 spetsifikatsioonidele.
  • Lisatud tugi char8_t tüübi jaoks, mis on määratletud ISO C2X N2653 standardi mustandites.
  • Lisatud on funktsioonid arc4random, arc4random_buf ja arc4random_uniform, mis pakuvad liideseid süsteemi kõnele getrandom ja liidesele /dev/urandom, tagastades kõrge kvaliteediga pseudojuhuslikke numbreid.
  • Linuxi platvormil on rakendatud LoongArch käskluskomplekti arhitektuuri toete, mida kasutatakse Loongson 3 5000 protsessorites ja mis rakendab uut RISC ISA, mis sarnaneb MIPS ja RISC-V-ga. Hetkel on saadaval ainult 64-bitine variant LoongArch (LA64). Nõutud on minimaalne versioonide binutils 2.38, GCC 12 ja Linuxi tuum 5.19.
  • Eemaldatakse prelink mehhanism, samuti sellega seotud keskkonnamuutujad LD_TRACE_PRELINKING ja LD_USE_LOAD_BIAS ning linkimisfunktsioonid, mis on kuulutatud aegunud.
  • Eemaldatud on kood Linuxi tuuma versiooni kontrollimiseks ja keskkonnamuutuja LD_ASSUME_KERNEL töötlemiseks. Glibci ehitamise minimaalne toetatud tuuma versioon määratakse ELF-välja NT_GNU_ABI_TAG kaudu.
  • Linuxi platvormil lõpetatakse keskkonnamuutuja LD_LIBRARY_VERSION tugi.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster