Glibc 2.36 Нашри китобхонаи система

Пас аз шаш моҳи таҳия, китобхонаи системаи GNU C Library (glibc) 2.36 бароварда шуд, ки пурра ба талаботи стандартҳои ISO C11 ва POSIX.1-2017 мувофиқат мекунад. Нашри нав ислоҳи 59 таҳиягарро дар бар мегирад.

Баъзе такмилҳое, ки дар 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() шумо метавонед ядроро дар бораи хусусиятҳои кор бо хотира барои оптимизатсияи идоракунии хотираи раванд огоҳ созед; масалан, дар асоси иттилооти интиқолшуда ядро ​​метавонад озодкунии хотираи иловагии озодро оғоз кунад. Занг ба madvise() аз ҷониби як раванди дигар метавонад дар вазъияте талаб карда шавад, ки иттилооти барои оптимизатсия зарурӣ ба раванди ҷорӣ номаълум аст, аммо аз ҷониби раванди идоракунии пасзаминаи алоҳида ҳамоҳанг карда мешавад, ки мустақилона метавонад бартараф кардани хотираи истифоданашударо аз равандҳо оғоз кунад.
  • Барои платформаи Linux, функсияи 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() иҷро мешуданд, коркард кунед. Функсияҳои ҷудогона имкони иҷрои сенарияҳои мураккабтари васлкуниро таъмин мекунанд ва ба таври алоҳида иҷро кардани амалиётҳо ба монанди аз нав танзим кардани суперблок, имкон додани имконоти, тағир додани нуқтаи васлкунӣ ва гузаштан ба фазои номҳои дигар. Илова бар ин, коркарди алоҳида ба шумо имкон медиҳад, ки сабабҳои баромади кодҳои хатогиро дақиқ муайян кунед ва барои системаҳои файлии бисёрқабата, аз қабили overlayfs сарчашмаҳои сершумор муқаррар кунед.
  • localedef барои коркарди файлҳои таърифи маҳаллӣ, ки дар рамзгузории UTF-8 ба ҷои ASCII дода шудаанд, дастгирӣ мекунад.
  • Функсияҳои иловашуда барои табдил додани рамзгузории бисёрбайтаи mbrtoc8 ва c8rtomb ба мушаххасоти ISO C2X N2653 ва C++20 P0482R6.
  • Дастгирии иловашуда барои намуди char8_t, ки дар лоиҳаи стандарти ISO C2X N2653 муайян шудааст.
  • Функсияҳои arc4random, arc4random_buf ва arc4random_uniform илова карда шудаанд, ки пӯшишҳоро тавассути занги системаи getrandom ва интерфейси /dev/urandom таъмин мекунанд, ки рақамҳои псевдорандоми сифатии баландро бармегардонанд.
  • Ҳангоми кор дар платформаи Linux, он меъмории маҷмӯи дастурҳои LoongArch -ро дастгирӣ мекунад, ки дар протсессори Loongson 3 5000 истифода мешавад ва RISC ISA-и навро, ки ба MIPS ва RISC-V монанд аст, амалӣ мекунад. Дар шакли кунунии он, танҳо дастгирии версияи 64-битии LoongArch (LA64) дастрас аст. Барои кор кардан ба шумо ҳадди аққал версияҳои binutils 2.38, GCC 12 ва Linux kernel 5.19 лозим аст.
  • Механизми пешакии истинод, инчунин тағйирёбандаҳои муҳити зисти LD_TRACE_PRELINKING ва LD_USE_LOAD_BIAS ва қобилиятҳои пайвандкунандаи алоқаманди он, аз эътибор соқит шудаанд ва дар нашри оянда хориҷ карда мешаванд.
  • Рамзи хориҷшуда барои тафтиши версияи ядрои Linux ва коркарди тағирёбандаи муҳити LD_ASSUME_KERNEL. Версияи ҳадди ақали ядрое, ки ҳангоми сохтани Glibc дастгирӣ мешавад, тавассути майдони ELF NT_GNU_ABI_TAG муайян карда мешавад.
  • Тағйирёбандаи муҳити LD_LIBRARY_VERSION дар платформаи Linux қатъ карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ