Glibc 2.36 የስርዓት ቤተ መፃህፍት መለቀቅ

ከስድስት ወራት እድገት በኋላ የጂኤንዩ ሲ ቤተ መፃህፍት (glibc) 2.36 ስርዓት ቤተ-መጽሐፍት ተለቋል ይህም የ ISO C11 እና POSIX.1-2017 መስፈርቶችን ሙሉ በሙሉ የሚያከብር ነው። አዲሱ ልቀት የ59 ገንቢዎችን ጥገና ያካትታል።

በGlibc 2.36 ውስጥ ከተተገበሩት አንዳንድ ማሻሻያዎች መካከል፡-

  • ለአዲሱ DT_RELR (አንጻራዊ ማዛወሪያ) አድራሻ ማዛወሪያ ቅርፀት የተጨመረው ድጋፍ፣ ይህም በተጋሩ ነገሮች ውስጥ ያለውን አንጻራዊ የመዛወሪያ መጠን እና በPIE (Position-Independent executables) የተገናኙ ፋይሎችን ለመቀነስ ያስችላል። በ ELF ፋይሎች ውስጥ የDT_RELR መስክን መጠቀም በቢንቲልስ 2.38 መለቀቅ ላይ ለተዋወቀው "-z pack-relation-relocs" በሚለው አገናኝ ውስጥ ላለው አማራጭ ድጋፍ ያስፈልገዋል።
  • ለሊኑክስ መድረክ፣ pidfd_open፣ pidfd_getfd እና pidfd_send_signal ተግባራቶቹ ተተግብረዋል፣ ይህም PID እንደገና ጥቅም ላይ የሚውሉ ሁኔታዎችን ለመቆጣጠር የሚያግዝ የፒዲኤፍድ ተግባርን በመዳረስ ክትትል የሚደረግባቸው ፋይሎችን የሚደርሱ ሂደቶችን በትክክል ለመለየት ይረዳል (ፒዲኤፍዲ ከተወሰነ ሂደት ጋር የተቆራኘ እና አይቀየርም) ከ PID ጋር የተያያዘው የአሁኑ ሂደት ካለቀ በኋላ ከሌላ ሂደት ጋር ተያይዟል).
  • ለሊኑክስ መድረክ፣ ፒዲኤፍድን በመጠቀም የዒላማ ሂደቱን በመለየት አንድ ሂደት የማድቪስ() ስርዓት ጥሪን ሌላ ሂደትን እንዲሰጥ ለማስቻል የሂደቱ_madvise() ተግባር ታክሏል። በማድቪስ() የሂደቱን የማህደረ ትውስታ አስተዳደር ለማመቻቸት ከማህደረ ትውስታ ጋር አብሮ የመስራትን ባህሪያት ለከርነል ማሳወቅ ይችላሉ፡ ለምሳሌ፡ በሚተላለፈው መረጃ መሰረት ከርነል ተጨማሪ የነጻ ማህደረ ትውስታ መልቀቅን ሊጀምር ይችላል። ለማመቻቸት የሚያስፈልገው መረጃ አሁን ባለው ሂደት በማይታወቅበት ሁኔታ የማድቪዝ() ጥሪ በሌላ ሂደት ሊያስፈልግ ይችላል ነገር ግን በተለየ የጀርባ ቁጥጥር ሂደት የተቀናጀ ሲሆን ይህም በራሱ ጥቅም ላይ ያልዋለ ማህደረ ትውስታን ከሂደቶች መወገድን ይጀምራል።
  • ለሊኑክስ መድረክ የሂደቱ_mrelease() ተግባር ተጨምሯል፣ይህም አፈፃፀሙን ለሚያጠናቅቅ ሂደት የማህደረ ትውስታ መልቀቅን ለማፋጠን ያስችላል። በተለመዱ ሁኔታዎች የሀብት መልቀቅ እና የሂደቱ መቋረጥ ፈጣን አይደሉም እና በተለያዩ ምክንያቶች ሊዘገዩ ይችላሉ የተጠቃሚ-ቦታ ማህደረ ትውስታ ቀደምት ምላሽ ስርዓቶች እንደ oomd (በስርዓት የቀረበ)። ፕሮሰስ_mreleaseን በመጥራት፣ እንደዚህ አይነት ስርዓቶች ከግዳጅ ሂደቶች የማስታወስ ችሎታን በይበልጥ ሊተነብዩ ይችላሉ።
  • ለ "no-aaaa" አማራጭ ድጋፍ አብሮ በተሰራው የዲ ኤን ኤስ መፍታት ትግበራ ላይ ተጨምሯል ፣ ይህም የዲ ኤን ኤስ ጥያቄዎችን ለ AAAA መዛግብት መላክን እንዲያሰናክሉ ያስችልዎታል (የአይፒv6 አድራሻን በአስተናጋጅ ስም መወሰን) ፣ NSS ን ሲፈጽሙም ጨምሮ። እንደ getaddrinfo () ያሉ ተግባራት፣ የችግር ምርመራን ለማቃለል። ይህ አማራጭ በ /etc/hosts ውስጥ የተገለጹትን የIPv6 አድራሻ ማሰሪያዎችን እና ወደ getaddrinfo() ጥሪ ከ AI_PASSIVE ባንዲራ ጋር ምንም አይነት ለውጥ አያመጣም።
  • ለሊኑክስ መድረክ፡ fsopen, fsmount, move_mount, fsconfig, fspick, open_tree እና mount_setattr ተግባራቶቹ ተጨምረዋል ይህም በተራ የስም ቦታዎች ላይ በመመስረት የፋይል ስርዓት መጫንን ለማስተዳደር አዲስ የከርነል ኤፒአይ መዳረሻ ይሰጣል። የታቀዱት ተግባራት ቀደም ሲል የጋራ ተራራ () ተግባርን በመጠቀም የተከናወኑትን የተለያዩ የመጫኛ ደረጃዎችን (የሱፐር እገዳውን ለማስኬድ ፣ ስለ የፋይል ስርዓቱ መረጃ ለማግኘት ፣ ለመጫን ፣ ከተራራው ነጥብ ጋር ለማያያዝ) በተናጥል እንዲሰሩ ያስችሉዎታል ። የተለዩ ተግባራት ይበልጥ ውስብስብ የሆኑ የ ተራራ ሁኔታዎችን የማከናወን ችሎታን ይሰጣሉ እና እንደ ሱፐር ብሎክን እንደገና ማዋቀር፣ አማራጮችን ማንቃት፣ የተራራ ነጥቡን መቀየር እና ወደ ሌላ የስም ቦታ ማዛወር ያሉ ስራዎችን በተናጠል ማከናወን ይችላሉ። በተጨማሪም, የተለየ ማቀነባበር የስህተት ኮዶችን ውፅዓት ምክንያቶች በትክክል እንዲወስኑ እና እንደ ተደራቢዎች ያሉ ባለብዙ-ንብርብር የፋይል ስርዓቶችን ብዙ ምንጮችን እንዲያዘጋጁ ያስችልዎታል.
  • localedef ከ ASCII ይልቅ በUTF-8 ኢንኮዲንግ የቀረቡትን የአካባቢ ትርጉም ፋይሎችን ለማስኬድ ድጋፍ ይሰጣል።
  • ባለብዙ ባይት mbrtoc8 እና c8rtomb ኢንኮዲንግ ወደ ISO C2X N2653 እና C++20 P0482R6 መግለጫዎች ለመቀየር የታከሉ ተግባራት።
  • በረቂቁ ISO C8X N2 መስፈርት ውስጥ ለተገለጸው የchar2653_t አይነት ድጋፍ ታክሏል።
  • የታከሉ arc4random፣ arc4random_buf እና arc4random_uniform ተግባራት በጌራንደም ስርዓት ጥሪ እና በ/dev/urandom በይነገጽ ላይ ከፍተኛ ጥራት ያላቸውን የውሸት ቁጥሮች የሚመልሱ።
  • በሊኑክስ መድረክ ላይ ሲሰራ በLongson 3 5000 ፕሮሰሰር ውስጥ ጥቅም ላይ የሚውለውን LoongArch መመሪያ ስብስብ አርክቴክቸርን ይደግፋል እና አዲሱን RISC ISA ተግባራዊ ያደርጋል፣ ከ MIPS እና RISC-V። አሁን ባለው ቅጽ፣ ለ64-ቢት የ LoongArch (LA64) ስሪት ድጋፍ ብቻ ይገኛል። ለመስራት፣ቢያንስ ቢንቲልስ 2.38፣ ጂሲሲ 12 እና ሊኑክስ ከርነል 5.19 ስሪት ያስፈልግዎታል።
  • የቅድሚያ ማገናኛ ዘዴው፣ እንዲሁም ተዛማጅ LD_TRACE_PRELINKING እና LD_USE_LOAD_BIAS የአካባቢ ተለዋዋጮች እና የማገናኛ ችሎታዎች ተቋርጠዋል እና ወደፊት በሚለቀቅበት ጊዜ ይወገዳሉ።
  • የሊኑክስ ከርነል ስሪቱን ለመፈተሽ እና የLD_ASSUME_KERNEL አካባቢ ተለዋዋጭን ለመቆጣጠር የተወገደ ኮድ። Glibc ሲገነባ የሚደገፈው ዝቅተኛው የከርነል ስሪት የሚወሰነው በኤልኤፍ መስክ NT_GNU_ABI_TAG ነው።
  • የLD_LIBRARY_VERSION አካባቢ ተለዋዋጭ በሊኑክስ መድረክ ላይ ተቋርጧል።

ምንጭ: opennet.ru

አስተያየት ያክሉ