Glibc 2.36 సిస్టమ్ లైబ్రరీ విడుదల

ఆరు నెలల అభివృద్ధి తర్వాత, GNU C లైబ్రరీ (glibc) 2.36 సిస్టమ్ లైబ్రరీ విడుదల చేయబడింది, ఇది ISO C11 మరియు POSIX.1-2017 ప్రమాణాల అవసరాలకు పూర్తిగా అనుగుణంగా ఉంటుంది. కొత్త విడుదలలో 59 డెవలపర్‌ల నుండి పరిష్కారాలు ఉన్నాయి.

Glibc 2.36లో అమలు చేయబడిన కొన్ని మెరుగుదలలు:

  • కొత్త DT_RELR (రిలేటివ్ రిలొకేషన్) అడ్రస్ రీలొకేషన్ ఫార్మాట్‌కు మద్దతు జోడించబడింది, ఇది PIE (పొజిషన్-ఇండిపెండెంట్ ఎక్జిక్యూటబుల్స్) మోడ్‌లో లింక్ చేయబడిన షేర్డ్ ఆబ్జెక్ట్‌లు మరియు ఎక్జిక్యూటబుల్ ఫైల్‌లలో సంబంధిత రీలొకేషన్‌ల పరిమాణాన్ని తగ్గించడానికి మిమ్మల్ని అనుమతిస్తుంది. ELF ఫైల్స్‌లో DT_RELR ఫీల్డ్‌ని ఉపయోగించడం కోసం లింకర్‌లోని "-z pack-relative-relocs" ఎంపికకు మద్దతు అవసరం, ఇది binutils 2.38 విడుదలలో పరిచయం చేయబడింది.
  • Linux ప్లాట్‌ఫారమ్ కోసం, pidfd_open, pidfd_getfd మరియు pidfd_send_signal ఫంక్షన్‌లు అమలు చేయబడతాయి, పర్యవేక్షించబడిన ఫైల్‌లను యాక్సెస్ చేసే ప్రక్రియలను మరింత ఖచ్చితంగా గుర్తించడానికి PID పునర్వినియోగ పరిస్థితులను నిర్వహించడానికి సహాయపడే pidfd కార్యాచరణకు ప్రాప్యతను అందిస్తుంది (pidfd నిర్దిష్ట ప్రక్రియతో అనుబంధించబడి ఉంటుంది మరియు మారదు, అయితే PID చేయవచ్చు. PIDతో అనుబంధించబడిన ప్రస్తుత ప్రక్రియ ముగిసిన తర్వాత మరొక ప్రక్రియకు జోడించబడుతుంది).
  • Linux ప్లాట్‌ఫారమ్ కోసం, pidfdని ఉపయోగించి లక్ష్య ప్రక్రియను గుర్తిస్తూ, మరొక ప్రక్రియ తరపున madvise() సిస్టమ్ కాల్‌ను జారీ చేయడానికి ఒక ప్రక్రియను అనుమతించడానికి process_madvise() ఫంక్షన్ జోడించబడింది. madvise() ద్వారా, మీరు ప్రాసెస్ మెమరీ నిర్వహణను ఆప్టిమైజ్ చేయడానికి మెమరీతో పని చేసే లక్షణాల గురించి కెర్నల్‌కు తెలియజేయవచ్చు; ఉదాహరణకు, ప్రసారం చేయబడిన సమాచారం ఆధారంగా, కెర్నల్ అదనపు ఉచిత మెమరీని విడుదల చేయడాన్ని ప్రారంభించవచ్చు. ఆప్టిమైజేషన్ కోసం అవసరమైన సమాచారం ప్రస్తుత ప్రక్రియకు తెలియని పరిస్థితిలో మరొక ప్రక్రియ ద్వారా madvise()కి కాల్ అవసరం కావచ్చు, కానీ ప్రత్యేక నేపథ్య నియంత్రణ ప్రక్రియ ద్వారా సమన్వయం చేయబడుతుంది, ఇది ప్రక్రియల నుండి ఉపయోగించని మెమరీని తొలగించడాన్ని స్వతంత్రంగా ప్రారంభించగలదు.
  • Linux ప్లాట్‌ఫారమ్ కోసం, process_mrelease() ఫంక్షన్ జోడించబడింది, ఇది దాని అమలును పూర్తి చేసే ప్రక్రియ కోసం మెమరీ విడుదలను వేగవంతం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. సాధారణ పరిస్థితులలో, వనరుల విడుదల మరియు ప్రక్రియ ముగింపు తక్షణమే కాదు మరియు వివిధ కారణాల వల్ల ఆలస్యం కావచ్చు, వినియోగదారు-స్పేస్ మెమరీ ప్రారంభ ప్రతిస్పందన వ్యవస్థలైన oomd (సిస్టమ్‌డి అందించబడింది) వంటి వాటికి ఆటంకం కలిగిస్తుంది. process_mreleaseకి కాల్ చేయడం ద్వారా, ఇటువంటి సిస్టమ్‌లు ఫోర్స్‌డ్ ప్రాసెస్‌ల నుండి మెమరీని తిరిగి పొందడాన్ని మరింత ఊహాజనితంగా ప్రేరేపిస్తాయి.
  • "no-aaaa" ఎంపికకు మద్దతు DNS పరిష్కర్త యొక్క అంతర్నిర్మిత అమలుకు జోడించబడింది, ఇది AAAA రికార్డుల కోసం DNS ప్రశ్నలను పంపడాన్ని నిలిపివేయడానికి మిమ్మల్ని అనుమతిస్తుంది (హోస్ట్ పేరు ద్వారా IPv6 చిరునామాను నిర్ణయించడం), NSSని అమలు చేయడంతో సహా సమస్య నిర్ధారణను సులభతరం చేయడానికి getaddrinfo() వంటి విధులు. AI_PASSIVE ఫ్లాగ్‌తో /etc/hosts మరియు getaddrinfo()కి కాల్‌లలో నిర్వచించబడిన IPv6 చిరునామా బైండింగ్‌ల ప్రాసెసింగ్‌ను ఈ ఎంపిక ప్రభావితం చేయదు.
  • Linux ప్లాట్‌ఫారమ్ కోసం, fsopen, fsmount, move_mount, fsconfig, fspick, open_tree మరియు mount_setattr ఫంక్షన్‌లు జోడించబడ్డాయి, మౌంట్ నేమ్‌స్పేస్‌ల ఆధారంగా ఫైల్ సిస్టమ్ మౌంటును నిర్వహించడానికి కొత్త కెర్నల్ APIకి యాక్సెస్‌ను అందిస్తుంది. ప్రతిపాదిత ఫంక్షన్‌లు మౌంటు యొక్క వివిధ దశలను విడిగా ప్రాసెస్ చేయడానికి మిమ్మల్ని అనుమతిస్తాయి (సూపర్‌బ్లాక్‌ను ప్రాసెస్ చేయండి, ఫైల్ సిస్టమ్ గురించి సమాచారాన్ని పొందండి, మౌంట్, మౌంట్ పాయింట్‌కి అటాచ్ చేయండి), ఇవి గతంలో సాధారణ మౌంట్ () ఫంక్షన్‌ని ఉపయోగించి నిర్వహించబడ్డాయి. ప్రత్యేక ఫంక్షన్‌లు మరింత సంక్లిష్టమైన మౌంట్ దృశ్యాలను నిర్వహించగల సామర్థ్యాన్ని అందిస్తాయి మరియు సూపర్‌బ్లాక్‌ను రీకాన్ఫిగర్ చేయడం, ఎంపికలను ప్రారంభించడం, మౌంట్ పాయింట్‌ను మార్చడం మరియు మరొక నేమ్‌స్పేస్‌కు వెళ్లడం వంటి కార్యకలాపాలను విడిగా నిర్వహించడం. అదనంగా, ప్రత్యేక ప్రాసెసింగ్ లోపం కోడ్‌ల అవుట్‌పుట్‌కు కారణాలను ఖచ్చితంగా గుర్తించడానికి మరియు ఓవర్‌లేఫ్‌ల వంటి బహుళ-లేయర్ ఫైల్ సిస్టమ్‌ల కోసం బహుళ మూలాలను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
  • ASCIIకి బదులుగా UTF-8 ఎన్‌కోడింగ్‌లో సరఫరా చేయబడిన లొకేల్ డెఫినిషన్ ఫైల్‌లను ప్రాసెస్ చేయడానికి localedef మద్దతునిస్తుంది.
  • బహుళ-బైట్ mbrtoc8 మరియు c8rtomb ఎన్‌కోడింగ్‌లను ISO C2X N2653 మరియు C++20 P0482R6 స్పెసిఫికేషన్‌లకు మార్చడానికి విధులు జోడించబడ్డాయి.
  • డ్రాఫ్ట్ ISO C8X N2 ప్రమాణంలో నిర్వచించబడిన char2653_t రకానికి మద్దతు జోడించబడింది.
  • arc4random, arc4random_buf మరియు arc4random_uniform ఫంక్షన్‌లు జోడించబడ్డాయి, ఇవి గెట్‌రాండమ్ సిస్టమ్ కాల్‌పై రేపర్‌లను అందిస్తాయి మరియు అధిక-నాణ్యత సూడోరాండమ్ నంబర్‌లను అందించే /dev/urandom ఇంటర్‌ఫేస్.
  • Linux ప్లాట్‌ఫారమ్‌పై నడుస్తున్నప్పుడు, ఇది Loongson 3 5000 ప్రాసెసర్‌లలో ఉపయోగించే LoongArch సూచనల సెట్ ఆర్కిటెక్చర్‌కు మద్దతు ఇస్తుంది మరియు MIPS మరియు RISC-V మాదిరిగానే కొత్త RISC ISAని అమలు చేస్తుంది. దాని ప్రస్తుత రూపంలో, LoongArch (LA64) యొక్క 64-బిట్ వెర్షన్‌కు మాత్రమే మద్దతు అందుబాటులో ఉంది. పని చేయడానికి, మీకు కనీసం 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 ద్వారా నిర్ణయించబడుతుంది.
  • Linux ప్లాట్‌ఫారమ్‌లో LD_LIBRARY_VERSION ఎన్విరాన్‌మెంట్ వేరియబుల్ నిలిపివేయబడింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి