Pärast kahte kuud arendust Linus Torvalds esitles ydinversioon Linux 7.0. Kõige märgatavamad muutused on: AI-assistentide kasutamise reeglid, Rust'i üleviimine põhijõudluse osaks, lehtede üleviimise jõudluse parandamine, PREEMPT_LAZY režiimi vaikimisi sisselülitamine, io_uring operatsioonide jaoks filtrite toetus, uus Nullfs failisüsteem, fserror infrastruktuur, XFS jälgimisvahendid, Btrfs ülemineku toetus, NFS 4.1 versiooni vaikimisi sisselülitamine, postkvantse krüptoalgoritmi ML-DSA integreerimine, AccECN aktiveerimine võrgu alamsüsteemis, algeline WiFi 8 toetus.
Numbriks 7.0 määrati see, kuna 6.x haru on kogunud piisavalt väljalaskeid esimeses numbris muutmiseks (tollal loodi versioon 6.0 pärast 5.19). Numbrite muutmine toimub esteetilistel põhjustel ja on formaalne samm, mis vabastab peatse ebamugavuse suure arvu väljalaste olemasolust seerias.
Uude versiooni on lisatud 15624 parandust 2477 arendajalt, plaastri suurus on 56 MB (muudatused on puudutanud 18053 faili, lisatud on 704060 koodirida, kustutatud 278132 rida). Eelmisel väljaandel oli 15657 parandust 2237 arendajalt, plaastri suurus oli 52 MB. Umbes 51% kõikidest 7.0 versioonis esitatud muudatustest on seotud seadmedraiveritega, umbes 11% muudatustest puudutavad riistvaraarhitektuurile spetsiifilise koodi värskendamist, 14% on seotud võrgu virnastamisega, 5% - failisüsteemidega ja 3% - sisemiste alamsüsteemidega.
Ytse 7.0 peamised uuendused (kernelnewbies.org, lwn.net, OpenNET):
- Diskisüsteem, sisend/väljund ja failisüsteemid
- Fserror infrastruktuur on rakendatud ja on lisatud API, et saada teavet sisendi/väljundi vea ja metaandmete kahjustamise kohta failidega töötamisel. Pakutav infrastruktuur ühtlustab failisüsteemide kaudu kasutajaruumi vigade teatamist fsnotify mehhanismi kaudu.
- XFS-is on lisatud uued võimalused failisüsteemi oleku jälgimiseks kasutajaruumist. Ehdud on ioctl-operatsioon XFS_IOC_HEALTH_MONITOR, mis tagastab failide deskripti, mille kaudu saab saada teavet metadaandete kahjustumise või sisendi/väljundi vigade kohta, samuti jälgida failisüsteemi seisundite muutusi, nagu lahtiühendamine ja sulgemine. Lisaks on pakutud systemd kaudu juhitav taustaprotsess xfs_healer, mis käsitleb failisüsteemi olekuevtsede kasutajaruumist ja vajaduse korral käivitab automaatselt taastamisprotseduurid.
- Btrfs failisüsteemi on lisatud eksperimentaalne toetus «remapeerimise puu» struktuurile (remap tree), mis saab tulevikus kasutada vahekihtina sisend-väljundoperatsioonide tegemisel. Uue funktsiooni sisu on see, et andmete teisaldamisel salvestusse ei uuendata kõiki andmetega seotud struktuure täiendavas «remap tree» struktuuris, vaid salvestatakse vanad ja uued aadressid ning andmed, kui neile juurde pääseb, asendatakse nende aadressidega. Uut lähenemist peetakse usaldusväärsemaks ja paindlikumaks, samuti lihtsustades Btrfs-i funktsionaalsuse edasist laiendamist.
- Btrfs-is rakendatud toetatakse otsest sisend-väljundit olukordades, kus ploki suurus ületab süsteemi mälulehte.
- kuuluvad on aktiveeritud uus Nullfs-failisüsteem, mida saab kasutada juurfailisüsteemi asendajana. Nullfs-failisüsteem on alati tühi, ei sisalda andmeid ega toeta muutusi. Nullfsi mõte on kasutada seda algse failisüsteemina, et lihtsustada süsteemi käivitamise protsessi – teiste failisüsteemide mountimine toimub Nullfsi peal ja kasutatakse süsteemikutsungit pivot_root() juurfailisüsteemi vahetamiseks, mitte initramfsi sisu kustutamiseks ja seotud juurfailisüsteemi kasutamiseks.
- Teostatud failide muutmise aja teabe värskendamine mitteblokeerivas režiimis. Varem tagastas kutsung file_update_time_flags() koos lipuga IOCB_NOWAIT vea -EAGAIN, mis takistas mitteblokeerivates operatsioonides otse kirjutamist.
- failisüsteemides eraldi valikute sisse lülitamise võimalus tõlgitud teavitavate lukustuste tugi (lease). Vaikimisi ei aktiveerita sellist mehhanismi failisüsteemide probleemide tõttu, mis ei olnud algselt selle rakendamiseks kavandatud. Näiteks ei toeta seda failisüsteemid 9p ja cephfs.
- EROFS-failisüsteemis (Extendable Read-Only File System), mis on mõeldud ainult lugemiseks, kasutatakse vaikimisi tihendamiseks LZMA algoritmi. Valikuliselt on saadaval DEFLATE ja Zstandard algoritmid, mis ei ole enam eksperimendina märgistatud. On rakendatud identsete failide ühisosa kasutamine leheküljekausis (page-cache) erinevates EROFS-failisüsteemides.
- Eemaldatud laptop_mode režiim, mis säästab energiatarbimist, lükkab ja ühendab kõvaketta kirjutamisoperatsioonid, et pikendada ketta viibimist unerežiimis ja vähendada ärkamisvõimalusi. Režiim on oma tähtsuse kaotanud, kuna tänapäevased mobiilseadmed on asendanud kõvakettad pooljuhtkettaseadmetega.
- F2FS failisüsteem on muudetud kasutama suuri mälulehtede foliandid (suured folios).
- Taasisustatud tööd ntfs3 draiveri kallal, mida arendab Paragon Software. Failide operatsioonide toeks on lisatud iomapi baasil, rakendatud on llseek SEEK_DATA/SEEK_HOLE valikud, lisatud on delalloc režiim plokkide viivitamiseks. Samal ajal kiideti veebibrauserite arendajate nimekirjas veebruaris heakskiit uue NTFS rakenduse lisamine ühe tulevase tuuma versiooni koosseisu — ntfsplus, mis on mõeldud ntfs3 asendamiseks.
- Kogumisel on vaikimisi on aktiveeritud NFS protokolli versioon 4.1 (CONFIG_NFS_V4_1). Tagatud on NFS-i kaudu eksporditavate spetsialiseeritud pseudo-FS, nagu pidfs ja nsfs, lukustamine. NFSD-s rakendatud katseversioon POSIX ACL kasutamiseks ja lisatud dünaamiline lõimede (thread-pool) muutmine vastavalt koormusele.
- Mälu ja süsteemiteenused
-
On kinnitatud ametlikud reeglid AI-assistendi kasutamiseks ja automaatselt genereeritud sisu lisamiseks tuuma . Genereritud koodi edastamisel on ette nähtud, et seda tuleb tähistada, määrates kasutatava AI-assistendi läbi Assisted-by sildi. AI-assistentidel on keelatud lisada Signed-off-by silti – patchi edastanud isik loetakse selle autoriks ja vastutab edastatud muudatuse eest ning garanteerib selle kvaliteedi. Arendajatel on eeskujuks käsitsi ülevaatus AI kaudu saadud koodi ja kontrollida tulemuse vastavust litsentsinõuetele.Rust toimetamine
-
katsealustest peamistesse tuuma võimalustesse tõlgitud integreerimine tuuma mehhanismiga " ", mis võimaldab parandada vahetuse tootlikkust. Kiirus saavutatakse, vähendades vahetuse mälukaalu juurdepääsu konkurentsi, tõhusama otsingu korraldust ja fraktsioneerimise vähendamisega. Swap Table tagaosa kasutatakse vahetuse vahemälu jaoks XArray tagaosa asemel ja see võimaldas redis-benchmark testi käigus BGSAVE-ga töötlemiseks suurendada töödeldud päringute arvu 22%..
-
Lõpetatud Clang 22 väljaandes ilmnenud laienduse tugiVahetustabelThread Safety Analysis
-
Clang 22-s ilmnenud laienduste tugi on lisatud Lõime turvalisuse analüüs, mis võimaldab kompilatsiooni etapis tuvastada potentsiaalsed rassi ja vead, mis on seotud ebaõige lukustamisega. Laiendus pakub rida atribuute, nagu GUARDED_BY(…), REQUIRES(…), RELEASE(…) ja ACQUIRE(…), mis võimaldavad märkida lukustatud funktsioonid ja eristada lukustuste ulatusi (defineerida konteksti). Kompilatsiooni etapis kontrollitakse sünkroniseerimismehhanismide, nagu muteksid, korrektset rakendamist, lähtudes hinnangust seotud konteksti aktiivsusele või mitteaktiivsusele.
-
Süsteemi kutsesse open_tree on lisatud lipp OPEN_TREE_NAMESPACE, et lihtsustama isoleeritud konteinerite seadistamist ja kiirendada konteinerite käivitamist süsteemides, kus on palju mount punkte. Sarnaselt OPEN_TREE_CLONE’iga kopeerib uus lipp ainult määratud mount puu (mount tree), kuid tagastab kohaliku failikirje asemel failikirje uues namespace'is, kus kopeeritud puu on monteeritud reaalsete juurte FS koopia peale. Lipp OPEN_TREE_NAMESPACE on vajalik, et vältida eraldi unshare(CLONE_NEWNS) ja pivot_root() toimingute tegemist, mida kasutatakse konteinerite loomisel.
-
Süsteemi kutsesse rseq on lisatud aegade kvantide laiendamise mehhanism (time slice), mis võimaldab saada täiendavat protsessori aega kriitilise sektsiooni katkematuks teostamiseks. Idee on vältida ülesande planeerija katkestamist kriitilises sektsioonis, kus on lukustus, mis viib juhtimise andmiseni teistele niitidele, mis kasutavad ressurssi, millel jääb lukustus. Aegade kvantide laiendamine toimub ilma täiendavate kuludeta, kuid ka ilma rangete garantii, mida pakutakse täisprioriteediga reguleerimise korral.
-
Arhitektuuride arm64, loongarch, powerpc, riscv, s390 ja x86 puhul on ülesannete väljatõukerežiim (preemption) planeerijas vaikimisi muudetud PREEMPT_NONE'ist PREEMPT_LAZY'ks. Võimalike režiimide arv on vähenenud kell neli kuni kahe – PREEMPT_FULL ja PREEMPT_LAZY (moodused PREEMPT_NONE ja PREEMPT_VOLUNTARY on jäetud ainult arhitektuuridele, mis ei toeta PREEMPT_FULL ja PREEMPT_LAZY). REŽIIM PREEMPT_LAZY rakendab täieliku vältimise mudelit (PREEMPT_FULL) reaalajas ülesannetele (RR/FIFO/DEADLINE), kuid viib tavaülesannete (SCHED_NORMAL) tõrjumise viivituse ticki piirini. Tehtud viivitus vähendab lukustushoidjate tõrjumiste arvu, mis võimaldab jõudlust läheneda konfiguratsioonidele, mis kasutavad vabatahtliku vältimise mudelit (voluntary preemption), st PREEMPT_LAZY võimaldab säilitada täieliku vältimise võimalused reaalajas ülesannete osas, kuid minimeerib tavaülesannete jõudluse langust.
PREEMPT_LAZY sisselükkamine põhjustas tõsise regressiooni, mis vähendab PostgreSQL jõudlust ARM64 süsteemides kahel korral. Jõudluse languse kõrvaldamiseks peavad PostgreSQL arendajad pakutud kasutama PR_RSEQ_SLICE_EXTENSION valikut, et vähendada lukustushoidjate tõrjumise tõenäosust.
-
Continued the transfer of changes from the branch Rust-for-Linux, mis on seotud Rusti keele kasutamisega teise keele jaoks draiverite ja kerneli moodulite arendamisel (Rusti tugi ei ole vaikimisi aktiveeritud ja ei too kaasa Rusti kuulu kohustuslike kernele ehitusdependeeringute hulka). A varem integreeritud "syn (crates.io)" teegi, mis lihtsustab keeruliste makrode kirjutamist, on võimaldanud vähendada Rusti koodi mahtu tuuma sees olemasolevate protseduuriliste makrode määratlemise lihtsustamise kaudu. On laienenud kernel, makrode ja pin-init raamatukogude võimalused.
-
Asünkroonse sisendi/väljundi süsteemi io_uring lisatud valik mitte-ringikujuliste järjekordade (non-circular submission queue) kasutamiseks, mis on tõhusamalt vahemälus, kui päringu täitmine lõpeb enne süsteemikutsest tagastamist.
-
eBPF alamsüsteemis BTF (BPF Tüüp Formaat) mehhanismis, mis annab teavet tüüpide kontrollimiseks BPF pseudokoodis, et otsida silumisinfot aktiveeritud binaarotsing, mis parandas BPF programmide laadimise efektiivsust. eBPF-s lisatud on toetus varjatud argumendi kutsumiseks kfunc (tuuma funktsioonid, mis on saadaval BPF programmides kasutamiseks), on määratletud KF_IMPLICIT_ARGS lipuga.
-
Eemaldatud koodi toetamiseks algse RAM-diskiga (initrd) põhinev linuxrc, on ammu kuulutatud aegunuks. Jäänud initrd teostusi plaanitakse eemaldada aastal 2027. Initrd asemel tuleks kasutada initramfs'i (erinevus seisneb selles, et initrd paigutab alglaadimisKeskkonna kettapilti, samas kui initramfs – faili süsteemi).
-
plokiseadmest zram, mida kasutatakse kompressitud vahetusala salvestamiseks mälus, muudetud mälulehtede kompressimise toimimise loogikat valikulise andmete liikumise kaudu püsivasse mällu, kui saadaval olev mälu on täis. Varem dekompresseeriti mälulehed enne füüsilisele mälule kirjutamist, nüüd salvestatakse need kompressitud kujul, mis vähendab CPU koormust ja säästab energiat töötades aku pealt.
-
Tööriista timerlat, mis on mõeldud ülesannete ajastamise viivituste mõõtmiseks, lisatud valik –bpf-action BPF-programmide käivitamiseks, kui seatud lävi ületatakse.
-
ftrace jälgimisse süsteemi on lisatud seade bitmask-list, et kuvada bitimaskid loetaval kujul (bitirikkude loendi kujul, mitte heksadecidalses numbris). tracefs'ile on lisatud auditimise võimalused filtrid ja käivitajad. Lisatud perf sched stats käsk plaanijate statistika kogumiseks ja kuvamiseks.
-
Lisatud kogu valikud LOGO_LINUX_MONO_FILE, LOGO_LINUX_VGA16_FILE ja LOGO_LINUX_CLUT224_FILE logopildi faili määramiseks, mis kuvatakse tuuma laadimise ajal Tuxi vaikimisi logose asemel.
-
- Virtualiseerimine ja turvalisus
- asünkroosse sisendi/väljundi io_uring süsteemis rakendatud BPF-programmide kinnitamise võimalus, mille filtrid kontrollivad, mida spetsiifilised SQE (Submission Queue Entry) toimingud tohib teha (sarnane süsteemikutsest io_uring's). Lisatud võimalus on analoogiline süsteemikõnede filtritega. Filtreid saab siduda spetsiifiliste ülesannetega ja need pärandatakse, kui luuakse uusi protsesse pärast fork() kutsumist. Aktiivsete filtrite korral tohib lisanduvad filtrid ainult rakendada täiendavaid piiranguid, kuid mitte välja lülitada olemasolevaid. Tehtud võimalus võimaldab blokeerida meetodid süsteemikõnede filtreerimise ümbersõiduks sandboxes, mis põhinevad sarnaste toimingute täitmisel süsteemikõnede asemel, mis on saadaval io_uring'is.
- SELinux'is lisatud BPF-tokenite juurde pääsu juhtimise võimalus, mis võimaldab mitteprivileegitud protsessidel võimalus sooritada teatud privileegitud toiminguid BPF-ga, näiteks laadida BPF-programme tuuma ja luua map-struktuure.
- Lisatud digitaalsete allkirjade genereerimise algoritmi tugi ML-DSA (CRYSTALS-Dilithium), mis põhineb võrguhanede teoorial ja on kvantkompuutritele vastupidav. Pakkuv ML-DSA kasutusvõimalus tuuma moodulite autentimiseks.
- Eemaldatud digitaalsete allkirjade genereerimise skeemide kasutusvõimalus SHA-1 algoritmiga tuuma moodulite allkirjastamiseks (alla laaditud allkirjastatud moodulite tugi on säilinud).
- NETFILTER_PKT auditi kirjes on lisatud sport ja dport väljad võrguportide numbrite inspectimiseks, mitte ainult IP-aadresside.
- RISC-V arhitektuuriga süsteemide jaoks rakendatud Zicfiss ja Zicfilp laiendite tugi, mis pakuvad riistvaralist tuge CFI (Control Flow Integrity) kaitse rakendamiseks, blokkides juhuslikke kontrollvoo rikkumisi, mis tulenevad eksploidide kasutamisest, mis muudavad funktsioonide näitajad mälus.
- KVM hüperviisor, rakendatud võimalus edastada külgsüsteemidele teavet protsessori ERAPS (Enhanced Return Address Predictor Security) laiendamise toe kohta, mis võimaldab vähendada teatud CPU seisundi lähtestamise toimingute arvu külgsüsteemi juurdepääsu tagastamisel hostile. Lisaks, lisatud külgsüsteemide abiga varustuse sidumise tugi, et jälgida jõudlust (PMU, Performance Monitoring Unit), mis võimaldab suurendada profileerimise täpsust võrreldes emuleeritavate PMU-de kasutamisega.
- Hyper-V hüpervisiitori draiverisse lisatud debugfsi liidese tugi hüpervisiitori tööstatistika vaatamiseks.
- Võrgusüsteem
- AccECN laiend on vaikimisi sisse lülitatud (Accurate Explicit Congestion Notification), mis rakendab ECN (wikipedia.org) laiendi täiustatud versiooni. ECN, mis annab hostidele võimaluse koormuse korral IP-pakette märgistada nende ära viskamise asemel, võimaldades tuvastada ligikaudse ummiku tekkimist sidekanalites ilma pakettide kaotuseta. Algne ECN laiendus sisaldab piirangut, mis lubab edastada ühe ülekoormuse signaali ühe TCP (RTT, Round-Trip Time, päringu saatmine ja vastuse saamine) vastuvõtu-ülekande tsükli jooksul. AccECN kaotab selle piirangu ja võimaldab vastuvõtjal saata saatjale rohkem kui ühe ülekoormuse märgise TCP-paketi päises. Ülekoormuse juhtimise algoritmid saavad saadud teavet kasutada, et täpsemalt reageerida ülekoormustele ja mitte tugineda pakkumiste intensiivsuse järsule vähendamisele, kui esinevad väikesed ülekoormused.
- Rakendamine võrgu järjekordade juhtimise algoritmis Kook lisatud mitme järjekorra töötlemise võimalus koormuse jaotamiseks mitmele CPU tuumale. CAKE algoritmi rakendatakse, et vähendada pakettide vahepealse puhversüsteemi negatiivset mõju piirdeaedade võrgu seadmetes, eesmärgiga saavutada maksimaalne läbilaskevõime ja minimaalne latentsus isegi aeglases sidekanalis.
- Sockets VSOCK, mida kasutatakse virtuaalmasinatega suhtlemiseks, lisatud võrgunimepindade toe (network namespace).
- Lisatud esialgne rakendus tuleviku standardi WiFi 8 (802.11bn, Ultra High Reliability WiFi).
- Lisatud optimeerimised, mis on võimaldanud tõsta sisenevate UDP-pakettide töötlemise efektiivsust 12% 100-gigabitisel võrgus stressiteste tehes.
- Varustus
- AMDGPU draiveris rakendatud toetamine IP-plokkide, mida kasutatakse uutes AMD GPU-des nagu SMUIO 15.x, PSP 15.x, IH 6.1.1/7.1, MMHUB 3.4/4.2, GC 11.5.4/12.1, SDMA 6.1.4/7.1/7.11.4 ja JPEG 5.3.
- Nouveau draiveris on parandatud sageduse juhtimist Tegra 186+ süsteemides.
- Draiverisse i915 lisatud esialgne tugi Xe3p_LPD display IP-blokile, mida kasutatakse Intel Nova Lake-P protsessorites.
- Jätkatakse töö drm-juhiks (Direct Rendering Manager) Xe GPU jaoks, mis põhineb Intel Xe arhitektuuril, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Lisatud on režiim Multi Queue. Lisatud komponendid, mis on vajalikud GPU lukustumiste diagnostika jaoks Mesas. Lisatud tugi MERT-mehhanismi jaoks GPU mälu juurdepääsu haldamiseks.
- Jätkatakse Nova draiveri komponentide integreerimine NVIDIA GPU-dele, mis on varustatud GSP-firmware'iga, mida kasutatakse alates NVIDIA GeForce RTX 2000 seeriast, mis põhineb Turingi mikroarhitektuuril. Draiver on kirjutatud Rust keeles. Uues versioonis on ettevalmistused Turingi mikroarhitektuuril põhineva GPU toe rakendamiseks ja tehtud erinevaid sisemisi muudatusi.
- Lisatud Tugi kontrolleritele ja perifeersetele seadmetele, millel on mitmekanaveline SPI (Serial Peripheral Interface) liides, mis võimaldab andmeid edastada mitmes paralleelses voos.
- Lisatud Draiver Type-C kombineeritud ühendustele, mida kasutatakse Apple Siliconi kiipidega seadmetes ja mis ühendavad USB3, DP-AltMode ja Thunderbolt/USB4 liidesed.
- Lisatud tugi Tegra238, Minisforum V3 SE, iBasso DC04U, Intel Nova Lake, Nova Lake S ja Focusrite Forte helisüsteemidele.
- Lisatud tugi ARM-plaadi, SoC ja seadmete jaoks: Arduino UnoQ, OrangePi 6 Plus, OrangePi CM5, Anbernic RG-DS, Realtek Kent, Qualcomm Kaanapali, Mediatek Ezurio, Facebook Anacapa, Microchip LAN9668, Khadas VIM1S, QNAP TS133, i.MX952, i.MX93, i.MX94, VHIP4 EvalBoard, TQ-Systems MBLS1028A, Agilex5, Radxa CM3J, Glymur.
- Toetatud on nutitelefonid ja tahvelarvutid: Fairphone Gen 6 (SoC Qualcomm Milos/Snapdragon 7s Gen 3), Pixel 3/3 xl, Microsoft Surface Pro 11.
Samas Lõuna-Ameerika Vaba Tarkvara Fond kujundas variant täielikult vabast 7.0 tuumast – Linux-libre 7.0-gnu, puhtaks tehtud firmware'ide ja draiverite elementidest, mis sisaldavad mittevabu komponente või koodijuppe, mille kasutusala on tootja poolt piiratud. Versioonis 7.0 on iwlwifi draiveri blobidest puhastamine. Uuendatud puhastuskoodi amdgpu, adreno, TI PRUeth, air_en8811h, ath12k, TI VPE, rtw8852b, rt1320, rt5575 SPI, tas2783, Intel catpt draiverites. Tehtud puhastus blobide nimed dts-failides (devicetree) ARM-kiipide jaoks.
Allikas: linux.org.ru
