Glibc 2.36 arriba amb noves funcions per a Linux, millores i més

Després de sis mesos de desenvolupament es va donar a conèixer el llançament de la nova versió de glibc 2.36, la qual compleix totalment els requisits dels estàndards ISO C11 i POSIX.1-2017 i en la qual la nova versió inclou correccions de 59 desenvolupadors .

Per als qui desconeixen de Glibc, han de saber que és una biblioteca GNU C, comunament coneguda com glibc és la biblioteca de temps d'execució estàndard de el llenguatge C de GNU. En els sistemes en què es fa servir, aquesta biblioteca de C que proporciona i defineix les trucades a sistema i altres funcions bàsiques, és utilitzada per gairebé tots els programes. 

Principals novetats de Glibc 2.36

En aquesta nova versió que es presenta es destaca que es va afegir el suport per a un nou format d'adreces de reubicació relativa DT_RELR, que permet reduir la mida de les reubicacions relatives en objectes compartits i fitxers executables vinculats en mode PIE (Executables independents de la posició). L'ús del camp DT_RELR en fitxers ELF requereix suport per a l'opció "-z pack-relative-relocs" a l'enllaçador, introduït a la versió binutils 2.38.

Un altre dels canvis que es destaca de la nova versió, és que per a Linux les funcions pidfd_open, pidfd_getfd i pidfd_send_signal es van implementar per brindar accés a la funcionalitat pidfd que ajuda a manejar situacions de reutilització de PID per identificar amb més precisió els processos que accedeixen als fitxers monitoritzats (pidfd està associat amb un procés específic i no canvia, mentre que el PID es pot adjuntar a un altre procés després que acabi el procés actual associat amb aquest PID).

A més d'això, també a Linux arriba process_madvise(), que permet que un procés executi una trucada al sistema madvise() en nom d'un altre procés, identificant el procés de destinació mitjançant pidfd. A través de madvise(), podeu informar el nucli sobre les característiques de treballar amb memòria per optimitzar la gestió de la memòria del procés, per exemple, en funció de la informació passada, el nucli pot iniciar l'alliberament de memòria lliure addicional.

També es destaca que es va afegir la funció process_mrelease(), que permet accelerar l'alliberament de memòria per a un procés que finalitza l'execució. En circumstàncies normals, l'alliberament de recursos i la finalització del procés no són instantanis i es poden endarrerir per diversos motius, cosa que interfereix amb els sistemes d'alerta primerenca de l'espai de l'usuari, com ara oomd (proporcionat per systemd). En cridar a process_mrelease, aquests sistemes poden iniciar de manera més predictible les recuperacions de memòria dels processos que van acabar per força.

D'altra banda, cal destacar que s'ha afegit suport per a l'opció «no-aaaa» a la implementació integrada de la resolució de DNS, que permet deshabilitar l'enviament de sol·licituds de DNS per a registres AAAA (determinació d'una adreça IPv6 per nom de host), fins i tot quan s'executen funcions NSS com getaddrinfo(), per simplificar la resolució de problemes. Aquesta opció no afecta el maneig dels enllaços d'adreces IPv6 definits a /etc/hosts i les trucades a getaddrinfo() amb l'indicador AI_PASSIVE.

Per a Linux, es van afegir les funcions fsopen, fsmount, move_mount, fsconfig, fspick, open_tree i mount_setattr per brindar accés a una nova API de kernel per controlar com es munten els sistemes de fitxers en funció dels espais de noms de muntatge. Les funcions proposades permeten processar per separat diferents etapes de muntatge (processar el superbloc, obtenir informació sobre el sistema de fitxers, muntar, adjuntar al punt de muntatge), que anteriorment es realitzaven utilitzant la funció comuna mount().

es van agregar les funcions arc4random, arc4random_buf i arc4random_uniform per proporcionar enllaços sobre la trucada al sistema getrandom i la interfície / dev / urandom, tornant números pseudoaleatoris d'alta qualitat.

Quan s'executa a Linux, es proporciona suport per a l'arquitectura del conjunt d'instruccions LoongArch utilitzada als processadors Loongson 3 5000 i s'implementa un nou RISC ISA similar a MIPS i RISC-V. En la forma actual, només està disponible la compatibilitat amb la variant de 64 bits de LoongArch (LA64). Requereix almenys binutils 2.38, GCC 12 i Linux kernel 5.19 per funcionar.

Dels altres canvis que es destaquen:

  • El mecanisme de vinculació prèvia, així com les variables d'entorn LD_TRACE_PRELINKING i LD_USE_LOAD_BIAS associades i les característiques del vinculador, estan en desús i s'eliminaran en una versió futura.
  • El codi es va eliminar per verificar la versió del nucli del Linux i gestionar la variable d'entorn LD_ASSUME_KERNEL. La versió mínima del nucli admesa al compilar Glibc està determinada pel camp ELF NT_GNU_ABI_TAG.
  • La variable d'entorn LD_LIBRARY_VERSION ha quedat obsoleta a la plataforma Linux.

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.