Glibc 2.36 kommer med nye funksjoner for Linux, forbedringer og mer

Etter seks måneders utvikling ble utgivelsen av den nye versjonen av glibc 2.36 kunngjort, som fullt ut oppfyller kravene i ISO C11 og POSIX.1-2017-standardene og der den nye versjonen inkluderer rettelser fra 59 utviklere. .

For de som ikke er kjent med Glibc, bør de vite hva det er et GNU C -bibliotek, vanligvis kjent som glibc er standard GNU C runtime -bibliotek. På systemer der det brukes, dette C -biblioteket det gir og definerer systemanrop og andre grunnleggende funksjoner, det brukes av nesten alle programmer. 

Nye hovedfunksjoner i Glibc 2.36

I denne nye versjonen som presenteres er det fremhevet at lagt til støtte for et nytt adresseformat for relativ flytting DT_RELR, som lar deg redusere størrelsen på relative flyttinger i delte objekter og koblede kjørbare filer i PIE-modus (Position Independent Executables). Bruk av DT_RELR-feltet i ELF-filer krever støtte for alternativet "-z pack-relative-relocs" i linkeren, introdusert i binutils 2.38.

En annen endring som skiller seg ut i den nye versjonen er at for Linux funksjonene pidfd_open, pidfd_getfd og pidfd_send_signal ble implementert for å gi tilgang til pidfd-funksjonaliteten som hjelper til med å håndtere PID-gjenbrukssituasjoner for mer nøyaktig å identifisere prosessene som får tilgang til de overvåkede filene (pidfd er assosiert med en spesifikk prosess og endres ikke, mens PID-en kan knyttes til en annen prosess etter at prosessen avsluttes). gjeldende prosess knyttet til dette PID).

Bortsett fra det, også i Linux kommer process_madvise()At lar en prosess utføre et madvise()-systemanrop på vegne av en annen prosess, identifisere målprosessen ved hjelp av pidfd. Gjennom madvise() kan du informere kjernen om egenskapene ved å arbeide med minne for å optimere minnehåndteringen av prosessen, for eksempel, basert på den beståtte informasjonen, kan kjernen begynne å frigjøre ekstra ledig minne.

Det bemerkes også at funksjonen ble lagt til process_mrelease(), som lar deg fremskynde utgivelsen av minne for en prosess som avslutter kjøringen. Under normale omstendigheter er ressursfrigjøring og prosessavslutning ikke øyeblikkelig og kan bli forsinket av ulike årsaker, noe som forstyrrer varslingssystemer for brukerplass som oomd (levert av systemd). Ved å kalle process_mrelease kan disse systemene mer forutsigbart starte minneinnhentinger for prosesser som ble tvangsavbrutt.

Det bemerkes derimot at det er lagt til støtte for "no-aaaa"-alternativet til integrert implementering av DNS-oppløsning, som lar deg deaktivere sending av DNS-forespørsler for AAAA-poster (bestemme en IPv6-adresse etter vertsnavn), selv når du kjører NSS-funksjoner som getaddriinfo(), for å forenkle feilsøking. Dette alternativet påvirker ikke håndteringen av IPv6-adressebindinger definert i /etc/hosts og kall til getaddriinfo() med AI_PASSIVE-flagget.

For Linux, lagt til funksjonene fsopen, fsmount, move_mount, fsconfig, fspick, open_tree og mount_setattr til gi tilgang til et nytt kjerne-API for å kontrollere hvordan filsystemer monteres basert på mount navnerom. De foreslåtte funksjonene tillater separat behandling av forskjellige monteringstrinn (behandling av superblokken, få informasjon om filsystemet, montering, feste til monteringspunktet), som tidligere ble utført ved bruk av felles mount()-funksjonen.

Ble lagt til funksjonene arc4random, arc4random_buf og arc4random_uniform å gi bindinger på systemanropet tilfeldig og grensesnittet / Dev / urandom, returnerer høykvalitets pseudo-tilfeldige tall.

Når du kjører på Linux, tilbys støtte for arkitekturen. fra instruksjonssettet LoongArch brukt i Loongson 3 5000-prosessorer og en ny RISC ISA som ligner på MIPS og RISC-V er implementert. I sin nåværende form er kun kompatibilitet tilgjengelig med 64-bits variant fra LoongArch (LA64). Det krever minst binutils 2.38, GCC 12 og Linux-kjerne 5.19 for å kjøre.

Av de andre endringene som skiller seg ut:

  • Forhåndskoblingsmekanismen, så vel som de tilknyttede miljøvariablene LD_TRACE_PRELINKING og LD_USE_LOAD_BIAS og linkerfunksjoner, er avviklet og vil bli fjernet i en fremtidig utgivelse.
  • Fjernet kode for å sjekke Linux-kjerneversjonen og håndtere miljøvariabelen LD_ASSUME_KERNEL. Minimum kjerneversjon som støttes ved kompilering av Glibc, bestemmes av ELF-feltet NT_GNU_ABI_TAG.
  • Miljøvariabelen LD_LIBRARY_VERSION er avviklet på Linux-plattformen.

Til slutt, hvis du er interessert i å vite mer om det, kan du se detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.