Linux kernelaren bertsioa 6.2

Bi hilabeteko garapenaren ondoren, Linus Torvaldsek Linux kernel 6.2 oharra aurkeztu zuen. Aldaketa aipagarrienen artean: Copyleft-Next lizentziapean kodea onartzea onartzen da, RAID5/6 Btrfs-en inplementazioa hobetzen da, Rust hizkuntzarako euskarriaren integrazioa jarraitzen du, Retbleed-en erasoetatik babesteko kostua murrizten da, idazketan zehar memoria-kontsumoa erregulatzeko gaitasuna gehitzen da, TCP orekatzeko mekanismo bat gehitzen da PLB (Protective Load Balancing), komando-fluxuaren babeserako mekanismo hibrido bat (FineIBT) gehitu da, BPF-k orain bere objektuak eta datu-egiturak definitzeko gaitasuna du. , rv (Runtime Verification) utilitatea barne hartzen da, RCU blokeoen ezarpenean energia-kontsumoa murriztu da.

Bertsio berriak 16843 garatzaileren 2178 konponketa biltzen ditu, adabakiaren tamaina 62 MBkoa da (aldaketek 14108 fitxategiri eragin zioten, 730195 kode lerro gehitu ziren, 409485 lerro ezabatu ziren). 42-n sartutako aldaketa guztien % 6.2 inguru gailu kontrolatzaileei dagozkie, aldaketen % 16 gutxi gorabehera hardware-arkitekturen berariazko kodea eguneratzeari dagozkio, % 12 sare-pilari dagokio, % 4 fitxategi-sistemei dagokie eta % 3. nukleo barneko azpisistemekin lotuta daude.

Berrikuntza nagusiak 6.2 nukleoan:

  • Memoria eta sistema zerbitzuak
    • Nukleoaren kodean eta Copyleft-Next 0.3.1 lizentziapean emandako aldaketak sartzea onartzen da. Copyleft-Next lizentzia GPLv3-ren egileetako batek sortu zuen eta guztiz bateragarria da GPLv2 lizentziarekin, SUSE eta Red Hat-eko abokatuek baieztatu dutenez. GPLv2-rekin alderatuta, Copyleft-Next lizentzia askoz trinkoagoa eta ulertzeko errazagoa da (sarrera-zatia eta konpromiso zaharkituen aipamena kendu dira), urraketak ezabatzeko denbora-tartea eta prozedura zehazten ditu eta automatikoki kentzen ditu zaharkitutako softwarerako copyleft-en eskakizunak. 15 urte baino gehiago ditu.

      Copyleft-Next-ek jabedun teknologiaren esleipen klausula bat ere badu, eta horrek, GPLv2 ez bezala, lizentzia hau Apache 2.0 lizentziarekin bateragarria egiten du. GPLv2-rekin erabateko bateragarritasuna ziurtatzeko, Copyleft-Next-ek esplizituki dio GPL lizentziarekin batera lan eratorri bat eman daitekeela jatorrizko Copyleft-Next lizentziaz gain.

    • Egiturak "rv" utilitatea barne hartzen du, erabiltzaile-espaziotik RV (Runtime Verification) azpisistemako kudeatzaileekin elkarrekintzarako interfaze bat eskaintzen duena, hutsegiterik ez dagoela bermatzen duten sistema fidagarrietan funtzionamendu zuzena egiaztatzeko diseinatua. Egiaztapena exekuzioan egiten da kudeatzaileak erantsiz exekuzioaren benetako aurrerapena egiaztatzen duten traza-puntuei, sistemaren espero den portaera definitzen duen makinaren erreferentzia-eredu deterministiko aurrez zehaztu batekin.
    • zRAM gailuak, truke-partizioa memorian gordetzeko aukera ematen du forma konprimitu batean (memorian bloke-gailu bat sortzen da eta trukea konpresio bidez egiten den), orriak birpaketatzeko gaitasuna ezartzen du algoritmo alternatibo bat erabiliz maila handiagoa lortzeko. konpresioaren. Ideia nagusia hainbat algoritmoren artean aukeratzea da (lzo, lzo-rle, lz4, lz4hc, zstd), konpresio/deskonpresio abiadura eta konpresio mailaren arteko konpromiso propioak eskainiz, edo egoera berezietan optimoa (adibidez, handiak konprimitzeko. memoria orriak).
    • I/O memoria kudeatzeko sistema kudeatzeko "iommufd" APIa gehitu da - IOMMU (I/O Memory-Management Unit) erabiltzailearen espaziotik. API berriak I/O memoria orrien taulak fitxategi deskribatzaileak erabiliz kudeatzea ahalbidetzen du.
    • BPF-k motak sortzeko, zure objektuak definitzeko, zure objektuen hierarkia eraikitzeko eta malgutasunez zure datu-egiturak sortzeko gaitasuna eskaintzen du, hala nola estekatutako zerrendak. Lo modura doazen BPF programetarako (BPF_F_SLEEPABLE), bpf_rcu_read_{,un}lock() blokeoetarako laguntza gehitu da. task_struct objektuak gordetzeko euskarria inplementatu da. BPF_MAP_TYPE_CGRP_STORAGE mapa mota gehitu da, cgroups tokiko biltegiratzea eskainiz.
    • RCU (Irakurri-kopia-eguneratzea) blokeatzeko mekanismorako, "alferra" itzulera-deien aukerako mekanismo bat ezartzen da, zeinean hainbat dei itzultzeko aldi berean prozesatzen diren tenporizadorea erabiliz batch moduan. Proposatutako optimizazioaren aplikazioak Android eta ChromeOS gailuetan energia-kontsumoa % 5-10 murrizteko aukera ematen digu, inaktibo garaietan edo sistemaren karga baxuan RCU eskaerak atzeratuz.
    • Sysctl split_lock_mitigate gehitu da sistemak nola erreakzionatzen duen kontrolatzeko memorian lerrokatu gabeko datuetara sartzean gertatzen diren blokeo zatituak detektatzen dituenean, instrukzio atomiko bat exekutatzen denean PUZaren cache-lerro bi zeharkatzen dituzten datuek. Horrelako blokeoek errendimenduaren beherakada nabarmena dakar. Split_lock_mitigate 0-an ezartzeak arazo bat dagoela ohartarazten du, split_lock_mitigate 1-ean ezarriz gero, blokeoa moteltzea eragin zuen prozesua sistemaren gainerako errendimendua mantentzeko.
    • PowerPC arkitekturarako qspinlock-en inplementazio berri bat proposatu da, eta horrek errendimendu handiagoa erakusten du eta aparteko kasuetan sortzen diren blokeo-arazo batzuk konpontzen ditu.
    • MSI (Message-Seinaled Interrupts) etenak kudeatzeko kodea berritu egin da, pilatutako arkitektura-arazoak ezabatuz eta kudeatzaile indibidualak gailu ezberdinetara lotzeko laguntza gehituz.
    • Loongson 3 5000 prozesadoreetan erabilitako eta RISC ISA berria inplementatzen duten LoongArch instrukzio-multzoaren arkitekturan oinarritutako sistemetarako, MIPS eta RISC-V-en antzera, ftrace, stack babesa, loa eta egonean moduak onartzen dira.
    • Partekatutako memoria anonimoko eremuei izenak esleitzeko gaitasuna eman da (lehen izenak prozesu zehatz bati esleitutako memoria anonimo pribatuari soilik eslei zitzaizkien).
    • Nukleoaren komando-lerroko parametro berria gehitu da "trace_trigger", kontrol-egiaztapena abiarazten denean deitutako baldintzazko komandoak lotzeko erabiltzen den traza-abiarazlea aktibatzeko diseinatua (adibidez, trace_trigger="sched_switch.stacktrace prev_state == 2β€³ bada).
    • binutils paketearen bertsioaren eskakizunak handitu egin dira. Nukleoa eraikitzeak gutxienez binutils 2.25 behar du.
    • Exec(ri) deitzean, prozesu bat denbora-izen-espazio batean jartzeko gaitasuna gehitu da, zeinetan denbora sistemaren ordutik desberdina den.
    • Rust-for-Linux adarreko funtzionalitate gehigarriak transferitzen hasi gara Rust hizkuntza bigarren hizkuntza gisa kontrolatzaileak eta kernel-moduluak garatzeko erabiltzearekin lotutakoa. Rust-en euskarria lehenespenez desgaituta dago eta ez du eragiten Rust kernelaren eraikuntzaren menpekotasun gisa sartzea. Azken bertsioan eskaintzen den oinarrizko funtzionalitatea maila baxuko kodea onartzeko hedatu da, hala nola, Vec mota eta pr_debug!(), pr_cont!() eta pr_alert!() makroak, baita "#[vtable" prozedurazko makroa ere. ]”, funtzioen erakusle-taulekin lan egitea errazten duena. Etorkizuneko argitalpenetan Rust-en goi-mailako loturak gehitzea espero da nukleoaren azpisistemen gainean, eta horrek Rust-en erabateko kontrolatzaileak sortzea ahalbidetuko du.
    • Nukleoan erabiltzen den "char" mota orain sinatu gabe deklaratzen da arkitektura guztietan lehenespenez.
    • Lauza memoria esleitzeko mekanismoa - SLOB (lauza esleitzailea), memoria kopuru txikia duten sistemetarako diseinatu zena, zaharkituta geratu da. SLOB-en ordez, baldintza normaletan SLUB edo SLAB erabiltzea gomendatzen da. Memoria txikia duten sistemetarako, SLUB SLUB_TINY moduan erabiltzea gomendatzen da.
  • Disko azpisistema, I/O eta fitxategi sistemak
    • Hobekuntzak egin dira Btrfs-en RAID 5/6 inplementazioetan "idazketa-zuloa" arazoa konpontzeko (RAID bat leheneratzeko saiakera bat idaztean hutsegite bat gertatzen bada eta ezinezkoa bada ulertzea zein bloketan zein RAID gailutan idatzi den zuzen). bloke suntsitzea ekar dezakeena, bermatutako blokeei dagozkienak). Gainera, orain SSDek automatikoki gaitzen dute baztertzeko eragiketa asinkronoa lehenespenez, ahal denean, errendimendua hobetzea ahalbidetuz, baztertzeko eragiketak ilaretan taldekatzea eta ilarak atzeko planoko prozesadore baten bidez prozesatzen direlako. Bidalketa eta lseek eragiketen errendimendua hobetu da, baita FIEMAP ioctl ere.
    • Idazketa geroratua kudeatzeko gaitasunak (idazketa, aldatutako datuen atzeko planoan gordetzea) bloke gailuetarako zabaldu dira. Zenbait egoeratan, esate baterako, sare blokeko gailuak edo USB unitateak erabiltzean, idazketa alferrak RAM kontsumo handia eragin dezake. Idazketa alferraren portaera kontrolatzeko eta orriaren cachearen tamaina muga batzuen barruan mantentzeko, strict_limit, min_bytes, max_bytes, min_ratio_fine eta max_ratio_fine parametro berriak sartu dira sysfs-en (/sys/class/bdi/).
    • F2FS fitxategi-sistemak ordezkatzeko ioctl eragiketa atomikoa ezartzen du, eta horrek fitxategi batean datuak idazteko aukera ematen du eragiketa atomiko bakar baten barruan. F2FS-k bloke hedaduraren cache bat ere gehitzen du, aktiboki erabilitako datuak edo denbora luzez atzitu ez diren datuak identifikatzen laguntzeko.
    • Ext4 fitxategi-sisteman, errore-zuzenketak bakarrik adierazten dira.
    • ntfs3 fitxategi-sistemak hainbat muntaketa-aukera berri eskaintzen ditu: "nocase" fitxategien eta direktorioen izenetan maiuskulak eta minuskulak bereiztea kontrolatzeko; windows_name Windows-erako balio ez duten karaktereak dituzten fitxategi-izenak sortzea debekatzeko; hide_dot_files ezkutuko fitxategiaren etiketaren esleipena kontrolatzeko, puntu batekin hasten diren fitxategietarako.
    • Squashfs fitxategi-sistemak "hariak=" muntatzeko aukera inplementatzen du, deskonpresio-eragiketak paralelizatzeko hari kopurua definitzeko aukera ematen duena. Squashfs-ek muntatutako fitxategi-sistemen erabiltzaile IDak mapatzeko gaitasuna ere aurkeztu zuen, muntatutako atzerriko partizio batean erabiltzaile jakin baten fitxategiak uneko sistemako beste erabiltzaile batekin lotzeko erabiltzen dena.
    • POSIX sarbide-kontrol-zerrenden (POSIX ACLs) inplementazioa berritu da. Inplementazio berriak arkitektura-arazoak ezabatzen ditu, kode-basearen mantentze-lanak errazten ditu eta datu mota seguruagoak sartzen ditu.
    • Fitxategien eta direktorioen enkriptazio gardenerako erabiltzen den fscrypt azpisistemak SM4 enkriptazio algoritmorako laguntza gehitu du (GB/T 32907-2016 estandar txinatarra).
    • Nukleoa NFSv2 euskarria gabe eraikitzeko gaitasuna eman da (etorkizunean NFSv2 euskarria guztiz uzteko asmoa dute).
    • NVMe gailuetarako sarbide-eskubideak egiaztatzeko antolaketa aldatu da. NVMe gailu batean irakurtzeko eta idazteko gaitasuna ematen du idazketa-prozesuak gailuaren fitxategi dedikaturako sarbidea badu (lehen prozesuak CAP_SYS_ADMIN baimena izan behar zuen).
    • CD/DVD paketeen kontrolatzailea kendu zuen, 2016an zaharkituta zegoena.
  • Birtualizazioa eta segurtasuna
    • Retbleed ahultasunaren aurkako babes metodo berri bat ezarri da Intel eta AMD CPUetan, deien sakoneraren jarraipena erabiliz, eta horrek ez du lana moteltzen lehenago Retbleed-en aurkako babesa bezainbeste. Modu berria gaitzeko, nukleoaren komando-lerroko parametroa proposatu da.
    • FineIBT instrukzio-fluxuaren babeserako mekanismo hibrido bat gehitu da, hardware Intel IBT (Indirect Branch Tracking) jarraibideen eta software babesaren kCFI (kernel Control Flow Integrity) konbinatuz, erabileraren ondorioz exekuzio-agindu normalaren (kontrol-fluxua) urratzea blokeatzeko. Funtzioetan memorian gordetako erakusleak aldatzen dituzten ustiapenak. FineIBT-k zeharkako jauzi bidez exekutatzeko aukera ematen du ENDBR instrukziora jauzi egiten denean bakarrik, funtzioaren hasieran jartzen dena. Gainera, kCFI mekanismoaren analogia eginez, hashak egiaztatzen dira erakusleen aldaezintasuna bermatzeko.
    • Murrizketak gehitu dira "oops" egoerak sortzea manipulatzen duten erasoak blokeatzeko, eta, ondoren, zeregin arazotsuak osatu eta egoera berrezartzen da sistema gelditu gabe. "Oops" egoerara dei-kopuru handiarekin, erreferentzia-kontagailuaren gainezkatzea gertatzen da (errefcount), eta horrek NULL erakusleen deserreferentziak eragindako ahuleziak ustiatzeko aukera ematen du. Eraso horien aurka babesteko, nukleoari muga bat gehitu zaio "oops" abiarazleen gehienezko kopuruarentzat, eta hori gainditu ondoren nukleoak "izua" egoerarako trantsizioa hasiko du eta ondoren berrabiaraziko du, eta horrek ez du baimenduko. Errekontaketa gainditzeko beharrezkoak diren iterazio kopurua. Lehenespenez, muga 10 mila "oops" gisa ezartzen da, baina nahi izanez gero, oops_limit parametroaren bidez alda daiteke.
    • LEGACY_TIOCSTI eta sysctl legacy_tiocsti konfigurazio-parametroak gehitu dira ioctl TIOCSTI erabiliz datuak terminalean sartzeko gaitasuna desgaitzeko, funtzionalitate hau terminaleko sarrerako bufferean karaktere arbitrarioak ordezkatzeko eta erabiltzailearen sarrera simulatzeko erabil baitaiteke.
    • Barne-egitura mota berri bat proposatzen da, encoded_page, zeinean erakuslearen beheko bitak erabiltzen diren erakuslearen ustekabeko deserreferentziaren aurka babesteko erabiltzen den informazio gehigarria gordetzeko (deserreferentzia benetan beharrezkoa bada, bit gehigarri horiek garbitu behar dira lehenik). .
    • ARM64 plataforman, abiarazte-fasean, posible da Shadow Stack mekanismoaren software inplementazioa gaitu edo desgaitu, hau da, pilako buffer gainezka dagoenean funtzio batetik itzulera helbidea gainidazteaz babesteko erabiltzen dena ( babesaren funtsa itzulera helbidea aparteko "itzal" pila batean gordetzea da, kontrola funtziora transferitu eta emandako helbidea berreskuratu ondoren funtziotik irten aurretik). Nukleo bakarrean Shadow Stack-en hardware eta software inplementazioetarako laguntzak ARM sistema desberdinetan nukleo bat erabiltzeko aukera ematen du, erakusleen autentifikaziorako argibideetarako laguntza edozein izanda ere. Softwarearen inplementazio bat sartzea kargatzean beharrezkoak diren argibideak kodean ordezkatuz egiten da.
    • Intel prozesadoreetan irteera asinkronoaren jakinarazpen-mekanismoa erabiltzeko laguntza gehitu da, SGX enklabeetan exekutatzen den kodean urrats bakarreko erasoak detektatzeko aukera ematen duena.
    • Hipervisoreari Intel TDX (Trusted Domain Extensions) sistema gonbidatuen eskaerak onartzen dituen eragiketa multzo bat proposatzen da.
    • Nukleoa eraikitzeko RANDOM_TRUST_BOOTLOADER eta RANDOM_TRUST_CPU ezarpenak kendu dira, dagozkien komando-lerroko aukeren alde: random.trust_bootloader eta random.trust_cpu.
    • Landlock mekanismoak, prozesu talde batek kanpoko ingurunearekin duen elkarrekintza mugatzeko aukera ematen duena, LANDLOCK_ACCESS_FS_TRUNCATE banderarako euskarria gehitu du, fitxategiak mozteko eragiketen exekuzioa kontrolatzeko aukera ematen duena.
  • Sarearen azpisistema
    • IPv6rako, PLB (Protective Load Balancing) euskarria gehitu da, sare-loturen arteko karga orekatzeko mekanismoa, datu-zentroko etengailuetan gainkarga puntuak murrizteko helburuarekin. IPv6 Fluxuaren Etiketa aldatuz, PLB-k ausaz aldatzen ditu paketeen bideak etengailuko ataketan karga orekatzeko. Paketeen berrantolaketa murrizteko, eragiketa hau inaktibo-aldien ondoren egiten da ahal den guztietan. Google datu-zentroetan PLB erabiltzeak etengailu-portuetako karga desoreka % 60 murriztu du batez beste, % 33 murriztu du pakete-galera eta latentzia % 20 murriztu du.
    • Wi-Fi 7 (802.11be) onartzen duten MediaTek gailuetarako kontrolatzailea gehitu da.
    • 800 gigabit esteketarako laguntza gehitu da.
    • Sareko interfazeak berehala aldatzeko gaitasuna gehitu da, lana gelditu gabe.
    • Paketea iritsi den IP helbidearen aipamena gehitu da SYN flood-ari buruzko erregistro-mezuetan.
    • UDPrako, sareko izen-espazio desberdinetarako hash taulak erabiltzeko gaitasuna ezarri da.
    • Sare-zubietarako, MAB (MAC Authentication Bypass) autentifikazio metodorako euskarria ezarri da.
    • CAN protokolorako (CAN_RAW), SO_MARK socket modurako euskarria ezarri da fwmark-en oinarritutako trafiko-iragazkiak eransteko.
    • ipset-ek bitmaskaren parametro berri bat ezartzen du, IP helbidean bit arbitrarioetan oinarritutako maskara ezartzeko aukera ematen duena (adibidez, "ipset create set1 hash:ip bitmask 255.128.255.0").
    • Tuneldun paketeen barneko goiburuak prozesatzeko laguntza gehitu da nf_tables-en.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • "accel" azpisistema gehitu da azeleragailu konputazionaletarako marko bat ezartzearekin batera, ASIC indibidual moduan edo SoC eta GPU barruko IP blokeen moduan eman daitekeena. Azeleragailu hauek, batez ere, ikaskuntza automatikoko arazoen konponbidea bizkortzera zuzenduta daude.
    • Amdgpu kontrolatzaileak GC, PSP, SMU eta NBIO IP osagaietarako euskarria dakar. ARM64 sistemetarako, DCN (Display Core Next) euskarria ezartzen da. Babestutako pantailaren irteeraren ezarpena DCN10 erabiltzetik DCN21era eraman da eta orain pantaila anitz konektatzean erabil daiteke.
    • i915 (Intel) kontrolatzaileak Intel Arc (DG2/Alchemist) bideo-txartel diskretuetarako euskarria egonkortu du.
    • Nouveau kontrolatzaileak Ampere arkitekturan oinarritutako NVIDIA GA102 (RTX 30) GPUak onartzen ditu. Nva3 (GT215) txarteletan, atzeko argia kontrolatzeko gaitasuna gehitu da.
    • Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) eta MediaTek MT7996 txipetan oinarritutako haririk gabeko egokitzaileentzako euskarria gehitu da, Broadcom BCM4377/4378/4387 Bluetooth interfazeetan, baita Motorcomm ytVIDIA yt8521GE kontroladorea ere.
    • HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 2022, i.MX93, Armada 38x, RK3588 ASoC (ALSA System on Chip) euskarria gehitu da. Focusrite Saffire Pro 40 audio-interfazearen euskarria gehitu da. Gehitu da Realtek RT1318 audio-kodeka.
    • Sony telefono eta tabletetarako laguntza gehitu da (Xperia 10 IV, 5 IV, X eta X compact, OnePlus One, 3, 3T eta Nord N100, Xiaomi Poco F1 eta Mi6, Huawei Watch, Google Pixel 3a, Samsung Galaxy Tab 4 10.1.
    • ARM SoC eta Apple T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon 460), SM6375 (Snapdragon 695), (Snapdragon 670), SM670 (Snapdragon 8976), 652) plakak , SDM8956 (Snapdragon 650), MSM3326 (Snapdragon 351), MSM310 (Snapdragon 8), RKXNUMX Odroid-Go/rgXNUMX, Zyxel NSAXNUMXS, InnoComm i.MXXNUMXMM, Odroid Go Ultra.

Aldi berean, Latin American Free Software Foundation-ek guztiz doako 6.2 nukleoaren bertsio bat sortu zuen - Linux-libre 6.2-gnu, jabedun osagaiak edo kode-atalak dituzten firmware-elementuetatik eta kontrolatzaileetatik garbituta, eta horren esparrua mugatuta dago. fabrikatzailea. Bertsio berriak nouveau kontrolatzailean kubo berriak garbitzen ditu. Blob kargatzea desgaituta dago mt7622, ​​​​mt7996 wifi eta bcm4377 bluetooth kontrolatzaileetan. Aarch64 arkitekturarako dts fitxategietan blob izenak garbitu dira. Blob garbiketa-kode eguneratua hainbat kontrolatzaile eta azpisistematan. s5k4ecgx kontrolatzailea garbitzeari utzi zion, nukleotik kendu baitzen.

Iturria: opennet.ru

Gehitu iruzkin berria