UtgÄvan av systembiblioteket Glibc 2.36.

Efter sex mÄnaders utveckling har version 2.36 av det systembibliotek som ingÄr i GNU C Library (glibc) nu publicerats. Den följer fullt ut kraven i standarderna ISO C11 och POSIX.1-2017. Den nya versionen innehÄller rÀttelser frÄn 59 utvecklare.

Bland förbÀttringarna i Glibc 2.36 kan följande nÀmnas:

  • Stöd för det nya formatet för relativa adresser DT_RELR (relativ omplacering) har lagts till, vilket gör det möjligt att minska storleken pĂ„ relativa omplaceringar i delade objekt och körbara filer som har lĂ€nkats i lĂ€ge med PIE (positionsoberoende körbara filer). För att anvĂ€nda fĂ€ltet DT_RELR i ELF-filer behövs stöd för alternativet "-z pack-relative-relocs" i lĂ€nkaren, som introducerades i versionen binutils 2.38.
  • För Linux-plattformen har funktionerna pidfd_open, pidfd_getfd och pidfd_send_signal implementerats, vilket ger Ă„tkomst till pidfd-funktionalitet som hjĂ€lper till att hantera situationer med Ă„teranvĂ€ndning av PID för mer exakt identifiering av processer som Ă„tkommer spĂ„rade filer (pidfd Ă€r kopplat till en specifik process och Ă€ndras inte, medan PID kan knytas till en annan process efter att den aktuella processen har avslutats, vilket Ă€r kopplad till denna PID).
  • För Linux-plattformen har funktionen process_madvise() lagts till, vilket möjliggör att en process kan utföra systemanropet madvise() Ă„ en annan process vĂ€gnar, genom att identifiera den mĂ„linriktade processen med hjĂ€lp av pidfd. Genom madvise() kan kĂ€rnan informeras om minneshanteringen för att optimera hanteringen av processens minne; till exempel, baserat pĂ„ den information som skickas kan kĂ€rnan initiera frigöring av ytterligare ledigt minne. Anropet madvise() frĂ„n en annan process kan behövas i situationer dĂ€r informationen som krĂ€vs för optimering Ă€r okĂ€nd för den aktuella processen och koordineras av en separat bakgrundshanteringsprocess, som sjĂ€lv kan initiera borttagningen av oanvĂ€nt minne frĂ„n processerna.
  • För Linux-plattformen har funktionen process_mrelease() lagts till, vilket möjliggör snabbare frigöring av minnet för processer som avslutar sin körning. Under normala omstĂ€ndigheter frigörs resurser och processer avslutas inte omedelbart och kan av olika anledningar dröja, vilket hindrar funktionerna hos anvĂ€ndarutrymmet för tidig respons pĂ„ minnesbrist, sĂ„som oomd (tillhandahĂ„lls av systemd). Genom att anvĂ€nda anropet process_mrelease kan sĂ„dana system mer förutsĂ€gbart initiera minnesĂ„terlĂ€mning frĂ„n tvĂ„ngsavslutade processer.
  • Den inbyggda implementeringen av DNS-resolvatorn har fĂ„tt stöd för alternativet "no-aaaa", vilket gör det möjligt att för att förenkla felsökningen av problem inaktivera avsĂ€ndning av DNS-förfrĂ„gningar för AAAA-poster (bestĂ€mning av IPv6-adress frĂ„n vĂ€rdnamn), inklusive nĂ€r NSS-funktioner som getaddrinfo() anvĂ€nds. Alternativet pĂ„verkar inte behandlingen av IPv6-adresser som definieras i /etc/hosts och anrop av getaddrinfo() med flaggan AI_PASSIVE.
  • För Linux-plattformen har funktioner som fsopen, fsmount, move_mount, fsconfig, fspick, open_tree och mount_setattr lagts till, vilket ger Ă„tkomst till ett nytt kĂ€rn-API för hantering av montering av filsystem med hĂ€nsyn till utrymmen för monteringsnamn (mount namespaces). De föreslagna funktionerna möjliggör separat hantering av olika monteringsfaser (bearbeta superblock, hĂ€mta information om FS, montera, koppla till monteringspunkt), som tidigare utfördes med hjĂ€lp av den gemensamma funktionen mount(). Separata funktioner ger möjlighet att utföra mer komplexa monteringsscenarier och utföra operationer som omkonfigurering av superblock, aktivera alternativ, Ă€ndra monteringspunkt och flytta till ett annat namnrum. Dessutom möjliggör separat hantering att exakt ange orsaken till felkoder och stĂ€lla in flera kĂ€llor för flerlagrade FS, som overlayfs.
  • I localedef har stöd för hantering av filer med lokaliseringsdefinitioner som levereras i UTF-8-kodning istĂ€llet för ASCII implementerats.
  • Funktioner för omvandling av flerbytekodningar mbrtoc8 och c8rtomb, som motsvarar specifikationerna ISO C2X N2653 och C++20 P0482R6, har lagts till.
  • Stöd för datatypen char8_t, som definieras i utkastet till standarden ISO C2X N2653, har lagts till.
  • Funktioner som arc4random, arc4random_buf och arc4random_uniform har lagts till, vilket ger kapslingar över systemanropet getrandom och grĂ€nssnittet /dev/urandom, som returnerar högkvalitativa pseudorandomnummer.
  • Stödet för kommandosetsarkitekturen LoongArch, som anvĂ€nds i Loongson 3 5000-processorerna och implementerar en ny RISC ISA som liknar MIPS och RISC-V, har implementerats för Linux-plattformen. För nĂ€rvarande finns endast stöd för 64-bitars versionen av LoongArch (LA64). Minimikraven Ă€r versioner av binutils 2.38, GCC 12 och Linux-kĂ€rnan 5.19.
  • Prelink-mekanismen har förklarats som förĂ„ldrad och kommer att tas bort i nĂ€sta version, liksom de relaterade miljövariablerna LD_TRACE_PRELINKING och LD_USE_LOAD_BIAS samt lĂ€nkaren.
  • Koden för att kontrollera versionen av Linux-kĂ€rnan och bearbeta miljövariabeln LD_ASSUME_KERNEL har tagits bort. Den minimi stödda kĂ€rnversionen vid sammansĂ€ttning av Glibc bestĂ€ms via ELF-fĂ€ltet NT_GNU_ABI_TAG.
  • Stödet för miljövariabeln LD_LIBRARY_VERSION har upphört pĂ„ Linux-plattformen.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster