Glibc 2.36 sistemaren liburutegiaren bertsioa

Sei hilabeteko garapenaren ondoren, GNU C Library (glibc) 2.36 sistemaren liburutegia kaleratu da, ISO C11 eta POSIX.1-2017 estandarren eskakizunak guztiz betetzen dituena. Bertsio berriak 59 garatzaileren konponketak biltzen ditu.

Glibc 2.36-n inplementatutako hobekuntza batzuk honako hauek dira:

  • DT_RELR (deslokazio erlatiboa) helbideak lekualdatzeko formatu berrirako euskarria gehitu da, PIE moduan (Posizio-independente exekutagarriak) moduan estekatutako objektu partekatuetan eta fitxategi exekutagarrietan lekualdatze erlatiboen tamaina murrizteko aukera ematen duena. ELF fitxategietan DT_RELR eremua erabiltzeak estekatzailean "-z pack-relative-relocs" aukeraren laguntza behar du, binutils 2.38 bertsioan sartutakoa.
  • Linux plataformarako, pidfd_open, pidfd_getfd eta pidfd_send_signal funtzioak inplementatzen dira, PID berrerabilpen-egoerak kudeatzen laguntzen duten pidfd funtzionalitaterako sarbidea emanez, kontrolatutako fitxategietara sartzen diren prozesuak zehaztasun handiagoz identifikatzeko (pidfd prozesu zehatz batekin lotuta dago eta ez da aldatzen, eta PID beste prozesu bati atxikita egon PID horrekin lotutako uneko prozesua amaitu ondoren).
  • Linux plataformarako, process_madvise() funtzioa gehitu da prozesu bati madvise() sistemaren deia beste prozesu baten izenean igortzeko, xede-prozesua pidfd erabiliz identifikatuz. Madvise(ren bidez), nukleoari memoriarekin lan egiteko ezaugarrien berri eman diezaiokezu prozesuen memoriaren kudeaketa optimizatzeko; adibidez, transmititutako informazioan oinarrituta, nukleoak doako memoria gehigarria askatzea abiarazi dezake. Madvise()-ra dei bat behar da beste prozesu baten bidez optimizatzeko behar den informazioa uneko prozesuak ezezaguna den egoera batean, baina atzeko planoko kontrol-prozesu bereizi batek koordinatzen duen egoera batean, erabili gabeko memoria prozesuetatik kentzen hasteko modu independentean.
  • Linux plataformarako, process_mrelease() funtzioa gehitu da, exekutatzen amaitzen ari den prozesu baterako memoriaren askapena bizkortzeko aukera ematen duena. Egoera normaletan, baliabideak askatzea eta prozesua amaitzea ez dira berehalakoak eta hainbat arrazoirengatik atzeratu egin daitezke, erabiltzaile-espazioko memoriako erantzun goiztiarreko sistemak oztopatzen baitituzte, hala nola oomd (systemd-ek emandakoa). process_mrelease deituz, sistema horiek modu aurreikuspen handiagoan eragin dezakete behartutako prozesuetatik memoria berreskuratzea.
  • "No-aaaa" aukeraren laguntza gehitu da DNS konpontzailearen inplementazio integratuan, eta horri esker, AAAA erregistroetarako DNS eskaerak bidaltzea desgai dezakezu (ostalari-izenaren arabera IPv6 helbidea zehaztea), NSS exekutatzen denean barne. getaddrinfo() bezalako funtzioak, arazoen diagnostikoa errazteko. Aukera honek ez du eragiten /etc/hosts-en definitutako IPv6 helbide-loturen prozesamenduan eta getaddrinfo()-ra deietan AI_PASSIVE banderarekin.
  • Linux plataformarako, fsopen, fsmount, move_mount, fsconfig, fspick, open_tree eta mount_setattr funtzioak gehitu dira, kernel API berri baterako sarbidea emanez fitxategi-sistemaren muntaketa kudeatzeko muntaketa-izenen espazioetan oinarrituta. Proposatutako funtzioek muntatze-etapa desberdinak bereizita prozesatzeko aukera ematen dute (superblokea prozesatu, fitxategi-sistemari buruzko informazioa lortu, muntatu, muntatze-puntuan erantsi), aurretik mount() funtzio komuna erabiliz egiten zirenak. Funtzio bereiziek muntatze agertoki konplexuagoak egiteko eta bereizita eragiketak egiteko gaitasuna eskaintzen dute, hala nola superblokea birkonfiguratzea, aukerak gaitzea, muntatze-puntua aldatzea eta beste izen-espazio batera mugitzea. Horrez gain, prozesamendu bereiziak errore-kodeen irteeraren arrazoiak zehaztasunez zehazteko eta geruza anitzeko fitxategi-sistemetarako hainbat iturri ezartzeko aukera ematen du, hala nola overlayfs.
  • localedef-ek ASCIIren ordez UTF-8 kodeketarekin emandako lokalizazio definizio fitxategiak prozesatzeko laguntza eskaintzen du.
  • Funtzioak gehitu dira byte anitzeko mbrtoc8 eta c8rtomb kodeketak ISO C2X N2653 eta C++20 P0482R6 zehaztapenetara bihurtzeko.
  • ISO C8X N2 arau zirriborroan definitutako char2653_t motarako euskarria gehitu da.
  • Arc4random, arc4random_buf eta arc4random_uniform funtzioak gehitu dira, getrandom sistema-deian eta /dev/urandom interfazean kalitate handiko pseudoausazko zenbakiak itzultzen dituztenak.
  • Linux plataforman exekutatzen denean, LoongArch instrukzio-multzoaren arkitektura onartzen du Loongson 3 5000 prozesadoreetan eta RISC ISA berria inplementatzen du, MIPS eta RISC-V-en antzekoa. Oraingo moduan, LoongArch-en (LA64) 64 biteko bertsiorako euskarria bakarrik dago eskuragarri. Lan egiteko, gutxienez binutils 2.38, GCC 12 eta Linux kernel 5.19 bertsioak behar dituzu.
  • Esteka aurreko mekanismoa, baita lotutako LD_TRACE_PRELINKING eta LD_USE_LOAD_BIAS ingurune-aldagaiak eta estekatzaile-gaitasunak zaharkituta geratu dira eta etorkizuneko bertsio batean kenduko dira.
  • Linux kernelaren bertsioa egiaztatzeko eta LD_ASSUME_KERNEL ingurune-aldagaia kudeatzeko kodea kendu da. Glibc eraikitzerakoan onartzen den nukleoaren gutxieneko bertsioa NT_GNU_ABI_TAG ELF eremuaren bidez zehazten da.
  • LD_LIBRARY_VERSION ingurune-aldagaia eten egin da Linux plataforman.

Iturria: opennet.ru

Gehitu iruzkin berria