A Glibc 2.36 új funkciókkal, fejlesztésekkel és még sok mással érkezik Linuxra

Hat hónapos fejlesztés után bejelentették a glibc 2.36 új verziójának megjelenését, amely teljes mértékben megfelel az ISO C11 és POSIX.1-2017 szabványok követelményeinek, és amelyben az új verzió 59 fejlesztő javítását tartalmazza.

Azok számára, akik nem ismerik a Glibc -et, tudnia kell, mi az GNU C könyvtár, közismert nevén glibc a standard GNU C futásidejű könyvtár. Azon rendszereken, ahol használják, ez a C könyvtár az biztosítja és meghatározza a rendszerhívásokat és egyéb alapvető funkciókat, szinte minden program használja. 

A Glibc 2.36 főbb újdonságai

Ebben a bemutatott új verzióban kiemelik, hogy hozzáadott egy új relatív áthelyezési címformátum támogatását DT_RELR, amely lehetővé teszi a relatív áthelyezések méretének csökkentését megosztott objektumokban és csatolt végrehajtható fájlokban PIE (pozíciófüggetlen végrehajtható fájl) módban. A DT_RELR mező ELF-fájlokban való használatához a linkerben a "-z pack-relative-relocs" opció támogatása szükséges, amelyet a binutils 2.38-ban vezettek be.

Az új változatban kiemelkedő másik változás az Linux esetén a funkciókat pidfd_open, pidfd_getfd és pidfd_send_signal úgy lettek megvalósítva, hogy hozzáférést biztosítsanak a pidfd funkcióhoz amely segít a PID újrafelhasználási helyzetek kezelésében a figyelt fájlokhoz hozzáférő folyamatok pontosabb azonosítása érdekében (a pidfd egy adott folyamathoz kapcsolódik, és nem változik, míg a PID a folyamat befejezése után egy másik folyamathoz csatolható). PID).

Amellett, hogy, Linuxban is megjelenik a process_madvise()Hogy lehetővé teszi egy folyamat számára, hogy egy madvise() rendszerhívást hajtson végre egy másik folyamat nevében, a célfolyamat azonosítása a pidfd segítségével. A madvise() segítségével tájékoztathatja a kernelt a memóriával való munkavégzés sajátosságairól a folyamat memóriakezelésének optimalizálása érdekében, például az átadott információk alapján a kernel megkezdheti a további szabad memória felszabadítását.

Azt is meg kell jegyezni, hogy a funkció hozzáadásra került process_mrelease(), amely lehetővé teszi a memóriafelszabadítás felgyorsítását egy olyan folyamat számára, amely befejezi a végrehajtását. Normál körülmények között az erőforrások felszabadítása és a folyamat leállítása nem azonnali, és különböző okok miatt késleltethető, megzavarva a felhasználói terület korai figyelmeztető rendszereit, mint például az oomd (a systemd által biztosított). A process_mrelease meghívásával ezek a rendszerek kiszámíthatóbban tudják elindítani a kényszerleállított folyamatok memórialekérését.

Másrészt meg kell jegyezni, hogy hozzáadták a "no-aaaa" opció támogatása integrált megvalósításához DNS-feloldás, amely lehetővé teszi az AAAA-rekordokra vonatkozó DNS-kérések küldésének letiltását (IPv6-cím meghatározása gazdagépnév alapján), még akkor is, ha olyan NSS-függvényeket futtat, mint a getaddrinfo(), a hibaelhárítás egyszerűsítése érdekében. Ez a beállítás nem befolyásolja az /etc/hosts fájlban definiált IPv6-cím-összerendelések és a getaddrinfo() AI_PASSIVE jelzővel történő hívásainak kezelését.

Linux esetén hozzáadta a funkciókat fsopen, fsmount, move_mount, fsconfig, fspick, open_tree és mount_setattr mert hozzáférést biztosít egy új kernel API-hoz a fájlrendszerek csatlakoztatásának szabályozásához mount névterek alapján. A javasolt funkciók lehetővé teszik a különböző beillesztési lépések külön feldolgozását (a szuperblokk feldolgozása, a fájlrendszerről való információszerzés, felcsatolás, csatolás a csatolási ponthoz), amelyeket korábban a közös mount() függvény segítségével hajtottak végre.

Hozzá lettek adva a funkciókat arc4random, arc4random_buf és arc4random_uniform hogy kötéseket biztosítson a rendszerhíváshoz véletlenszerűen és az interfész / Dev / urandom, jó minőségű pszeudo-véletlen számokat ad vissza.

Ha Linuxon fut, az architektúra támogatása biztosított. az utasításkészletből LoongArch Loongson 3 5000 processzorokban használják, és a MIPS-hez és a RISC-V-hez hasonló új RISC ISA kerül bevezetésre. Jelenlegi formájában csak a kompatibilitás érhető el 64 bites változattal a LoongArch-tól (LA64). A futtatásához legalább binutils 2.38, GCC 12 és Linux kernel 5.19 szükséges.

A többi kiemelkedő változás közül:

  • Az előlinkelési mechanizmus, valamint a kapcsolódó LD_TRACE_PRELINKING és LD_USE_LOAD_BIAS környezeti változók és linker funkciók elavultak, és egy későbbi kiadásban eltávolítjuk.
  • Kód eltávolítva a Linux kernel verziójának ellenőrzéséhez és az LD_ASSUME_KERNEL környezeti változó kezeléséhez. A Glibc fordításakor támogatott minimális kernelverziót az NT_GNU_ABI_TAG ELF mező határozza meg.
  • Az LD_LIBRARY_VERSION környezeti változó elavult Linux platformon.

Végül, ha többet szeretne megtudni róla, akkor tanulmányozza a részleteket A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.