Dumating ang Glibc 2.36 na may mga bagong feature para sa Linux, mga pagpapahusay at higit pa

Pagkatapos ng anim na buwan ng pag-develop, inihayag ang paglabas ng bagong bersyon ng glibc 2.36, na ganap na sumusunod sa mga kinakailangan ng mga pamantayan ng ISO C11 at POSIX.1-2017 at kung saan ang bagong bersyon ay may kasamang mga pagwawasto mula sa 59 na mga developer. .

Para sa mga hindi pamilyar sa Glibc, dapat nilang malaman kung ano ito isang GNU C library, karaniwang kilala bilang glibc ay ang pamantayang GNU C runtime library. Sa mga system kung saan ito ginagamit, ang C library na iyon nagbibigay at tumutukoy sa mga tawag sa system at iba pang mga pangunahing pag-andar, ginagamit ito ng halos lahat ng mga programa. 

Pangunahing mga bagong tampok ng Glibc 2.36

Sa bagong bersyon na ito na ipinakita, ito ay naka-highlight na nagdagdag ng suporta para sa isang bagong format ng relokasyon na address DT_RELR, na nagbibigay-daan sa iyong bawasan ang laki ng mga kamag-anak na relocation sa mga shared object at naka-link na executable sa PIE (Position Independent Executables) mode. Ang paggamit ng DT_RELR field sa ELF file ay nangangailangan ng suporta para sa opsyong "-z pack-relative-relocs" sa linker, na ipinakilala sa binutils 2.38.

Ang isa pang pagbabago na namumukod-tangi sa bagong bersyon ay iyon para sa Linux ang mga function pidfd_open, pidfd_getfd, at pidfd_send_signal ay ipinatupad upang magbigay ng access sa pidfd functionality na tumutulong na pangasiwaan ang mga sitwasyon sa muling paggamit ng PID upang mas tumpak na matukoy ang mga prosesong nag-a-access sa mga sinusubaybayang file (ang pidfd ay nauugnay sa isang partikular na proseso at hindi nagbabago, habang ang PID ay maaaring ilakip sa isa pang proseso pagkatapos ng proseso). kasalukuyang proseso na nauugnay dito PID).

Bukod diyan, nasa Linux din ang process_madvise()Na nagbibigay-daan sa isang proseso na magsagawa ng madvise() system call sa ngalan ng isa pang proseso, pagtukoy sa target na proseso gamit ang pidfd. Sa pamamagitan ng madvise(), maaari mong ipaalam sa kernel ang tungkol sa mga katangian ng pagtatrabaho sa memorya upang ma-optimize ang memory management ng proseso, halimbawa, batay sa naipasa na impormasyon, ang kernel ay maaaring magsimulang maglabas ng karagdagang libreng memorya.

Napansin din na idinagdag ang function process_mrelease(), na nagbibigay-daan sa iyong pabilisin ang paglabas ng memorya para sa isang proseso na magtatapos sa pagpapatupad nito. Sa ilalim ng normal na mga pangyayari, ang paglabas ng mapagkukunan at pagwawakas ng proseso ay hindi kaagad at maaaring maantala sa iba't ibang dahilan, na nakakasagabal sa mga sistema ng maagang babala sa espasyo ng gumagamit gaya ng oomd (na ibinigay ng systemd). Sa pamamagitan ng pagtawag sa process_mrelease, ang mga system na ito ay mas mahuhulaan na makapagsimula ng mga pagkuha ng memorya para sa mga prosesong sapilitang winakasan.

Sa kabilang banda, nabanggit na ito ay idinagdag suporta para sa "no-aaaa" na opsyon sa pinagsamang pagpapatupad ng Resolusyon ng DNS, na nagbibigay-daan sa iyong huwag paganahin ang pagpapadala ng mga kahilingan sa DNS para sa mga tala ng AAAA (pagtukoy ng IPv6 address sa pamamagitan ng hostname), kahit na nagpapatakbo ng mga function ng NSS tulad ng getaddrinfo(), upang pasimplehin ang pag-troubleshoot. Ang opsyong ito ay hindi makakaapekto sa paghawak ng IPv6 address bindings na tinukoy sa /etc/hosts at mga tawag sa getaddrinfo() gamit ang AI_PASSIVE flag.

Para sa Linux, idinagdag ang mga function fsopen, fsmount, move_mount, fsconfig, fspick, open_tree, at mount_setattr para magbigay ng access sa isang bagong kernel API para makontrol kung paano naka-mount ang mga file system batay sa mga mount namespace. Ang mga iminungkahing function ay nagbibigay-daan sa hiwalay na pagproseso ng iba't ibang mga hakbang sa pag-mount (pagproseso ng superblock, pagkuha ng impormasyon tungkol sa file system, pag-mount, pag-attach sa mount point), na dati ay isinagawa gamit ang karaniwang mount() function.

Ay naidagdag ang mga pagpapaandar arc4random, arc4random_buf at arc4random_uniform para magbigay ng mga binding sa system call kumuha ng random at ang interface / Dev / urandom, nagbabalik ng mataas na kalidad na pseudo-random na mga numero.

Kapag tumatakbo sa Linux, ibinibigay ang suporta para sa arkitektura. mula sa itinakdang tagubilin LoongArch ginamit sa Loongson 3 5000 na mga processor at isang bagong RISC ISA na katulad ng MIPS at RISC-V ang ipinatupad. Sa kasalukuyang anyo nito, compatibility lang ang available na may 64-bit na variant mula sa LoongArch (LA64). Nangangailangan ito ng hindi bababa sa binutils 2.38, GCC 12, at Linux kernel 5.19 upang tumakbo.

Sa iba pang mga pagbabago na namumukod-tangi:

  • Ang mekanismo ng prelinking, pati na rin ang nauugnay na LD_TRACE_PRELINKING at LD_USE_LOAD_BIAS na mga variable ng kapaligiran at mga feature ng linker, ay hindi na ginagamit at aalisin sa isang release sa hinaharap.
  • Inalis ang code upang suriin ang bersyon ng kernel ng Linux at pangasiwaan ang LD_ASSUME_KERNEL na environment variable. Ang minimum na bersyon ng kernel na sinusuportahan kapag kino-compile ang Glibc ay tinutukoy ng ELF field na NT_GNU_ABI_TAG.
  • Ang LD_LIBRARY_VERSION na environment variable ay hindi na ginagamit sa Linux platform.

Panghuli, kung interesado kang malaman ang tungkol dito, maaari kang kumunsulta sa mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.