Glibc 2.36 пристига с нови функции за Linux, подобрения и други

След шест месеца разработка беше обявено пускането на новата версия на glibc 2.36, която напълно отговаря на изискванията на стандартите ISO C11 и POSIX.1-2017 и в която новата версия включва корекции от 59 разработчици.

За тези, които не са запознати с Glibc, трябва да знаят какво е това библиотека на GNU C, широко известен като glibc е стандартната библиотека по време на работа на GNU C. На системи, където се използва, тази библиотека C осигурява и дефинира системни повиквания и други основни функции, използва се от почти всички програми. 

Основни нови функции на Glibc 2.36

В тази нова версия, която е представена, е подчертано, че добавена поддръжка за нов относителен формат на адрес за преместване DT_RELR, който ви позволява да намалите размера на относителните премествания в споделени обекти и свързани изпълними файлове в режим PIE (Независими от позицията изпълними файлове). Използването на полето DT_RELR в ELF файлове изисква поддръжка за опцията "-z pack-relative-relocs" в линкера, въведена в binutils 2.38.

Друга промяна, която се откроява в новата версия, е тази за Linux функциите pidfd_open, pidfd_getfd и pidfd_send_signal бяха внедрени, за да осигурят достъп до функционалността на pidfd което помага за справяне със ситуации на повторно използване на PID за по-точно идентифициране на процесите, които имат достъп до наблюдаваните файлове (pidfd е свързан с конкретен процес и не се променя, докато PID може да бъде прикачен към друг процес след края на процеса). текущият процес, свързан с това PID).

Освен, че, също в Linux идва process_madvise()Че позволява на процес да изпълни системно извикване на madvise() от името на друг процес, идентифициране на целевия процес с помощта на pidfd. Чрез madvise() можете да информирате ядрото за характеристиките на работа с памет, за да оптимизирате управлението на паметта на процеса, например въз основа на предадената информация ядрото може да започне да освобождава допълнителна свободна памет.

Също така се отбелязва, че функцията е добавена process_mrelease(), който ви позволява да ускорите освобождаването на памет за процес, който приключва своето изпълнение. При нормални обстоятелства освобождаването на ресурси и прекратяването на процесите не са моментални и могат да бъдат забавени по различни причини, пречейки на системите за ранно предупреждение на потребителското пространство като oomd (предоставени от systemd). Чрез извикване на process_mrelease, тези системи могат по-предсказуемо да започнат извличане на памет за процеси, които са били принудително прекратени.

От друга страна се отбелязва, че е добавено поддръжка за опцията "no-aaaa". към интегрираното прилагане на DNS резолюция, която ви позволява да деактивирате изпращането на DNS заявки за AAAA записи (определяне на IPv6 адрес по име на хост), дори когато се изпълняват NSS функции като getaddrinfo(), за да се опрости отстраняването на проблеми. Тази опция не засяга обработката на обвързвания на IPv6 адреси, дефинирани в /etc/hosts и извиквания към getaddrinfo() с флага AI_PASSIVE.

За Linux, добавени функции fsopen, fsmount, move_mount, fsconfig, fspick, open_tree и mount_setattr за предоставя достъп до нов API на ядрото, за да контролира как се монтират файловите системи въз основа на пространства от имена на монтиране. Предложените функции позволяват отделна обработка на различни стъпки на монтиране (обработка на суперблока, получаване на информация за файловата система, монтиране, прикачване към точката на монтиране), които преди това са били изпълнявани с помощта на общата функция mount().

Бяха добавени функциите arc4random, arc4random_buf и arc4random_uniform за осигуряване на обвързване на системното повикване случайно и интерфейса / Dev / urandom, връщайки висококачествени псевдослучайни числа.

Когато работи на Linux, се предоставя поддръжка за архитектурата. от набора инструкции LongArch използва се в процесорите Loongson 3 5000 и е внедрен нов RISC ISA, подобен на MIPS и RISC-V. В настоящия си вид е налична само съвместимост с 64-битов вариант от LoongArch (LA64). Изисква поне binutils 2.38, GCC 12 и Linux ядро ​​5.19, за да работи.

От останалите промени, които се открояват:

  • Механизмът за предварително свързване, както и свързаните променливи на обкръжението LD_TRACE_PRELINKING и LD_USE_LOAD_BIAS и функциите на линкера са остарели и ще бъдат премахнати в бъдещо издание.
  • Премахнат код за проверка на версията на ядрото на Linux и обработка на променливата на средата LD_ASSUME_KERNEL. Минималната поддържана версия на ядрото при компилиране на Glibc се определя от ELF полето NT_GNU_ABI_TAG.
  • Променливата на средата LD_LIBRARY_VERSION е отхвърлена на платформата Linux.

И накрая, ако имате интерес да научите повече за него, можете да се консултирате с подробностите В следващия линк.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.