Glibc 2.36 Systembibliothéik Verëffentlechung

No sechs Méint Entwécklung ass d'GNU C Library (glibc) 2.36 Systembibliothéik verëffentlecht ginn, déi voll mat den Ufuerderunge vun den ISO C11 a POSIX.1-2017 Standards entsprécht. Déi nei Verëffentlechung enthält Fixe vu 59 Entwéckler.

E puer vun de Verbesserungen, déi am Glibc 2.36 implementéiert sinn, enthalen:

  • Zousätzlech Ënnerstëtzung fir den neien DT_RELR (relative Relocation) Adress Relocation Format, wat Iech erlaabt d'Gréisst vun de relativen Relocations a gemeinsamen Objeten an ausführbaren Dateien ze reduzéieren, déi am PIE (Positiounsonofhängeg Ausféierbar) Modus verbonne sinn. D'Benotzung vum DT_RELR Feld an ELF Dateien erfuerdert Ënnerstëtzung fir d'Optioun "-z pack-relative-relocs" am Linker, agefouert an der Verëffentlechung vu binutils 2.38.
  • Fir d'Linux Plattform sinn d'Funktiounen pidfd_open, pidfd_getfd an pidfd_send_signal implementéiert, déi Zougang zu Pidfd Funktionalitéit ubidden, déi hëlleft PID Wiederverbrauchssituatiounen ze handhaben fir méi präzis Prozesser z'identifizéieren déi iwwerwaacht Dateien zougräifen (pidfd ass mat engem spezifesche Prozess assoziéiert an ännert sech net, während PID kann un engem anere Prozess befestegt ginn nodeems den aktuelle Prozess verbonne mat deem PID ofgeschloss ass).
  • Fir d'Linux Plattform ass d'Funktioun process_madvise () bäigefüügt fir datt ee Prozess de Madvise () System Uruff am Numm vun engem anere Prozess erausginn, den Zilprozess mat pidfd z'identifizéieren. Duerch madvise (), kënnt Dir de Kernel informéieren iwwer d'Features fir mat Erënnerung ze schaffen fir d'Prozess Memory Management ze optimiséieren; zum Beispill, baséiert op der iwwerdroener Informatioun, kann de Kernel d'Verëffentlechung vun zousätzlech fräi Erënnerung initiéieren. En Opruff ze madvise () vun engem anere Prozess kann an enger Situatioun néideg ginn, wou d'Informatioun néideg fir Optimisatioun un den aktuellen Prozess onbekannt ass, mä ass duerch eng separat Hannergrond Kontroll Prozess koordinéiert, déi onofhängeg d'Ewechhuele vun onbenotzt Erënnerung aus Prozesser initiéieren kann.
  • Fir d'Linux Plattform, der Funktioun process_mrelease () bäigefüügt, déi erlaabt Iech d'Verëffentlechung vun Erënnerung fir e Prozess ofgeschloss seng Ausféierung Vitesse. Ënner normalen Ëmstänn sinn d'Ressource Verëffentlechung a Prozesskündung net direkt a kënnen aus verschiddene Grënn verspéit ginn, a stéiert d'Benotzerraum Erënnerung fréi Äntwert Systemer wéi oomd (vum systemd geliwwert). Andeems Dir process_mrelease nennt, kënnen esou Systemer méi prévisibel d'Erhuelung vun Erënnerung aus forcéierte Prozesser ausléisen.
  • Ënnerstëtzung fir d'Optioun "no-aaaa" gouf zu der agebauter Implementatioun vum DNS-Resolver bäigefüügt, wat Iech erlaabt d'Sendung vun DNS-Ufroe fir AAAA-Records auszeschalten (Bestëmmung vun enger IPv6 Adress mam Hostnumm), och wann Dir NSS ausféiert. Funktiounen wéi getaddriinfo (), fir Problemdiagnos ze vereinfachen. Dës Optioun beaflosst net d'Veraarbechtung vun IPv6 Adressbindungen, déi an /etc/hosts definéiert sinn an rifft getaddriinfo () mam AI_PASSIVE Fändel.
  • Fir d'Linux Plattform sinn d'Funktiounen fsopen, fsmount, move_mount, fsconfig, fspick, open_tree an mount_setattr bäigefüügt ginn, déi Zougang zu enger neier Kernel API fir d'Gestioun vum Dateisystemmontage baséiert op Mount Nummraim. Déi proposéiert Funktiounen erlaben Iech verschidden Etappe vun Opriichte getrennt ze Prozess (Veraarbechtung der superblock, kréien Informatiounen iwwert de Fichier System, Montéierung, befestegt un de Montéierung Punkt), déi virdrun mat der gemeinsamer Montéierung duerchgefouert () Funktioun. Separat Funktiounen bidden d'Fäegkeet méi komplex Montéierungsszenarien auszeféieren an separat Operatiounen auszeféieren wéi d'Rekonfiguratioun vum Superblock, d'Optiounen z'erméiglechen, de Montéierungspunkt z'änneren an an en anert Nummraum ze plënneren. Zousätzlech, getrennt Veraarbechtung erlaabt Iech genee d'Grënn fir d'Output vun Feeler Coden ze bestëmmen a verschidde Quelle fir Multi-Layer Dateisysteme setzen, wéi Iwwerlagerungen.
  • localedef bitt Ënnerstëtzung fir d'Veraarbechtung vu Locale Definitiounsdateien, déi an der UTF-8 Kodéierung geliwwert ginn anstatt ASCII.
  • Zousätzlech Funktiounen fir Multi-Byte mbrtoc8 an c8rtomb Kodéierungen op ISO C2X N2653 an C++20 P0482R6 Spezifikatioune ze konvertéieren.
  • Zousätzlech Ënnerstëtzung fir den char8_t Typ definéiert am Entworf ISO C2X N2653 Standard.
  • Dobäi arc4random, arc4random_buf, an arc4random_uniform Funktiounen déi wrappers iwwer de getrandom System Uruff an d'/dev/urandom Interface ubidden, déi qualitativ héichwäerteg pseudorandom Zuelen zréckginn.
  • Wann Dir op der Linux Plattform leeft, ënnerstëtzt se d'LoongArch Instruktiounsset Architektur déi an de Loongson 3 5000 Prozessoren benotzt gëtt an implementéiert déi nei RISC ISA, ähnlech wéi MIPS a RISC-V. A senger aktueller Form ass nëmmen Ënnerstëtzung fir d'64-Bit Versioun vu LoongArch (LA64) verfügbar. Fir ze schaffen, braucht Dir op d'mannst Versioune vu Binutils 2.38, GCC 12 a Linux Kernel 5.19.
  • De Prelink Mechanismus, souwéi seng assoziéiert LD_TRACE_PRELINKING an LD_USE_LOAD_BIAS Ëmfeldvariablen a Linkerfäegkeeten, goufen ofgeschaaft a ginn an enger zukünfteg Verëffentlechung geläscht.
  • Geläscht Code fir d'Linux Kernel Versioun ze kontrolléieren an d'LD_ASSUME_KERNEL Ëmfeld Variabel ze behandelen. Déi Mindestversioun vum Kernel, deen ënnerstëtzt gëtt beim Bauen vun Glibc, gëtt duerch den ELF-Feld NT_GNU_ABI_TAG bestëmmt.
  • D'LD_LIBRARY_VERSION Ëmfeld Variabel gouf op der Linux Plattform gestoppt.

Source: opennet.ru

Setzt e Commentaire