Glibc 2.36 kommer med nye funktioner til Linux, forbedringer og mere

Efter seks måneders udvikling blev udgivelsen af ​​den nye version af glibc 2.36 annonceret, som fuldt ud overholder kravene i ISO C11 og POSIX.1-2017 standarderne, og hvor den nye version indeholder rettelser fra 59 udviklere. .

For dem, der ikke kender Glibc, bør de vide, hvad det er et GNU C -bibliotek, almindeligvis kendt som glibc er standard GNU C runtime -biblioteket. På systemer, hvor det bruges, dette C -bibliotek, der leverer og definerer systemopkald og andre grundlæggende funktioner, det bruges af næsten alle programmer. 

Vigtigste nye funktioner i Glibc 2.36

I denne nye version, der præsenteres, fremhæves det tilføjet understøttelse af et nyt adresseformat til relativ flytning DT_RELR, som giver dig mulighed for at reducere størrelsen af ​​relative flytninger i delte objekter og linkede eksekverbare filer i PIE-tilstand (Position Independent Executables). Brug af DT_RELR-feltet i ELF-filer kræver understøttelse af "-z pack-relative-relocs"-indstillingen i linkeren, introduceret i binutils 2.38.

En anden ændring, der skiller sig ud i den nye version, er den til Linux funktionerne pidfd_open, pidfd_getfd og pidfd_send_signal blev implementeret for at give adgang til pidfd-funktionaliteten som hjælper med at håndtere PID-genbrugssituationer for mere præcist at identificere de processer, der tilgår de overvågede filer (pidfd er forbundet med en specifik proces og ændres ikke, mens PID'et kan knyttes til en anden proces efter processen slutter). nuværende proces forbundet med dette PID).

Udover det, også i Linux kommer process_madvise()Det tillader en proces at udføre et madvise() systemkald på vegne af en anden proces, identifikation af målprocessen ved hjælp af pidfd. Gennem madvise() kan du informere kernen om egenskaberne ved at arbejde med hukommelse for at optimere hukommelsesstyringen af ​​processen, for eksempel, baseret på den videregivne information, kan kernen begynde at frigive yderligere ledig hukommelse.

Det bemærkes også, at funktionen blev tilføjet process_mrelease(), som giver dig mulighed for at fremskynde frigivelsen af ​​hukommelse for en proces, der afslutter dens eksekvering. Under normale omstændigheder er ressourcefrigivelse og procesafslutning ikke øjeblikkelig og kan blive forsinket af forskellige årsager, hvilket forstyrrer brugerpladsens tidlige advarselssystemer såsom oomd (leveret af systemd). Ved at kalde process_mrelease kan disse systemer mere forudsigeligt starte hukommelseshentninger for processer, der blev tvangsafsluttet.

Derimod bemærkes, at den er tilføjet understøttelse af "no-aaaa" mulighed til den integrerede implementering af DNS-opløsning, som giver dig mulighed for at deaktivere afsendelse af DNS-anmodninger om AAAA-poster (bestemmelse af en IPv6-adresse ved værtsnavn), selv når der køres NSS-funktioner som getaddrinfo(), for at forenkle fejlfinding. Denne indstilling påvirker ikke håndteringen af ​​IPv6-adressebindinger defineret i /etc/hosts og kald til getaddriinfo() med flaget AI_PASSIVE.

Til Linux tilføjede funktionerne fsopen, fsmount, move_mount, fsconfig, fspick, open_tree og mount_setattr para give adgang til en ny kerne-API for at kontrollere, hvordan filsystemer monteres baseret på mount navnerum. De foreslåede funktioner tillader separat behandling af forskellige monteringstrin (behandling af superblokken, indhentning af information om filsystemet, montering, fastgørelse til monteringspunktet), som tidligere blev udført ved hjælp af den fælles mount()-funktion.

Blev tilføjet funktionerne arc4random, arc4random_buf og arc4random_uniform at give bindinger på systemkaldet tilfældigt og grænsefladen / Dev / urandom, returnerer pseudo-tilfældige tal af høj kvalitet.

Når du kører på Linux, understøttes arkitekturen. fra instruktionssættet LoongArch bruges i Loongson 3 5000 processorer og en ny RISC ISA svarende til MIPS og RISC-V er implementeret. I sin nuværende form er kun kompatibilitet tilgængelig med 64-bit variant fra LoongArch (LA64). Det kræver mindst binutils 2.38, GCC 12 og Linux-kerne 5.19 for at køre.

Af de andre ændringer, der skiller sig ud:

  • Prelinking-mekanismen, såvel som de tilknyttede LD_TRACE_PRELINKING- og LD_USE_LOAD_BIAS-miljøvariabler og linkerfunktioner, er forældet og vil blive fjernet i en fremtidig udgivelse.
  • Fjernet kode for at kontrollere Linux-kerneversionen og håndtere miljøvariablen LD_ASSUME_KERNEL. Den mindste kerneversion, der understøttes ved kompilering af Glibc, bestemmes af ELF-feltet NT_GNU_ABI_TAG.
  • Miljøvariablen LD_LIBRARY_VERSION er blevet forældet på Linux-platformen.

Endelig, hvis du er interesseret i at vide mere om det, kan du se detaljerne I det følgende link.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.