Linux 7.1

Pärast kahte kuud arendust Linus Torvalds esitles ydinversioon Linux 7.1. Märkimisväärsusetest muudatustest: uus ntfsplus draiver, CPU i486 toetuse lõpetamise esimene etapp, vanade Ethernet-adapterite eemaldamine, ISDN ja AX.25 protokollide eemaldamine, Intel FRED mehhanismi kohustuslik aktiveerimine, BPF-käsitlejate tugi io_uringis, lehevahetuse alamsüsteemi optimeerimine, sched_extis alamplaneerijate tugi, zero-copy sisend/väljund ublk draiveris, ioctl-tegevus shutdown Btrfsis, dünaamiline jõudluse režiimi vahetamine amd-pstate draiveris, xattr tugi Unix-soketitele.

Uue versiooni juurde on lisatud 17275 parandust 2589 arendajalt, plaastri suurus on 57 MB (muudatused puudutasid 13528 faili, lisatud 751785 rida koodi, eemaldatud 405916 rida). Eelmisel väljal on olnud 15624 parandust 2477 arendajalt, plaastri suurus on 56 MB. Umbes 41% kõigist 7.1 versiooni muudatustest seondub seadme draiveritele, umbes 12% muudatustest on seotud riistvaraarhitektuuride spetsiifilise koodi uuendamisega, 14% on seotud võrgustiku virniga, 5% -ga failisüsteemidest ja 3% -ga kernelisisesed alamsüsteemid.

Peamised uuendused kernelis 7.1 (kernelnewbies.org, lwn.net, opennet):

Diskisüsteem, sisend/väljund ja failisüsteemid
  • Uude versiooni on võetud uus rakendus failisüsteemist NTFS — ntfsplus, mis põhineb klassikalise ntfs draiveri eemaldatud koodil. Vana draiver on uuendatud, täiendatud andmete kirjutamise võimalusega ja kohandatud kaasaegsete võimaluste toetamiseks, nagu mälulehtede foliandid (folios) buffer_head struktuuri asemel. Uues draiveris on rakendatud viivitusega plokkide eraldamine, mis on saavutanud kõrge kirjutamisoperatsioonide efektiivsuse ja vähendanud fragmenteerimist. Sisse-/väljundoperatsioonide bufriseeritud kirjutamiseks/loimiseks, otse sisend/väljundiks, ulatuste kaardistamiseks ja lehe kirjutamis-/loimisoperatsioonide jaoks on kasutatud raamatukogu iomap. Testides iozone osutus ntfsplus draiver 3-5% kiiremaks kui ntfs3 ühe tahkidega kirjutamisel ning 35-110% nelja tahkide kasutamisel. Ntfsplus ja ntfs3 lugemine on ligikaudu samal tasemel. Ntfs3 draiver jääb kernelisse ja sellel on tehtud parandused ja väikesed täiustused.
  • Lisatud tugi integriteedi kontrollimise andmete genereerimisele ja verifitseerimisele T10 (deepwiki.com) failisüsteemi tasemel, mitte plokkseadmise tasemel, mis võimaldab saavutada lugemise operatsioonide efektiivsuse suurenemise.
  • Plokkseadmise draiveris ublk, mis võimaldab konkreetse loogika viia protsessi külge kasutaja ruumis, lisatud toetab sisend-/väljundoperatsioone jagatud mälu kaudu ilma andmete kopeerimiseta puhvrite vahel (zero-copy režiim).
  • Isesaluritavad plokiseadmed SED-OPAL on lisatud ioctl režiimi haldamiseks Üksik kasutaja ja on rakendatud käsk STACK_RESET.
  • Btrfs-is on välja kuulutatud stabiilne tugi ioctl-operatsioonile shutdown, mis võimaldab failisüsteemi viia olekusse, kus kõigepealt proovitakse lõpetada juba käivitatud operatsioone, kuid kõik uued operatsioonid on blokeeritud.
  • ExFAT-is on rakendatud võimalus broneerida tühje alasid kutsungi fallocate() kaudu.
  • CIFS failisüsteemis on lisatud tugi ajutiste failide loomiseks O_TMPFILE lipuga.
  • Süsteemi kõnes fsmount() on lisatud valik FSMOUNT_NAMESPACE, mis loob uue mälu juhtimispunktide ruumi mountitud failisüsteemile. Süsteemi kutsungitesse clone3() ja unshare() on lisatud lipud, mis tagavad uue mälu juhtimispunktide ruumi, mis sisaldab ainult montaži tühja failisüsteemi varukoopiat nullfs-i põhjal, FS-DAX draiveri ja DAX-seadmestikuga (Direct Access).
  • NFS-serveris lisatud on kaitse failide deskriptorite tuvastamise rünnakute vastu, kasutades deskriptorite krüptograafilist allkirjastamist. Kaitse aktiveeritakse mountimise valiku sign_fh kaudu.
  • Lisatud sümboolne draiver fs-dax, mis pakub liidest seadmete DAX (kernel.org) (Direct Access) kontaktiks, mis toetavad tööd lehe vahemälu ümbersuunamisega. Antud liidest on vajalik failisüsteemi tuumast integreerimiseks famfs, mis on paigutatud mällu.
  • Ceph failisüsteemis rakendatud sisend-/väljund statistikate kogumine, mis on seotud jagudega.
Mälu ja süsteemiteenused
  • Vastu võetud esimene muudatuste seeria, et lõpetada i486 protsessorite tugi. Kconfigist on eemaldatud valikud tuuma kompileerimiseks 486DX, 486SX ja AMD ELAN protsessorite toega (CONFIG_M486, CONFIG_M486SX ja CONFIG_MELAN) ning Makefile'ist on välja jäetud kompileerimise valikud i486 süsteemide jaoks (-march=i486). Kood, mis tegelikult toetab i486 protsessoritel töötamist, on kuni praeguseni jäänud tuumas, kuid selliste süsteemide kompileerimine nõuab nüüd koostamisfailide patšimist. i486 protsessorite toe kõrvaldamise põhjused tulenevad soovist vabastada tuum keerukast koodist, mis emuleerib mõningaid riistvarategevusi, nagu CX8 (võrdle ja vaheta 8 baiti) ja TSC (CPU tsükli loendur, mida kasutatakse ülesannete ajakava koostamisel).
  • AMD protsessoritega süsteemide energiahalduse juhtimiseks kasutatavas amd-pstate draiveris rakendatakse on dünaamiline jõudluse seadete vahetamine ja toiteseire käitumise muutmine sõltuvalt toiteallikast, kas vooluvõrgust või akust. Voogude all kapseldub nüüd jõudlusrežiim, samas kui akule töötamisel aktiveeritakse balance_performance.
  • Vaikimisi on aktiveeritud Intel FRED (Flexible Return and Event Delivery), mis suurendab madala taseme sündmustest teabe edastamise efektiivsust ja usaldusväärsust. Jõudluse paranemine ja viivituste vähenemine on tagatud sündmuste tagastamise kaudu protsessorijuhise IRET abil, mitte sündmuste edastamise kaudu IDT (Interrupt Descriptor Table) kaudu. Usaldusväärsuse suurenemine saavutatakse sündmuse saabumise eraldi töötlemise kaudu nii tuuma kui ka kasutaja kontekstis, kaitse tagamisega NMI sisseehitatud täitmise vastu ja kõigi selle erandeid käsitlevate CPU registrite säilitamisega laiendatud virna raamis.
  • Perf alamsüsteemis lisatud on toetatud mälestuse jõudluse jälgimise blokid (PMU - Performance Monitoring Unit), mida kasutatakse NVIDIA Tegra410 SoC-s.
  • Futex operatsioonide teostamine on ARM süsteemides kiirendatud, tänu Arm 9.6 LSUI juhiste kasutamisele, mis võimaldavad tuumal pääseda kasutaja mälu ruumi ilma eelneva kaitse režiimi väljalülitamiseta PAN (arm.com) (Privileged Access Never).
  • ARM protsessoritega süsteemides on paranenud käsitsi laiemat toetasustatavate käskude kompleksi laienemine MPAM (Memory System Resource Partitioning and Monitoring) ja kasutamise võimalus on lisatud kasutaja ruumis ressursside haldamiseks mehhanismi kaudu resctrl. MPAM tagab iga mälu juurde pääsu märgistamise sektsiooni ID (PARTID, Partition ID) ja jälgimisgrupi ID (PMG, Monitoring Group ID) abil. PARTIDi sidumise korral saab piirata ressursside tarbimist, näiteks mälu ribalaiust või vahemälu suurust, et mõni ülesannete rühm ei võtaks kõiki ressursse. Jälgimis kontekstis saab PMG ja PARTIDi kombinatsiooni kasutada mälu ressursside tarbimise jälgimiseks teatud koormustüüpide korral.
  • Lisatud on ARM 32-bitistes protsessorites reaalajas režiimi (PREEMPT_RT) kasutamise võimalus. Varasemalt oli PREEMPT_RT tugi tagatud x86 ja x86-64, ARM64, RISC-V ja LoongArch arhitektuuride jaoks.
  • Süsteemi kõnes clone3() lisatud uued lipud: CLONE_NNP — keeld uute privileegide saamine loodud protsessis; CLONE_AUTOREAP — protsessi automaatne lõpetamine selle zombie-protsessiks muutmise asemel, kuni funktsiooni wait() täidab vanemprotsess; CLONE_PIDFD_AUTOKILL — alamprotsessi lõpetamine, kui sellega seotud pidfd-deskriptor suletakse (näiteks vanemprotsessi lõpetamisel).
  • Iga kernelimooduli jaoks katalooge /sys/module on lisatud fail import_ns, mis sisaldab imporditud sümbolite nimede ruume (sümbolite nimede ruum).
  • Asünkroonse sisendi/väljundi süsteemi io_uring on lisatud tugi BPF-alamüsteemi kasutamiseks töötlejate loomisel. Näiteks saab peamise sündmuste töötlemise tsükli asendada BPF-programmiga.
  • BPF alam süsteemis uuendatud stacki kasutuse analüüs, mis kiirusel tõhustas paljude BPF-programmide verifikaatori kontrolli.
  • Sooviga parandada jõudlust üles kirjutatud hrtimer (kõrge resolutsiooniga ajastiga) alamüsteem. Ülesannete ajakava võib nüüd kasutada kõrge resolutsiooniga ajastajaid, kaotamata jõudlust madalama täpsusega ajastajate asemel.
  • Continued muudatused Rust-for-Linux harust, mis on seotud Rusti keele kasutamisega teise keelena draiverite ja kernelimoodulite arendamiseks (Rusti toetus ei ole vaikimisi lubatud ning ei too kaasa Rusti kohustuslike ehitus sõltuvuste hulka kernelis). Versioonis 1.85 (tuleb Debian 13-s) on tõhustatud Rusti versiooni nõudeid kernelikomponentide ehitamiseks. Lisatud eksperimentaalne Kconfig-valik CONFIG_RUST_INLINE_HELPERS C-ablaste sisestamiseks Rust-koodis kompileerimise ajal (optimeerimine kiirendas null-bloki draiveri tööd 2%). Lisatud makro ‘const_assert!’. Laiendatud moodulite sizes, clk, ptr, sync, error võimalusi.
  • Mehhanism SCHED_EXT, mis võimaldab kasutada BPF-i CPU ajakavadena, lisatud esialgne võimalus luua sisemisi ajakavad (sub-scheduler), millega igale cgroupile võib rakendada oma ülesannete ajakava.
  • Jätkatud vahetussüsteemi (swap) optimeerimist. Eemaldatud vana struktuur swap_map, asendatud mehhanismiga „Vahetustabel“. Muudatus võimaldas parandada jõudlust ja vähendada vahetussüsteemi mälutarbimist.
  • Alamüsteemi DAMON (Data Access MONitor), mis võimaldab jälgida protsessi juurdepääsu andmetele operatiivmälu (näiteks on võimalik teada saada, millistele mälualadele protsess ligipääsu omab ja millised mälualad on jäänud kasutamata), lisatud erinevate automaatsete algoritmide toetamine tuning kvootide.
  • Süsteemi jälgimise alamsüsteemis rakendatud väliste ringpuffrite kontseptsioon, mis võimaldab saada jälgimisandmeid virtuaalmasinatest. Võimalus on aktiivne KVM hüperviisorites ja nVHE jälgimisandmete edastamiseks külgmise süsteemi külge.
  • Alamüsteemi RV (kernel.org) (Runtime Verification), mis on mõeldud usaldusväärsete süsteemide korrektse töö kontrollimiseks, on lisatud jälgimise komponente «stall» ülesannete jälgimiseks, mille täitmine on ajutiselt peatatud või blokeeritud, ning «deadline» ülesannete ajakava käitumise analüüsimiseks.
Virtualiseerimine ja turvalisus
  • Vaikimisi on seatud lipp PROC_MEM_FORCE_PTRACE, mis lubab pääseda protsessi mälule läbi faili /proc/PID/mem ainult protsesside jaoks, mis kasutavad süsteemikõnet ptrace() silumiseks.
  • Lisatud uus hookide kogum LSM-modulitele (Linux Security Module), mis lihtsustavad poliitikate rakendamist kihi failisüsteemide jaoks, nagu overlayfs. LSM-is on samuti on lisatud hook Unix-socketite juurdepääsu haldamiseks, mis aktiveeritud LSM-moodulis Landlock Unix-socketite juurdepääsu poliitikate määramiseks.
  • Sisseehitatud krüptograafia teek lib/crypto, mis pakub lihtsamaid ja kiirem funktsioone kui traditsiooniline krüpto API, lisatud toetab algoritme AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH ja SM3. Lisatud dokumentatsioon lib/crypto.
  • Töötati välja režiim pKVM (Protected KVM) range isoleerimiseks anonyymse mälu kasutades AArch64 arhitektuuri virtualiseerimise laiendusi. Selle režiimi korral välistatakse külgmise süsteemi virtuaalsete aadresside tabelist külgsüsteemi mäluleht.
  • KVM hüperviisorisse on lisatud toetust viies versioon ARM-i virtuaalse katkestuste juhtimisseadmestik (VGICv5 — ARM Virtual Generic Interrupt Controller v5).
Võrgusüsteem
  • Unix-socketite jaoks, mis on loodud funktsiooni socket() poolt, rakendatud toetatakse laiendatud failiattribute (xattr) user.*. Rakendusvaldkondade hulgas on märgitud siltide paigaldamine läbi laiendatud atribuutide Unix-socketitele, mida kasutatakse IPC Varlinkis, et neid eristada üldisest hulgast IPC toimimise kontrollimiseks ja silumiseks BPF-programmide abil. systemd-journald kavatseb kasutusele võtta laiendatud atribuute logiformaadi määramiseks, seostades selle soketiga /dev/log.
  • Eemaldatud UDP-Lite protokolli tugi (RFC 3828), mis võimaldab edastada pakette vigaste kontrollsummadega, eeldades, et näiteks osaliselt kahjustatud heli ja videoandmeid saab taastada kodekitasemel. Protokoll eemaldati, kuna seda ei kasutata.
  • Eemaldatud võimalus koguda IPv6 protokoll tuumamoodulina, mida praktikas ei kasutatud (IPv6 kas sisestatakse tuuma või lülitatakse täielikult välja), kuid mis keeruliseks muutis hooldamise, kuna IPv6 tuumamoodulina kogumisel (CONFIG_IPV6=m) pidid paljud allüsteemid lisama kasutud käitlejad juhtudel, kui IPv6 moodul välja laaditi.
Varustus
  • AMDGPU draiveris on lisatud uus kuvamootor (DC) AMD HD 7000 seeria APU jaoks (Sea Islands, GCN 1.1).
  • Nouveau draiveris lisatud algne tugi NVIDIA GA100 GPU-le, mis põhineb Ampere mikroarhitektuuril.
  • Tööd jätkatakse drm-draiveri (Direct Rendering Manager) Xe kallal Intel Xe arhitektuuril põhinevatele GPU-dele, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Lisatud tugi Intel Nova Lake-P protsessorite graafikasüsteemile. Rakendatud puhastatavad puhverobjektid (Purgeable Buffer Objects).
  • Jätkub Nova draiveri komponentide integreerimine NVIDIA GPU-dele, mis on varustatud GSP-firmware'idega, mida on kasutatud alates NVIDIA GeForce RTX 2000 seeriast, mis põhineb Turing mikroarhitektuuril. Draiver on kirjutatud Rust keeles. Algne tugi Turing mikroarhitektuuril põhinevatele GPU-dele on lisatud.
  • Lisatud DRM-draiver corebootdrm CoreBoot baseeritud firmavarade kaudu graafika väljundiks.
  • Lisatud tugi ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP ja WM8962 helilistele seadmetele. Parandatud USB-liidese heliseadmete tuge: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
  • Lisatud yogafan draiver Lenovo Yoga, Legion ja IdeaPad sülearvutite ventilaatori pöörlemise kiirus jälgimiseks.
  • Lisatud tugi ARM-platvormidele, SoC-dele ja seadmetele: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 ja ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
  • Eemaldatud tugi Baikal-T1 SoC-dele kasutatavate AHCI SATA ja PCIe kontrollerite, samuti ajasturi, mälu, physmap, bussi, hwmon, dwc ja bt1-rom draiverite jaoks. Eemaldamise põhjuseks on hooldamise puudumine ja Baikali platvormi komponentide tuumaga lõpetamata integreerimine, mille tootmine Venemaal lõpetati novembris 2025.
  • Eemaldatud 12 draiverit Ethernet-seadmetele, millel on ISA ja PCMCIA liidesed, välja antud enne 2002. aastat, mille jaoks ei leitud kasutajaid, kes neid töösüsteemides kasutaks. Samuti on kernelist välja jäetud alamsüsteem ISDN, protokollide rakendamine AX.25, CAIF ja Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), draiverid yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport ja logibm (busmouse). Eemaldamise põhjuseks oli aktiivsete hooldajate puudumine taustal, kus syzbot ja AI-tööriistade abil tuvastatavate vigade arvu suurenemise tõttu ei ole keegi valmis neid parandama, ning kogu koormus tõsiste probleemide kõrvaldamiseks langeb peamiste võrgu alamsüsteemide hooldajatele. Kokku on eemaldatud üle 140 000 rea koodi.

Allikas: linux.org.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster