Glibc 2.36 පද්ධති පුස්තකාලය නිකුත් කිරීම

මාස හයක සංවර්ධනයෙන් පසුව, GNU C පුස්තකාලය (glibc) 2.36 පද්ධති පුස්තකාලය නිකුත් කර ඇති අතර, එය ISO C11 සහ POSIX.1-2017 ප්‍රමිතීන්ගේ අවශ්‍යතාවලට සම්පූර්ණයෙන්ම අනුකූල වේ. නව නිකුතුවට සංවර්ධකයින් 59 දෙනෙකුගෙන් නිවැරදි කිරීම් ඇතුළත් වේ.

Glibc 2.36 හි ක්‍රියාත්මක කරන ලද සමහර වැඩිදියුණු කිරීම්වලට ඇතුළත් වන්නේ:

  • නව DT_RELR (සාපේක්ෂ නැවත ස්ථානගත කිරීම) ලිපින නැවත ස්ථානගත කිරීමේ ආකෘතිය සඳහා සහය එක් කරන ලදී, එය ඔබට PIE (Position-independent executables) මාදිලියේ සම්බන්ධ කර ඇති හවුල් වස්තු සහ ක්‍රියාත්මක කළ හැකි ගොනු වල සාපේක්ෂ නැවත ස්ථානගත කිරීම් වල ප්‍රමාණය අඩු කිරීමට ඉඩ සලසයි. ELF ගොනු වල DT_RELR ක්ෂේත්‍රය භාවිතා කිරීම සඳහා binutils 2.38 නිකුතුවේදී හඳුන්වා දුන් සම්බන්ධකයේ "-z pack-relative-relocks" විකල්පය සඳහා සහය අවශ්‍ය වේ.
  • Linux වේදිකාව සඳහා, pidfd_open, pidfd_getfd සහ pidfd_send_signal යන ශ්‍රිත ක්‍රියාවට නංවා ඇති අතර, අධීක්‍ෂණය කරන ලද ගොනු වෙත ප්‍රවේශ වීමේ ක්‍රියාවලි වඩාත් නිවැරදිව හඳුනා ගැනීමට PID නැවත භාවිත තත්ත්වයන් හැසිරවීමට උපකාරී වන pidfd ක්‍රියාකාරීත්වයට ප්‍රවේශය සපයයි (pidfd නිශ්චිත ක්‍රියාවලියක් සමඟ සම්බන්ධ වන අතර වෙනස් නොවේ, නමුත් PID කළ හැක. එම PID හා සම්බන්ධ වත්මන් ක්‍රියාවලිය අවසන් වූ පසු වෙනත් ක්‍රියාවලියකට අනුයුක්ත කළ යුතුය).
  • Linux වේදිකාව සඳහා, එක් ක්‍රියාවලියකට වෙනත් ක්‍රියාවලියක් වෙනුවෙන් madvise() පද්ධති ඇමතුම නිකුත් කිරීමට ඉඩ දීම සඳහා process_madvise() ශ්‍රිතය එකතු කර ඇත, pidfd භාවිතයෙන් ඉලක්ක ක්‍රියාවලිය හඳුනා ගනී. madvise() හරහා, ක්‍රියාවලි මතක කළමනාකරණය ප්‍රශස්ත කිරීම සඳහා මතකය සමඟ වැඩ කිරීමේ විශේෂාංග පිළිබඳව ඔබට කර්නලය දැනුම් දිය හැකිය; උදාහරණයක් ලෙස, සම්ප්‍රේෂණය කරන ලද තොරතුරු මත පදනම්ව, කර්නලයට අමතර නිදහස් මතකය මුදා හැරීම ආරම්භ කළ හැකිය. ප්‍රශස්තකරණය සඳහා අවශ්‍ය තොරතුරු වත්මන් ක්‍රියාවලියට නොදන්නා නමුත් වෙනම පසුබිම් පාලන ක්‍රියාවලියක් මගින් සම්බන්ධීකරණය කර ඇති අවස්ථාවක වෙනත් ක්‍රියාවලියක් මගින් madvise() වෙත ඇමතුමක් අවශ්‍ය විය හැක, එය ක්‍රියාවලි වලින් භාවිත නොකළ මතකය ඉවත් කිරීම ස්වාධීනව ආරම්භ කළ හැක.
  • Linux වේදිකාව සඳහා, process_mrelease() ශ්‍රිතය එක් කර ඇති අතර, එය ක්‍රියාත්මක කිරීම සම්පූර්ණ කරන ක්‍රියාවලියක් සඳහා මතකය මුදා හැරීම වේගවත් කිරීමට ඔබට ඉඩ සලසයි. සාමාන්‍ය තත්වයන් යටතේ, සම්පත් මුදා හැරීම සහ ක්‍රියාවලි අවසන් කිරීම ක්ෂණික නොවන අතර විවිධ හේතු නිසා ප්‍රමාද විය හැක, oomd (systemd මගින් සපයනු ලබන) වැනි පරිශීලක-අවකාශ මතකයේ මුල් ප්‍රතිචාර පද්ධති වලට බාධා කරයි. process_mrelease ඇමතීමෙන්, එවැනි පද්ධති බලහත්කාර ක්‍රියාවලීන්ගෙන් මතකය නැවත ලබා ගැනීම වඩාත් පුරෝකථනය කළ හැකිය.
  • “no-aaaa” විකල්පය සඳහා සහය DNS විසදුමේ ක්‍රියාත්මක කිරීම සඳහා එක් කර ඇත, එය ඔබට AAAA වාර්තා සඳහා DNS ඉල්ලීම් යැවීම අක්‍රිය කිරීමට ඉඩ සලසයි (ධාරක නාමයෙන් IPv6 ලිපිනයක් තීරණය කිරීම), NSS ක්‍රියාත්මක කිරීමේදී ඇතුළුව. getaddrinfo(), වැනි ක්‍රියා මඟින් ගැටළු හඳුනාගැනීම සරල කිරීමට. මෙම විකල්පය /etc/hosts හි අර්ථ දක්වා ඇති IPv6 ලිපින බන්ධන සැකසීමට සහ AI_PASSIVE ධජය සමඟ getaddrinfo() වෙත ඇමතුම් වලට බලපාන්නේ නැත.
  • Linux වේදිකාව සඳහා, fsopen, fsmount, move_mount, fsconfig, fspick, open_tree සහ mount_setattr යන ශ්‍රිතයන් එකතු කර ඇති අතර, mount namespaces මත පදනම්ව ගොනු පද්ධති සවිකිරීම කළමනාකරණය කිරීම සඳහා නව කර්නල් API වෙත ප්‍රවේශය සපයයි. යෝජිත කාර්යයන් මඟින් ඔබට සවිකිරීමේ විවිධ අවධීන් වෙන වෙනම සැකසීමට ඉඩ සලසයි (සුපිරි බ්ලොක් සැකසීම, ගොනු පද්ධතිය පිළිබඳ තොරතුරු ලබා ගැනීම, සවි කිරීම, සවිකිරීම, සවිකිරීම් ස්ථානයට සම්බන්ධ කිරීම), ඒවා මීට පෙර පොදු mount() ශ්‍රිතය භාවිතයෙන් සිදු කරන ලදී. වෙනම ශ්‍රිතයන් මඟින් වඩාත් සංකීර්ණ මවුන්ට් අවස්ථා සිදු කිරීමට සහ සුපිරි බ්ලොක් එක නැවත සකස් කිරීම, විකල්ප සක්‍රීය කිරීම, මවුන්ට් පොයින්ට් වෙනස් කිරීම සහ වෙනත් නාම අවකාශයකට යාම වැනි මෙහෙයුම් වෙන වෙනම සිදු කිරීමට හැකියාව ලබා දේ. මීට අමතරව, වෙනම සැකසුම් මඟින් දෝෂ කේත ප්‍රතිදානය සඳහා හේතු නිවැරදිව තීරණය කිරීමට සහ overlayfs වැනි බහු ස්ථර ගොනු පද්ධති සඳහා බහු මූලාශ්‍ර සැකසීමට ඔබට ඉඩ සලසයි.
  • localedef ASCII වෙනුවට UTF-8 කේතනය තුළ සපයා ඇති ස්ථාන නිර්වචන ගොනු සැකසීම සඳහා සහාය සපයයි.
  • බහු-බයිට් mbrtoc8 සහ c8rtomb කේතීකරණ ISO C2X N2653 සහ C++20 P0482R6 පිරිවිතර වෙත පරිවර්තනය කිරීමට ශ්‍රිත එක් කරන ලදී.
  • කෙටුම්පත ISO C8X N2 ප්‍රමිතියේ අර්ථ දක්වා ඇති char2653_t වර්ගය සඳහා සහය එක් කරන ලදී.
  • getrandom පද්ධති ඇමතුම හරහා දවටන සපයන arc4random, arc4random_buf, සහ arc4random_uniform ශ්‍රිත සහ උසස් තත්ත්වයේ ව්‍යාජ අංක ලබා දෙන /dev/urandom අතුරුමුහුණත එක් කරන ලදී.
  • Linux වේදිකාව මත ධාවනය වන විට, එය Loongson 3 5000 ප්‍රොසෙසරවල භාවිතා වන LoongArch උපදෙස් කට්ටල ගෘහ නිර්මාණ ශිල්පයට සහය දක්වන අතර MIPS සහ RISC-V වලට සමාන නව RISC ISA ක්‍රියාත්මක කරයි. එහි වත්මන් ස්වරූපයෙන්, LoongArch (LA64) හි 64-bit අනුවාදය සඳහා පමණක් සහාය ලබා ගත හැකිය. වැඩ කිරීමට, ඔබට අවම වශයෙන් binutils 2.38, GCC 12 සහ Linux kernel 5.19 අනුවාද අවශ්‍ය වේ.
  • පූර්ව සබැඳි යාන්ත්‍රණය, මෙන්ම එහි ආශ්‍රිත LD_TRACE_PRELINKING සහ LD_USE_LOAD_BIAS පරිසර විචල්‍යයන් සහ සම්බන්ධක හැකියාවන්, අත්හරින ලද අතර අනාගත නිකුතුවකදී ඉවත් කරනු ලැබේ.
  • ලිනක්ස් කර්නල් අනුවාදය පරීක්ෂා කිරීම සහ LD_ASSUME_KERNEL පරිසර විචල්‍යය හැසිරවීම සඳහා කේතය ඉවත් කරන ලදී. Glibc තැනීමේදී සහාය දක්වන කර්නලයේ අවම අනුවාදය ELF ක්ෂේත්‍රය NT_GNU_ABI_TAG හරහා තීරණය වේ.
  • Linux වේදිකාවේ LD_LIBRARY_VERSION පරිසර විචල්‍යය නතර කර ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න