Linux 7.1

Pärast kahte kuud arendusteline Linus Torvalds esitles tugevdamise südamik Linux 7.1. Kõige silmapaistvamad muudatused on: uus ntfsplus draiver, esimene etapp i486 protsessorite toe lõpetamisest, vanade Ethernet-adapterite eemaldamine, ISDN ja AX.25 protokollide eemaldamine, Intel FRED mehhanismi vaikevalik, BPF-käsitlejate tugi io_uringis, vahetussüsteemi optimeerimine, alamsüttimiste tugi sched_ext, zero-copy sisend/väljund ublk draiveris, ioctl-operatsioon shutdown Btrfs'is, dünaamiline jõudluse režiimi vahetamine amd-pstate draiveris, xattr tugi Unix-sokettide jaoks.

Uues versioonis on aktsepteeritud 17275 parandust 2589 arendajalt, patši suurus on 57 MB (muudatused hõlmasid 13528 faili, lisatud 751785 rida koodi, eemaldatud 405916 rida). Eelmises versioonis oli 15624 parandust 2477 arendajalt, patši suurus oli 56 MB. Umbes 41% kõigist 7.1 versiooni muudatustest on seotud seadme draiveritega, umbes 12% muudatustest on seotud riistvaraarhitektuurile spetsiifilise koodi värskendamisega, 14% on seotud võrgu ning 5% failisüsteemidega ning 3% tuuma sisemiste süsteemidega.

Ytse 7.1 peamine uuendus (kernelnewbies.org, lwn.net, opennet):

Disski alamsüsteem, sisend/väljund ja failisüsteemid
  • Vastuvõetud on uus elluviimine NTFS-failisüsteem — ntfsplus, mis põhineb klassikalise ntfsi tuuma draiveri koodil. Vana draiver on ümber töötatud, täiendatud andmete kirjutamise võimalustega ja kohandatud kaasaegsete võimaluste, nagu näiteks kasutamine, toetamiseks. mälulehtede foliantide (folios) buffer_head struktuuri asemel. Uues draiveris on implementeritud mahajäämusega plokkide eraldamine, mille tulemusena on saavutatud kõrge kirjutamisoperatsioonide jõudlus ja fraktsioneerimise vähenemine. Pufferdatud kirjutamis-/lugemisoperatsioonide, otse sisendi/väljundi, ekstensioonide kaardistamise ja lehe kirjutamise/lugemise operatsioonide jaoks on kasutatud raamatukogu iomap. Iozone'i testides osutus ntfsplus draiver 3-5% kiiremaks kui ntfs3 ühesuunalises režiimis ja 35-110% kiirem nelja lõime kasutamisel. Ntfsplus ja ntfs3 lugemiskiirus on ligikaudu samal tasemel. Ntfs3 draiver jääb tuuma koostisosaks ja selle tehtud parandused ja väikesed täiustused.
  • Lisatud on toetamine terviklikkuse kontrolli andmete genereerimiseks ja verifitseerimiseks T10 (deepwiki.com) failisüsteemi tasemel, mitte plokkseadmest, mis võimaldab saavutada lugemisoperatsioonide jõudluse paranemist.
  • Plokiseadmendi draiverisse ublk, võimaldades spetsiifilise loogika tõstmist protsessi külge kasutaja ruumis, on lisatud toetab sisendi/väljundi käitamist jagatud mälus ilma andmete kopeerimiseta pubufferite vahel (zero-copy režiim).
  • Isesalvestavad plokkseadmed SED-OPAL lisatud ioctl režiimi haldamiseks Üksik kasutaja ja on rakendatud käsk STACK_RESET.
  • Btrfs-is on kuulutatud stabiilseks ioctl-operatsiooni shutdown tugi, mis võimaldab failisüsteemi viia olekusse, kus püütakse lõpetada juba käimasolevaid operatsioone, kuid kõik uued operatsioonid on blokeeritud.
  • exfat-is on rakendatud tühjade alade reservatsiooni võimalus läbi fallocate() kutsumise.
  • CIFS failisüsteemi on lisatud ajutiste failide loomise toetus O_TMPFILE lipuga.
  • Süsteemi kutses fsmount() lisatud on valik FSMOUNT_NAMESPACE, mis loob uue mälupunktide nimekirja ruumi monteeritud failisüsteemile. Süsteemikutsesse clone3() ja unshare() on lisatud lipud, et tagastada uus mälupunktide nimekirja ruum, mis sisaldab ainult monteeritud tühja failisüsteemi peatust nullfs-i baasil ja fs-dax draiveriga, mis pakub failisüsteemi liidese DAX seadmetele (otsene juurdepääs).
  • NFS-server on lisatud failide descriptorite bruteforce rünnakute kaitse, mis rakendatakse descriptorite krüptograafilise allkirjastamise kaudu. Kaitse aktiveeritakse mälestamisvaliku sign_fh kaudu.
  • Lisatud simulatsioonid jaoturi fs-dax, mis pakub liidest seadmetega suhtlemiseks DAX (kernel.org) (Otsejuurdepääs), mis toetab tööks lehekülgede vahemälu mööda. Antud liides on vajalik failisüsteemi tuumasse integreerimiseks famfs, mis paikneb mälus.
  • Ceph failisüsteemis rakendatud sisendi/väljundi mõõdikute kogumine osade kaupa.
Mälu ja süsteemiteenused
  • Vastu võetud esimene muudatuste seeria i486 protsessorite toe lõpetamiseks. Kconfigist on eemaldatud valikud tuumade koostamiseks, mis toetavad 486DX, 486SX ja AMD ELAN protsessoreid (CONFIG_M486, CONFIG_M486SX ja CONFIG_MELAN), ning Makefile'ist on välistatud kompileerimise valikud i486 süsteemide jaoks (-march=i486). Kood, mis tegelikult toetab töötamist i486 protsessoritel, on praegu tuumas alles, kuid selliste süsteemide koostamine nõuab nüüd koostamisfailide patchide rakendamist. i486 protsessorite toe eemaldamise põhjused on seotud sooviga vabastada tuum keerulisest koodist, mis emuleerib teatud riistvaratehteid, nagu CX8 (võrdle ja vaheta 8 baiti) ja TSC (CPU tsükli loendur, mida kasutatakse ülesannete ajastamises).
  • amd-pstate draiveris, mida kasutatakse AMD protsessorite energiatootmise juhtimiseks, on rakendatud dünaamiline jõudluse seadete vahetamine ning toitehalduse käitumise muutmine sõltuvalt toiteallikast, kas see on võrgu toide või aku. Kui see on ühendatud võrku, aktiveeritakse nüüd jõudluse režiim, ja aku kasutamisel on tasakaalu jõudlus.
  • vaikimisi on aktiveeritud mehhanism Intel FRED (Flexible Return and Event Delivery), mis võimaldab tõsta madala taseme sündmuste teabe edastamise efektiivsust ja usaldusväärsust. Tõhususe ja viivituste vähendamine saavutatakse uudiste tagastamise kaudu protsessori käsu IRET abil, selle asemel et edastada sündmusi IDT (Interrupt Descriptor Table) tabeli kaudu. Usaldusväärsuse tagamine toimub sündmuste saabumise töötlemise eristamise kaudu süsteemi tuuma ja kasutaja konteksti vahel, kaitse võimaldades sisemist NMI täitmist ja suurendades seotud registrite CPU arvestuse salvestamist ulatuslikus virnas.
  • Perf alamsüsteemis on lisatud toetatakse mäluefektiivsuse jälgimise blokke (PMU — Performance Monitoring Unit), mida kasutatakse NVIDIA Tegra410 SoC-des.
  • Futexi operatsioonide täitmine on ARM süsteemides kiirem tänu Arm 9.6 LSUI käskude kasutamisele, mis võimaldavad tuumal pääseda kasutaja mälule ilma kaitse režiimi eelneva väljalülitamata. PAN (arm.com) (Privileged Access Never).
  • ARM protsessoritega süsteemides on paranenud käsu komplekti laiendamise toetus. MPAM (Memory System Resource Partitioning and Monitoring) ja funktsionaalsuse lisamine selle kasutamiseks kasutajaruumi kaudu ressursside haldamiseks mehhanismi kaudu resctrl. MPAM tagab iga mälupöörde märgistamise sektsiooni identifikaatori (PARTID, Partition ID) ja jälgimisgrupi identifikaatori (PMG, Monitoring Group ID) tõttu. PARTID kohandamise kaudu on võimalik piirata ressursside kasutamist, nagu mälu ribalaius või vahemälu suurus, et mingi ülesannete grupp ei kasutaks kõiki ressursse. Monitoorimise kontekstis saab PMG ja PARTID kombinatsiooni kasutada mäluressursside tarbimise jälgimiseks teatud koormuste korral.
  • Lisatud reaalajas (PREEMPT_RT) režiimi kasutamise võimalus 32-bitistes ARM protsessorites. Varem oli PREEMPT_RT tugi tagatud x86 ja x86-64, ARM64, RISC-V ja LoongArch arhitektuuridele.
  • Süsteemi kutses clone3() uued lipud on lisatud: CLONE_NNP — keeldumine uute privileegide saamine loodud protsessis; CLONE_AUTOREAP — protsessi automaatne lõpetamine selle asemel, et see muutuks zombiks, kuni vanemprotsess funktsiooni wait() täidab; CLONE_PIDFD_AUTOKILL — lapsprotsessi lõpetamine, kui sellega seotud pidfd-deskriptor suletakse (näiteks vanemprotsessi lõpetamisel).
  • Iga kernelimooduli jaoks kataloogis /sys/module on lisatud fail import_ns, mis sisaldab imporditud sümbolite nimede loendit (sümboli nimede ruum).
  • Süsteemis io_uring on lisatud toetus BPF-alamsüsteemi kasutamiseks töödeldajate loomisel. Näiteks saab peamise häälestus tsükli asendada BPF-programmiga.
  • BPF-alamsüsteemis uuendatud kutsungi kasutamise analüüs, mis on oluliselt kiirendanud paljude BPF-programmide valideerimise kontrolli.
  • Toimivuse optimeerimise eesmärgil ülevaadatud hrtimer (kõrge täpsusega taimer) alamsüsteem. Ülesannete planeerija saab nüüd kasutada kõrge täpsusega taimerite, ilma et see performance’i kaotaks, asemel vähem täpseid taimerite.
  • Jätkub muudatused Rust-for-Linux harust, mis on seotud Rusti keele kasutamisega teise keelena draiverite ja tuumamoodulite arendamisel (Rusti tugi ei ole vaikimisi aktiveeritud ja ei too kaasa Rusti lisamist tuuma kohustuslike ehitus sõltuvuste hulka). Enne versiooni 1.85 (mis tarnitakse Debian 13) on suurenenud Rusti versiooni nõuded tuumakomponentide ehitamiseks. Lisatud eksperimentealne Kconfig valik CONFIG_RUST_INLINE_HELPERS, et integreerida C-kihid Rusti koodi koostamise ajal (optimeerimine kiirendas null-bloki draiveri tööd 2%). Lisatud makro 'const_assert!'. Laiendatud moodulite funktsioone sizes, clk, ptr, sync, error.
  • Mehhanismi SCHED_EXT, võimaldades kasutada BPF-i CPU planeerijate loomiseks, on lisatud esialgne võimalus luua pesakavasid (sub-scheduler), mille abil saab iga cgroupi jaoks rakendada oma ülesannete planeerijat.
  • Jätkub vahetussüsteemi (swap) optimeerimine. Eemaldatud vana struktuur swap_map, asendatud mehhanismiga „Swap Table“. Muudatus võimaldas suurendada jõudlust ja vähendada mälu kasutamist vahetussüsteemis.
  • Vahetussüsteemi DAMON (Data Access MONitor), mis võimaldab jälgida protsessi juurdepääsu andmetele operatiivmälu (näiteks saad teada, millistele mälu aladele protsess juurde pääseb ja millised mälu alad on kasutamata jäänud), on lisatud toetust erinevatele automaatse häälestamise kvootide.
  • Jälgimisse süsteemis on rakendatud on väline ringpuhvrite kontseptsioon, mis võimaldab saada jälgimisandmeid virtuaalmasinatest. See funktsioon on aktiveeritud KVM-hüperviisorites ja nVHE jälgimisandmete edastamiseks külalisüsteemist hosti poole.
  • Vahetussüsteemi RV (kernel.org) (Runtime Verification), mis on mõeldud kõrge töökindlusega süsteemide korrektse toimimise kontrollimiseks, on lisatud komponente, mis jälgivad "stall" ajakava, mille täitmine on ajutiselt peatatud või blokeeritud, ja "deadline" ülesande planeerija käitumise analüüsimiseks.
Virtualiseerimine ja turvalisus
  • Vaikimisi on seatud lipp PROC_MEM_FORCE_PTRACE, mis võimaldab üle minna protsessi mälu juurdepääsuõiguste õigussüsteemile failis /proc/PID/mem ainult protsesside jaoks, mis kasutavad tõrkeotsingu jaoks süsteemikõnet ptrace().
  • Lisatud uus hookide kogum LSM-moodulitele (Linux Security Module), mis lihtsustab poliitikate rakendamist virnastatud failisüsteemide jaoks, nagu overlayfs. LSM-is samuti lisatud Unix-socketite ligipääsu haldamiseks mõeldud hook, mis kasutatakse on LSM-moodulis Landlock Unix-socketite ligipääsu poliitikate määramiseks.
  • Sisseehitatud krüptokogumik lib/crypto, mis pakub lihtsamaid ja kiiremaid funktsioone kui traditsiooniline krüpto API, on lisatud toetab algoritme AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH ja SM3. Lisatud dokumentatsioon lib/crypto.
  • Realiseeritud režiim pKVM (Protected KVM) rangeks isoleerimiseks anonüümsest mälust kasutades virtualiseerimise laiendusi AArch64 arhitektuuri jaoks. Antud režiimis välistatakse külgmise süsteemi virtuaalse aadressitabelist külgkonna mälulehed.
  • KVM-hüperehitusse on lisatud tugi viienda versiooni ARM-i virtuaalse katkestuste kontrolleri (VGICv5 — ARM Virtuaalne Üksikasjalik Katkestuste Kontroller v5).
Võrgu alamsüsteem
  • Unix-socketite jaoks, mida loob funktsioon socket(), on rakendatud toetatakse laiendatud faili atribuute (xattr) user.*. Rakendusvaldkondades mainitakse siltide määramist Unix-socketitele, mida kasutatakse IPC Varlink'i jaoks, et neid eristada üldisest massist IPC töö inspekteerimiseks ja tõrkeotsimiseks BPF-programmide abil. Systemd-journald'is on laiendatud atribuute kavas kasutada logifaili vormingu määramiseks, seondudes socket'iga /dev/log.
  • Eemaldatud UDP-Lite protokolli tugi (RFC 3828), mis võimaldab edastada vigase kontrollsummaga pakette, lootes, et näiteks osaliselt kahjustatud heli- ja videod võiksid koodikihi tasemel taastuda. Protokoll eemaldati, kuna keegi ei kasuta seda.
  • Eemaldatud IPv6 staki kokkupanemise võimalus, tuumamooduli kujul, mida praktikas ei kasutatud (IPv6 kas integreeritakse tuuma või deaktiveeritakse täielikult), kuid mille tõttu oli hooldamine keeruline, kuna IPv6 mooduli koostamisel (CONFIG_IPV6=m), pidi palju alamsüsteeme lisama kasutult töötlejat, juhuks kui IPv6 moodul välja lastakse.
Seadmed
  • AMD GPU draiveris seal uus kuvamootor (DC) AMD HD 7000 seeria APU-de jaoks (Sea Islands, GCN 1.1).
  • Nouveau draiveris on lisatud NVIDIA GA100 GPU algtugi Ampere mikroarhitektuuril.
  • Jätkuvalt töötatakse Intel Xe arhitektuuril põhineva GPU drm-draiveri (Direct Rendering Manager) kallal, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikas alates Tiger Lake'i protsessoritest. Lisatud tugi Intel Nova Lake-P protsessorite graafilise alamsüsteemi jaoks. Rakendatud on puhastatavad puutepunktide objektid (Purgeable Buffer Objects).
  • NVIDIA GSP-firmware'iga varustatud GPU-de Nova draiveri komponentide integreerimine jätkub, kasutades Turingi mikroarhitektuuril põhinevaid NVIDIA GeForce RTX 2000 seeria alates. Draiver on kirjutatud Rust keeles. Turingi mikroarhitektuuril põhineva GPU algtoetuse lisamine.
  • Lisatud DRM-draiver corebootdrm graafika väljundite haldamiseks CoreBoot'i püsivara raami kaudu.
  • Lisatud AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP ja WM8962 ASoC heli toetus. Parandatud USB-heliseadmete toimetulekut: 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ülearvutites ventilaatori pöörlemiskiiruse jälgimiseks.
  • Lisatud ARM-platvormide, SoC-de ja seadmete toetus: 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 Baikal-T1 SoC-dele rakendatavad AHCI SATA ja PCIe kontrollerite toetus, samuti ajas, mälu, physmap, buss, hwmon, dwc ja bt1-rom draiverite toetus. Eemaldamise põhjuseks on toega puudumine ja lõpetamata integreerimine Baikali platvormi komponentide tuumasse, mille tootmine Venemaal lõpetati novembris 2025.
  • Eemaldatud 12 Ethernet-seadmete draiverit, millel on ISA ja PCMCIA liidesed ja mis on toodetud enne 2002. aastat, mille kasutajad ei leidunud ja kes ei kasutanud neid töösüsteemides. Samuti on tuumast 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 (amatöörraadioside), inport ja logibm (busmouse). Eemaldamise põhjuseks oli aktiivsete arendajate puudumine taustal, mil syzbot ja AI-tööriistade abil avastatud vigade arv suurenes, mida keegi ei ole valmis parandama, ning kogu koormus oluliste probleemide lahendamiseks lasub tuuma peamise võrgu alamsüsteemi arendajatel. Kokku on eemaldatud üle 140 000 koodirea.

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster