Linux kernelaren bertsioa 6.3

Bi hilabeteko garapenaren ondoren, Linus Torvaldsek Linux kernelaren 6.3 oharra aurkeztu zuen. Aldaketa aipagarrienen artean: ARM plataformen eta kontrolatzaile grafikoen garbiketa, Rust hizkuntzaren euskarriaren integrazio jarraitua, hwnoise utilitatea, zuhaitz gorri-beltzeko egiturak BPF-n, BIG TCP modua IPv4rako, Dhrystone benchmark integratua, desgaitzeko gaitasuna. memfd-en exekuzioa, BPF erabiliz HID kontrolatzaileak sortzeko laguntza, Btrfs-en aldaketak egin dira bloke-taldeen zatiketa murrizteko.

Bertsio berriak 15637 garatzaileren 2055 konponketa biltzen ditu; adabakiaren tamaina - 76 MB (aldaketak 14296 fitxategiri eragin die, 1023183 kode lerro gehitu dira, 883103 lerro ezabatu). Alderatuz, aurreko bertsioak 16843 garatzaileren 2178 konponketa eskaini zituen; adabakiaren tamaina 62 MB da. 39 nukleoan sartutako aldaketa guztien % 6.3 inguru gailu kontrolatzaileei dagozkie, aldaketen % 15 gutxi gorabehera hardware-arkitekturaren berariazko kodea eguneratzeari dagozkio, % 10 sare-pilari dagozkio, % 5 fitxategi-sistemei dagokie eta. %3 nukleo barneko azpisistemekin lotuta dago.

Berrikuntza nagusiak 6.3 nukleoan:

  • Memoria eta sistema zerbitzuak
    • ARM plaka zahar eta erabili gabekoekin lotutako kodea garbiketa esanguratsua egin zen, eta horrek nukleoaren iturburu-kodearen tamaina 150 mila lerrotan murriztea ahalbidetu zuen. 40 ARM plataforma zahar baino gehiago kendu dira.
    • HID (Human Interface Device) interfazea duten sarrerako gailuetarako kontrolatzaileak sortzeko gaitasuna, BPF programen moduan inplementatuta, ezarri da.
    • Rust-for-Linux adarreko funtzionalitate gehigarrien transferentzia jarraitu da Rust hizkuntza bigarren hizkuntza gisa kontrolatzaileak eta kernel-moduluak garatzeko. Rust-en euskarria ez dago lehenespenez gaituta, eta ez du eragiten Rust nukleoa eraikitzeko beharrezko mendekotasun gisa sartzea. Aurreko bertsioetan eskainitako funtzionalitateak Arc (erreferentzia-zenbaketa duten erakusleen inplementazioa), ScopeGuard (esparrutik kanpo ateratzean garbiketa) eta ForeignOwnable (erakusleak C eta Rust kodearen arteko mugimenduak eskaintzen ditu) motak onartzen ditu. 'Maleguan' modulua ('Cow' mota eta 'ToOwned' ezaugarria) 'alloc' paketetik kendu da. Kontuan izan da Rust-en euskarriaren egoera nukleoan Rust-en idatzitako lehen moduluak nukleoan onartzen hasteko gertu dagoela jada.
    • Erabiltzaile-moduko Linux-ek (kernel-a erabiltzaile-prozesu gisa exekutatzen du) x86-64 sistemetan Rust hizkuntzan idatzitako kodea onartzen du. Erabiltzaile moduko Linux eraikitzeko laguntza gehitu da clang erabiliz esteka-denboraren optimizazioak (LTO) gaituta.
    • Hwnoise utilitatea gehitu da hardwareak eragindako atzerapenak jarraitzeko. Eragiketen exekuzio-denboraren desbideratzeak (jitter) etenen prozesamendua desgaituta dagoenean zehazten dira, kalkuluetako 10 minutuko mikrosegundo bat baino gehiagoz.
    • Dhrystone erreferentea inplementatzen duen nukleo-modulu bat gehitu da, zeina PUZaren errendimendua ebaluatzeko erabil daitekeen erabiltzaile-espazioko osagairik gabeko konfigurazioetan (adibidez, nukleoaren kargatzea soilik ezartzen duten SoC berrien porturatzeko fasean).
    • Nukleoko komando-lerroko parametroa gehitu da "cgroup.memory=nobpf", BPF programen memoria-kontsumoaren kontabilitatea desgaitzen duena, edukiontzi isolatuak dituzten sistemetarako erabilgarria izan daitekeena.
    • BPF programetarako, zuhaitz gorri-beltza datu-egituraren inplementazioa proposatzen da, zeinak kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) erabiltzen dituen kartografia mota berri bat gehitu beharrean.
    • Sekuentzia berrabiagarrien mekanismoak (rseq, sekuentzia berrabiagarri) prozesuetara exekuzio-identifikatzaileak paraleloen (memory-map concurrent ID) transferitzeko gaitasuna gehitu du, PUZaren zenbakiarekin identifikatuta. Rseq-ek eragiketak atomikoki azkar exekutatzeko bitarteko bat eskaintzen du, beste hari batek eteten badu garbitu eta berriro saiatuko dira.
    • ARM prozesadoreek SME 2 (Scalable Matrix Extension) argibideak onartzen dituzte.
    • s390x eta RISC-V RV64 arkitekturetarako, "BPF ohe elastikoen" mekanismoaren euskarria ezarri da, eta horrek kostuak gutxitzea ahalbidetzen du nukleoaren eta BPF programen arteko deiak transferitzean.
    • RISC-V arkitekturan oinarritutako prozesadoreak dituzten sistemetan, "ZBB" instrukzioen erabilera ezartzen da kateen eragiketak bizkortzeko.
    • LoongArch instrukzio-multzoaren arkitekturan oinarritutako sistemetarako (Loongson 3 5000 prozesadoreetan erabiltzen dena eta RISC ISA berria inplementatzen duena, MIPS eta RISC-V-en antzekoa), nukleoaren helbide-espazioen aleatorizaziorako (KASLR) euskarria, nukleoaren memoria-kokapenean aldaketak (lekualdatzea). ), hardware-puntuak stop eta kprobe mekanismoa ezartzen da.
    • DAMOS (Data Access Monitoring-based Operation Schemes) mekanismoak, memoria atzitzeko maiztasunaren arabera memoria askatzeko aukera ematen duena, iragazkiak onartzen ditu memoria-eremu jakin batzuk DAMOS-en prozesatzetik baztertzeko.
    • Nolibc gutxieneko C liburutegi estandarrak s390 arkitekturarako eta Arm Thumb1 instrukzio-multzorako laguntza eskaintzen du (ARM, AArch64, i386, x86_64, RISC-V eta MIPS) laguntzaz gain.
    • Objtool optimizatu da nukleoaren muntaketa bizkortzeko eta muntaian zehar memoria-kontsumo gailurra murrizteko (nukleoa "allyesconfig" moduan eraikitzen denean, orain ez dago arazorik 32 GB RAM duten sistemetan prozesuak eteteko behartuta).
    • Intel ICC konpiladoreak nukleoa muntatzeko euskarria eten egin da, denbora luzez funtzionatzen ez duena eta inork ez du konpontzeko gogorik adierazi.
  • Disko azpisistema, I/O eta fitxategi sistemak
    • tmpfs-ek muntatutako fitxategi-sistemen erabiltzaile IDak mapatzeko laguntza ezartzen du, muntatutako atzerriko partizio batean erabiltzaile jakin baten fitxategiak uneko sistemako beste erabiltzaile batekin lotzeko erabiltzen dena.
    • Btrfs-en, bloke-taldeen zatiketa murrizteko, hedadurak tamainaren arabera banatzen dira blokeak esleitzerakoan, hau da. edozein bloke talde txikia (128KB arte), ertaina (8 MB arte) eta neurri handietara mugatzen da orain. Raid56 ezarpena birfaktorizatu da. Checksumak egiaztatzeko kodea berritu egin da. Errendimenduaren optimizazioak bidalketa eragiketa 10 aldiz bizkortzeko egin dira direktorioetarako utime cachean eta komandoak beharrezkoa denean soilik exekutatuz. Fiemap eragiketak hiru aldiz azkarragoak dira partekatutako datuen atzeko esteken egiaztapenak (instantaneak) saltatuta. Metadatuak dituzten eragiketak %10 azkartu dira b-zuhaitz egituretan gakoen bilaketa optimizatuz.
    • Ext4 fitxategi-sistemaren errendimendua hobetu da, hainbat prozesuk aldi berean zuzeneko I/O eragiketak egiteko aukera emanez aurrez esleitutako blokeetan partekatutako inodoen blokeoak erabiliz blokeo esklusiboen ordez.
    • f2fs-en, kodearen irakurgarritasuna hobetzeko lana egin da. Idazkera atomikoekin eta hedadura-cache berriarekin lotutako arazo garrantzitsuak konpondu ditu.
    • EROFS (Enhanced Read-Only File System) fitxategi-sistemak, irakurtzeko soilik partizioetan erabiltzeko diseinatua, konprimitutako fitxategien edukien deskonpresio-eragiketak CPUra lotzeko gaitasuna ezartzen du, datuak atzitzerakoan latentzia murrizteko.
    • BFQ I/O programatzaileak laguntza gehitu du biratze-unitate aurreratuetarako, hala nola, banan-banan kontrolatutako buru-unitate anitz (Multi Aktuators) erabiltzen dituztenentzat.
    • NFS bezero eta zerbitzariaren inplementazioari AES-SHA2 algoritmoa erabiliz datuak enkriptatzeko laguntza gehitu zaio.
    • FUSE (Filesystems In User Space) azpisisteman kontsultak zabaltzeko mekanismoaren euskarria gehitu da, kontsultan informazio gehigarria jartzeko aukera emanez. Ezaugarri honetan oinarrituta, talde-identifikatzaileak gehi daitezke FS eskaerari, beharrezkoak direnak FSn objektuak sortzean sarbide-eskubideak kontuan hartzeko (create, mkdir, simlink, mknod).
  • Birtualizazioa eta segurtasuna
    • X86 sistemetarako KVM hipervisoreak Hyper-V hedatutako hiperdeietarako laguntza gehitu du eta erabiltzaileen espazioan ostalari ingurunean exekutatzen den kudeatzaile bati birbidaltzea eman du. Aldaketari esker, Hyper-V hipervisorearen abiarazteko laguntza ezartzea posible izan zen.
    • KVM-k errendimenduaren neurketarekin erlazionatutako PMU (Performance Monitor Unit) gertaeretara gonbidatuen sarbidea mugatzea errazten du.
    • Prozesuen artean transferitutako fitxategi deskribatzaile baten bidez memoria-eremu bat identifikatzea ahalbidetzen duen memfd mekanismoak kodearen exekuzioa debekatuta dagoen eremuak sortzeko aukera gehitu du (memfd ez-exekutagarria) eta etorkizunean exekuzio-eskubideak ezartzea ezinezkoa da. .
    • PR_SET_MDWE prctl eragiketa berri bat gehitu da, aldi berean idazketa eta exekuzioa ahalbidetzen duten memoria atzitzeko eskubideak gaitzeko saiakerak blokeatzen dituena.
    • Spectre klaseko erasoen aurkako babesa lehenespenez gehitu eta gaitu da, AMD Zen 4 prozesadoreetan proposatzen den IBRS (Enhanced Indirect Branch Restricted Speculation) modu automatikoan oinarrituta, eta horri esker, modu moldagarrian baimendu eta desgaitu argibideen exekuzio espekulatiboa eten prozesatzen, sistema-deiak eta testuinguru-aldaketak. Proposatutako babesaren ondorioz, gainkostua txikiagoa da Retpoline babesarekin alderatuta.
    • Spectre v2 erasoen aurkako babesa saihestea ahalbidetzen duen ahultasun bat konpondu da hari anitzeko teknologia aldi berean (SMT edo Hyper-Threading) erabiltzean eta STIBP (Single Thread Indirect Branch Predictors) mekanismoa desgaitzeak eragindakoa IBRS babes modua hautatzean.
    • ARM64 arkitekturan oinarritutako sistemetan, "virtconfig" muntaketa-helburu berri bat gehitu da, hautatzen denean, birtualizazio sistemetan abiarazteko beharrezkoak diren kernel-osagaien gutxieneko multzoa soilik aktibatzen da.
    • M68k arkitekturarako, sistema-deiak seccomp mekanismoa erabiliz iragazteko laguntza gehitu da.
    • AMD Ryzen prozesadoreetan integratutako CRB TPM2 (Command Response Buffer) gailuetarako laguntza gehitu da, Microsoft Pluton teknologian oinarrituta.
  • Sarearen azpisistema
    • Netlink interfaze bat gehitu da PLCA (Physical Layer Collision Avoidance) azpigeruza konfiguratzeko, IEEE 802.3cg-2019 zehaztapenean definitu eta 802.3cg (10Base-T1S) Ethernet sareetan erabiltzen dena Gauzen Interneten gailuak eta sistema industrialak konektatzeko optimizatuta. PLCA erabiltzeak errendimendua hobetzen du partekatutako euskarria duten Ethernet sareetan.
    • WiFi 7 (802.11be) haririk gabeko interfazeak kudeatzeko "haririk gabeko luzapenak" APIrako laguntza eten egin da, API honek ez dituelako beharrezko ezarpen guztiak estaltzen. "Haririk gabeko luzapenak" APIa erabiltzen saiatzean, geruza emulatu gisa onartzen jarraitzen duena, abisu bat bistaratuko da orain egungo gailu gehienentzat.
    • Netlink APIari buruzko dokumentazio zehatza prestatu da (oinarrizko garatzaileentzat eta erabiltzaile-espazioko aplikazioen garatzaileentzat). Netlink protokoloaren YAML zehaztapenetan oinarrituta C kodea sortzeko ynl-gen-c utilitatea ezarri da.
    • IP_LOCAL_PORT_RANGE aukeraren laguntza gehitu da sareko socketetan irteerako konexioen konfigurazioa errazteko helbide-itzultzaileen bidez, SNAT erabili gabe. Hainbat ostalaritan IP helbide bat erabiltzean, IP_LOCAL_PORT_RANGE-k ostalari bakoitzean irteerako sare-atalen sorta desberdina erabiltzea ahalbidetzen du, eta atebideko ataka-zenbakietan oinarritutako paketeak birbidaltzea.
    • MPTCPrako (MultiPath TCP), korronte mistoak IPv4 eta IPv6 protokoloak erabiliz prozesatzeko gaitasuna ezarri da. MPTCP TCP protokoloaren luzapena da, TCP konexio baten funtzionamendua antolatzeko, paketeak aldi berean bidaltzeko hainbat ibilbidetan zehar IP helbide ezberdinekin lotutako sare-interfaze ezberdinen bidez.
    • IPv4rako, BIG TCP luzapena erabil daiteke, TCP paketeen gehienezko tamaina 4GBra handitzeko aukera ematen duena, abiadura handiko barneko datu-zentro sareen funtzionamendua optimizatzeko. 16 biteko goiburuko eremuaren tamaina duen paketeen tamaina antzeko handitzea lortzen da "jumbo" paketeen ezarpenaren bidez, zeinen IP goiburuko tamaina 0-n ezarrita dagoen eta benetako tamaina 32 biteko bereizi batean transmititzen da. eremua erantsitako goiburu bereizi batean.
    • sysctl parametro berria default_rps_mask gehitu da, zeinaren bidez RPS (Paketeen Gidatze) konfigurazio lehenetsia ezar dezakezu, hau da, sarrerako trafikoaren prozesamendua CPU nukleoetan eten kudeatzaile mailan banatzeaz arduratzen dena.
    • Ilarak prozesatzeko diziplinen laguntza CBQ (klaseetan oinarritutako ilaran), ATM (ATM zirkuitu birtualak), dsmark (zerbitzuen marka bereizia), tcindex (trafiko-kontrol-indizea) eta RSVP (baliabideen erreserba-protokoloa) trafikoa mugatzeko laguntza eten egin da. Diziplina hauek denbora luzez alde batera utzita egon dira eta ez zegoen inor laguntzarekin jarraitzeko prest.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • DRI1 oinarritutako kontrolatzaile grafiko guztiak kendu ditu: i810 (Intel 8xx txartel grafiko integratu zaharragoak), mga (Matrox GPU), r128 (ATI Rage 128 GPU, Rage Fury, XPERT 99 eta XPERT 128 txartelak barne), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) eta bidez (VIA IGP), 2016an zaharkituta zeuden eta 2012az geroztik Mesan onartzen ez direnak.
    • Oinarrizko framebuffer kontrolatzaileak (fbdev) omap1, s3c2410, tmiofb eta w100fb kendu dira.
    • Intel Meteor Lake CPUan (14. belaunaldia) integratuta dauden VPU (Versatile Processing Unit) unitateetarako DRM kontrolatzailea gehitu da, ordenagailuaren ikusmenarekin eta ikaskuntza automatikoarekin lotutako eragiketak bizkortzeko diseinatua. Gidaria "accel" azpisistema erabiliz inplementatzen da, azeleragailu konputazionalei euskarria eskaintzera zuzenduta, ASIC indibidual moduan edo SoC eta GPU barruan IP bloke gisa eman daitezkeenak.
    • i915 (Intel) kontrolatzaileak Intel Arc (DG2/Alchemist) txartel grafiko diskretuen laguntza zabaltzen du, Meteor Lake GPUetarako aurretiazko euskarria eskaintzen du eta Intel Xe HP 4tile GPUetarako laguntza eskaintzen du.
    • Amdgpu kontrolatzaileak AdaptiveSync teknologiarako euskarria gehitzen du eta pantaila anitzekin Secure Display modua erabiltzeko gaitasuna gehitzen du. DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x eta DP 2.1-en euskarria eguneratua.
    • msm kontrolatzaileak (Qualcomm Adreno GPU) SM8350, SM8450 SM8550, SDM845 eta SC8280XP plataformetarako laguntza gehitu du.
    • Nouveau kontrolatzaileak jada ez ditu ioctl dei zaharrak onartzen.
    • NPU VerSilicon (VeriSilicon Neural Network Processor) laguntza esperimentala gehitu da etnaviv kontrolatzaileari.
    • Pata_parport kontrolatzailea ataka paralelo baten bidez konektatuta dauden IDE unitateetarako inplementatu da. Gehitutako kontrolatzaileak PARIDE kontrolatzaile zaharra nukleotik kentzeko eta ATA azpisistema modernizatzeko aukera eman zigun. Gidari berriaren muga bat ataka paraleloaren bidez inprimagailu bat eta disko bat aldi berean konektatzeko ezintasuna da.
    • Wi-Fi 12 onartzen duten Qualcomm txipetan haririk gabeko txartelen ath7k kontrolatzailea gehitu da. RealTek RTL8188EU txipetan haririk gabeko txartelen euskarria gehitu da.
    • ARM46 arkitekturan oinarritutako prozesadoredun 64 plaketarako laguntza gehitu da, Samsung Galaxy tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD eta Halaber /AM8953 610/ AM8550 /AM8).

Aldi berean, Latin American Free Software Foundation-ek guztiz doako 6.3 nukleoaren bertsio bat osatu zuen - Linux-libre 6.3-gnu, askeak ez diren osagaiak edo kode-atalak dituzten firmwareko elementuak eta kontrolatzaileak garbitu zituena, zeinaren esparrua baita. fabrikatzaileak mugatuta. 6.3 bertsioan, blobak garbitu ziren ath12k, aw88395 eta peb2466 kontrolatzaile berrietan, baita AArch64 arkitekturan oinarritutako qcom gailuentzako devicetree fitxategi berrietan ere. Blob garbiketa-kode eguneratua amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110 kontrolatzaile eta azpisistemetan, baita software deskodeketa duten DVB txartelen kontrolatzaileetan eta aurrez konpilatutako BPF fitxategietan ere. mga, r128, tm6000, cpia2 eta r8188eu kontrolatzaileen garbiketa gelditu egin da nukleotik kendu direnetik. Hobetua i915 gidariaren blob garbiketa.

Iturria: opennet.ru

Gehitu iruzkin berria