Glibc 2.36 komt met nieuwe functies voor Linux, verbeteringen en meer

Na zes maanden ontwikkeling werd de release aangekondigd van de nieuwe versie van glibc 2.36, die volledig voldoet aan de eisen van de ISO C11- en POSIX.1-2017-normen en waarin de nieuwe versie correcties van 59 ontwikkelaars bevat. .

Voor degenen die niet bekend zijn met Glibc, ze moeten weten wat het is een GNU C-bibliotheek, algemeen bekend als glibc is de standaard GNU C runtime-bibliotheek. Op systemen waar het wordt gebruikt, is deze C-bibliotheek die: systeemaanroepen en andere basisfuncties biedt en definieert, wordt het door bijna alle programma's gebruikt. 

Belangrijkste nieuwe functies van Glibc 2.36

In deze nieuwe versie die wordt gepresenteerd, wordt benadrukt dat: ondersteuning toegevoegd voor een nieuw relatief formaat voor verhuisadressen DT_RELR, waarmee u de grootte van relatieve verplaatsingen in gedeelde objecten en gekoppelde uitvoerbare bestanden in PIE-modus (Position Independent Executables) kunt verkleinen. Gebruik van het veld DT_RELR in ELF-bestanden vereist ondersteuning voor de optie "-z pack-relative-relocs" in de linker, geïntroduceerd in binutils 2.38.

Een andere verandering die opvalt in de nieuwe versie is dat voor Linux de functies: pidfd_open, pidfd_getfd en pidfd_send_signal zijn geïmplementeerd om toegang te bieden tot de pidfd-functionaliteit die helpt om situaties van hergebruik van PID's aan te pakken om de processen die toegang hebben tot de bewaakte bestanden nauwkeuriger te identificeren (pidfd is gekoppeld aan een specifiek proces en verandert niet, terwijl de PID aan een ander proces kan worden gekoppeld nadat het proces is beëindigd). PID).

Daarnaast, ook in Linux komt process_madvise()Dat staat een proces toe om een ​​madvis() systeemaanroep uit te voeren namens een ander proces, het identificeren van het doelproces met behulp van pidfd. Via madvis() kun je de kernel informeren over de kenmerken van het werken met geheugen om het geheugenbeheer van het proces te optimaliseren. Op basis van de doorgegeven informatie kan de kernel bijvoorbeeld extra vrij geheugen vrijgeven.

Er wordt ook opgemerkt dat de functie is toegevoegd process_mrelease(), waarmee u het vrijgeven van geheugen kunt versnellen voor een proces dat de uitvoering ervan beëindigt. Onder normale omstandigheden zijn het vrijgeven van bronnen en het beëindigen van processen niet onmiddellijk en kunnen ze om verschillende redenen worden uitgesteld, waardoor vroegtijdige waarschuwingssystemen voor gebruikersruimte zoals oomd (geleverd door systemd) worden verstoord. Door process_mrelease aan te roepen, kunnen deze systemen op een meer voorspelbare manier het ophalen van geheugen starten voor processen die met geweld zijn beëindigd.

Aan de andere kant wordt opgemerkt dat het is toegevoegd ondersteuning voor "no-aaaa" optie naar de geïntegreerde implementatie van DNS-resolutie, waarmee u het verzenden van DNS-verzoeken voor AAAA-records kunt uitschakelen (een IPv6-adres bepalen op hostnaam), zelfs bij het uitvoeren van NSS-functies zoals getaddrinfo(), om het oplossen van problemen te vereenvoudigen. Deze optie heeft geen invloed op de verwerking van IPv6-adresbindingen gedefinieerd in /etc/hosts en oproepen naar getaddrinfo() met de AI_PASSIVE-vlag.

Voor Linux, de functies toegevoegd fsopen, fsmount, move_mount, fsconfig, fspick, open_tree en mount_setattr voor toegang bieden tot een nieuwe kernel-API om te bepalen hoe bestandssystemen worden aangekoppeld gebaseerd op mount-naamruimten. De voorgestelde functies maken afzonderlijke verwerking van verschillende montagestappen mogelijk (verwerking van het superblok, verkrijgen van informatie over het bestandssysteem, aankoppelen, aankoppelen aan het aankoppelpunt), die eerder werden uitgevoerd met behulp van de algemene functie mount().

Waren toegevoegd De functies arc4random, arc4random_buf en arc4random_uniform om bindingen te geven aan de systeemaanroep willekeurig en de interface / Dev / urandom, het retourneren van pseudo-willekeurige getallen van hoge kwaliteit.

Bij het draaien op Linux wordt ondersteuning voor de architectuur geboden. uit de instructieset LoongArch gebruikt in Loongson 3 5000-processors en een nieuwe RISC ISA vergelijkbaar met MIPS en RISC-V is geïmplementeerd. In zijn huidige vorm is alleen compatibiliteit beschikbaar met 64-bits variant van LoongArch (LA64). Het vereist minimaal binutils 2.38, GCC 12 en Linux kernel 5.19 om te draaien.

Van de andere veranderingen die opvallen:

  • Het prelinking-mechanisme, evenals de bijbehorende LD_TRACE_PRELINKING en LD_USE_LOAD_BIAS omgevingsvariabelen en linkerfuncties, zijn verouderd en zullen in een toekomstige release worden verwijderd.
  • Code verwijderd om de Linux-kernelversie te controleren en de omgevingsvariabele LD_ASSUME_KERNEL af te handelen. De minimale kernelversie die wordt ondersteund bij het compileren van Glibc wordt bepaald door het ELF-veld NT_GNU_ABI_TAG.
  • De omgevingsvariabele LD_LIBRARY_VERSION is gedeprecieerd op het Linux-platform.

Ten slotte, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen In de volgende link.


Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.