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, ці системи можуть більш передбачувано почати отримання пам’яті для процесів, які були примусово припинені.

З іншого боку, зазначається, що додано підтримка опції «ні-аааа». до комплексної реалізації Роздільна здатність 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 щоб забезпечити прив’язки до системного виклику getrandom і інтерфейс /dev/urrandom, повертаючи високоякісні псевдовипадкові числа.

Під час роботи в Linux надається підтримка архітектури. з набору інструкцій Довга арка використовується в процесорах 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. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.