Pēc diviem attīstības mēnešiem Linus Torvalds prezentēja Linux 7.1 kodola izlaišanu. Starp vispamanāmākajiem uzlabojumiem: jauns ntfsplus draiveris, pirmā fāze atbalsta pārtraukšanai CPU i486, veco Ethernet adapteru noņemšana, ISDN un AX.25 protokolu dzēšana, Intel FRED mehānisma iekļaušana pēc noklusējuma, BPF apstrādātāju atbalsts io_uring, lapas apstrādes apakšsistēmas optimizācija, apakšplānotāju atbalsts sched_ext, ievadi/izvadi zero-copy režīmā ublk draiverī, ioctl operācija "shutdown" Btrfs, dinamiska veiktspējas režīma maiņa amd-pstate draiverī, xattr atbalsts Unix soketiem.
Jaunajā versijā ir pieņemti 17275 labojumi no 2589 izstrādātājiem,
pārslēguma lielums — 57 MB (izmaiņas skārušas 13528 failus, pievienotas 751785 koda rindas, dzēstas 405916 rindas). Iepriekšējā izlaidumā bija 15624 labojumi no 2477 izstrādātājiem, pārslēguma lielums — 56 MB. Aptuveni 41% no visām 7.1 izmaiņām ir saistītas ar ierīču draiveriem, aptuveni 12% izmaiņu attiecas uz aparatūras arhitektūrām specifiskā koda atjauninājumiem, 14% attiecas uz tīkla steku, 5% — uz failu sistēmām un 3% — uz kodola iekšējām apakšsistēmām.
Galvenās jaunās funkcijas kodolā 7.1 (1, 2, 3):
- Disku apakšsistēma, I/O un failu sistēmas
- Pieņemta jauna NTFS failu sistēmas realizācija — ntfsplus, balstīta uz kodu, kas izņemts no klasiskā ntfs draivera. Vecais draiveris tika pārstrādāts, paplašināts ar datu rakstīšanas iespējām un pielāgots, lai atbalstītu mūsdienīgas funkcijas, piemēram, lapu foliju (folios) izmantošanu buffer_head struktūras vietā. Jaunajā draiverī ir ieviesta atliekamā bloku piešķiršana, kas ļauj sasniegt augstu rakstīšanas veiktspēju un samazināt fragmentāciju. Bufferaudu rakstīšanas/lasīšanas, tiešā ievades/izvades, ekstensiju kartēšanas un lapu rakstīšanas/lasīšanas operācijām tiek izmantota iomap bibliotēka. Testos iozone ntfsplus draiveris izrādījās par 3-5% ātrāks nekā ntfs3 vienas koncepcijas režīmā un par 35-110% izmantojot 4 pavedienus. Ntfsplus un ntfs3 lasīšanas ātrums ir aptuveni vienā līmenī. Ntfs3 draiveris paliek kodola sastāvdaļā un tajā tiek veiktas labojumi un nelieli uzlabojumi.
- Pievienota atbalsts integritātes pārbaudes T10 datu ģenerēšanai un verificēšanai failu sistēmas līmenī, nevis blokierīces līmenī, kas ļauj uzlabot Lasīšanas operāciju veiktspēju.
- Blokierīču draiverī ublk, kas ļauj izvest specifisko loģiku lietotāja procesā, pievienots atbalsts ievadei/izvadei caur koplietotu atmiņu bez datu kopēšanas starp buferiem (zero-copy režīmā).
- Paššifrējošiem blokierīcēm SED-OPAL pievienoti ioctl, lai pārvaldītu Single User režīmu un īstenota komanda STACK_RESET.
- Btrfs izsludināta stabila atbalsta nodrošināšana ioctl operācijai "shutdown", kas ļauj pārvērst FS stāvoklī, kurā tiek mēģināts pabeigt jau uzsāktās operācijas, bet tiek bloķētas visas jaunas operācijas.
- exfat īstenota iespēja rezervēt tukšas zonas, izmantojot fallocate() izsaukumu.
- CIFS failu sistēmā pievienots atbalsts pagaidu failu izveidei ar O_TMPFILE karogu.
- Sistēmas izsaukumam fsmount() pievienota opcija FSMOUNT_NAMESPACE, kas izveido jaunu monētu punktu nosaukumu telpu montējamajai failu sistēmai. Sistēmas izsaukumos clone3() un unshare() pievienoti karogi, lai iegūtu jauno monētu punktu nosaukumu telpu, kas satur tikai montētu tukšu FS-ārsli uz nullfs bāzes, fs-dax draiveri ar FS saskarni DAX ierīcēm (Tiešās piekļuves).
- NFS serverī pievienota aizsardzība pret failu deskriptoru uzbrukumiem, ko īsteno ar deskriptoru parakstīšanu ar kriptogrāfisku parakstu. Aizsardzību iespējams ieslēgt ar montēšanas opciju sign_fh.
- Pievienots simboliskā draivera fs-dax, kas nodrošina saskarni, lai mijiedarbotos ar DAX ierīcēm (Tiešā Piekļuve), kas atbalsta darbību bez lapu kešatmiņas. Norādītā saskarne ir nepieciešama integrācijai famfs failu sistēmā, kas tiek novietota operatīvajā atmiņā.
- Ceph failu sistēmā īstenota metriku par ievadi/izvadi apkopošana saistībā ar nodaļām.
- Atmiņa un sistēmas pakalpojumi
- Ir pieņemta pirmā izmaiņu sērija, lai pārtrauktu atbalstu i486 procesoriem. No Kconfig ir izņemti iestatījumi kodola kompilācijai ar atbalstu 486DX, 486SX un AMD ELAN procesoriem (CONFIG_M486, CONFIG_M486SX un CONFIG_MELAN), kā arī no Makefile ir izslēgti kompilācijas iestatījumi i486 sistēmām (-march=i486). Kods faktiskajai atbalstam i486 procesoros joprojām ir atstāts kodolā, taču šādu sistēmu kompilācija tagad prasīs veikt izmaiņas kompilācijas failos. Izņemšanas iemesli ir vēlme atbrīvot kodolu no sarežģīta koda, kas emulē dažas aparatūras operācijas, piemēram, CX8 (salīdzināt un apmainīt 8 baitus) un TSC (CPU ciklu skaitītājs, ko izmanto uzdevumu plānotājā).
- AMD procesoru enerģijas patēriņa pārvaldībai izmantotajā amd-pstate draiverī ir ieviesta dinamiskā veiktspējas iestatījumu maiņa un barošanas vadības uzvedība atkarībā no stacionārās vai akumulatora barošanas. Savienojot ar elektroenerģiju, tagad tiek aktivizēts 'performance' režīms, bet akumulatora darbībā - 'balance_performance'.
- Pēc noklusējuma ir aktivizēts Intel FRED (Flexible Return and Event Delivery) mehānisms, kas palielina zema līmeņa notikumu informācijas piegādes efektivitāti un uzticamību. Veiktspējas palielināšana un aizkaves samazināšana tiek panākta, izmantojot CPU instrukciju IRET notikumu atgriešanai, nevis notikumu nosūtīšanai caur IDT tabulu (Interrupt Descriptor Table). Uzticamības palielināšana tiek nodrošināta ar atsevišķu notikumu apstrādi kodola un lietotāja kontekstā, aizsargājot no iegultas NMI izpildes un saglabājot paplašinātajā steka kadrā visus ar izņēmumiem saistītos CPU reģistrus.
- Perf apakšsistēmā pievienota atbalsts atmiņas veiktspējas uzraudzības blokiem (PMU - veiktspējas uzraudzības vienība), ko izmanto NVIDIA Tegra410 SoC.
- ARM sistēmās ir paātrināta futex operāciju izpilde, izmantojot Arm 9.6 LSUI instrukcijas, kas ļauj kodolam piekļūt lietotāju atmiņai bez iepriekšējas PAN (Privileged Access Never) modža atslēgšanas.
- ARM procesoriem ir uzlabota MPAM (Memory System Resource Partitioning and Monitoring) arhitektūras komandu kopas atbalsts, un pievienota iespēja to izmantot lietotāja telpā resursu pārvaldīšanai, izmantojot resctrl mehānismu. MPAM nodrošina katras piekļuves atmiņai marķēšanu ar nodaļas identifikatoru (PARTID, Partition ID) un uzraudzības grupas identifikatoru (PMG, Monitoring Group ID). Saistībā ar PARTID var ierobežot resursu patēriņu, piemēram, atmiņas joslas platumu vai kešatmiņas lielumu, lai kāda uzdevumu grupa neaizņemtu visus resursus. Uzraudzības kontekstā PMG un PARTID kombināciju var izmantot, lai izsekotu atmiņas resursu patēriņu noteiktu slodžu veidu laikā.
- Ir pievienota iespēja izmantot reāllaika režīmu (PREEMPT_RT) 32 bitu ARM procesoros. Iepriekš PREEMPT_RT atbalsts tika nodrošināts x86 un x86-64, ARM64, RISC-V un LoongArch arhitektūrām.
- Sistēmas izsaukumā clone3() pievienoti jauni karogi: CLONE_NNP - aizliegums iegūt jaunus privilēģijas jaunizveidotajā procesā; CLONE_AUTOREAP - automātiska procesa pabeigšana, nevis tā pārveidošana par zombi procesu līdz vecāka procesa wait() funkcijas izpildei;
CLONE_PIDFD_AUTOKILL - bērnu procesa pabeigšana, ja saistītais pidfd deskriptor tiek aizvērts (piemēram, vecāka procesa izbeigšanas gadījumā). - Katram kodola modulim direktorijā /sys/module pievienota fails import_ns, kurā ir importēto simbolu nosaukumu telpu saraksts.
- Asinhronā ievade/izeja io_uring sistēmā pievienots atbalsts BPF subsistēmas izmantošanai apstrādātāju izveidē. Piemēram, var nomainīt galveno izpildes ciklu uz BPF programmu.
- BPF subsistēmā uzlabota steka izmantošanas analīze, kas ievērojami paātrināja daudzu BPF programmu verifikatora pārbaudi.
- Lai optimizētu veiktspēju, pārstrādāta hrtimer (augstas precizitātes taimeris) subsistēma. Uzdevumu plānotājs tagad var izmantot augstas precizitātes taimerus bez veiktspējas zuduma, nevis mazāk precīzus taimerus.
- Turpināta izmaiņu pārvietošana no Rust-for-Linux filiāles, kas saistītas ar Rust valodas izmantošanu kā otro valodu draiveru un kodola moduļu izstrādē (Rust atbalsts pēc noklusējuma nav aktivizēts un nenoved pie Rust iekļaušanas obligātajās kodola būvniecības atkarībās). Līdz 1.85 versijai (tiek piegādāta Debian 13) ir paaugstinātas prasības attiecībā uz Rust versiju, kas nepieciešama kodola komponentu būvniecībai. Pievienota eksperimentālā Kconfig iespēja CONFIG_RUST_INLINE_HELPERS C valodas ieliekšanai Rust kodā kompilācijas laikā (optimizācija paātrināja null blokdrajvera darbību par 2%). Pievienots makro ‘const_assert!’. Paplašinātas 'sizes', 'clk', 'ptr', 'sync', 'error' moduļu iespējas.
- SCHED_EXT mehānismam, kas ļauj izmantot BPF CPU plānotāju izveidei, pievienota sākotnējā iespēja izveidot ieliktus plānotājus (sub-scheduler), ar kuriem katrai cgroup var piesaistīt savu uzdevumu plānotāju.
- Turpināta apmaiņas apakšsistēmas optimizācija. Noņemta vecā swap_map struktūra, ko aizstājusi 'Swap Table' mehānisms. Šī izmaiņa ļāva uzlabot veiktspēju un samazināt atmiņas patēriņu apmaiņas apakšsistēmā.
- DAMON (Data Access MONitor) apakšsistēmā, kas ļauj uzraudzīt procesa piekļuvi datiem operatīvajā atmiņā (piemēram, var uzzināt, kurām atmiņas jomām process piekļuva, un kādas atmiņas jomas palika nenodotas), pievienota atbalsts dažādiem automātiskā iestatījuma kvotu algoritmiem.
- Izsekošanas apakšsistēmā ieviesta ārējo riņķa buferu koncepcija, kas ļauj iegūt izsekošanas datus no virtuālo mašīnu. Šī iespēja tiek izmantota hipervizoros KVM un nVHE, lai pārsūtītu izsekošanas datus no viesu sistēmas uz hosta pusi.
- RV (Runtime Verification) apakšsistēmā, kas paredzēta augstas uzticamības sistēmu darba pareizības pārbaudei, pievienoti 'stall' uzraudzības komponenti, lai izsekotu uzdevumiem, kuru izpilde ir pagaidu apturēta vai bloķēta, un 'deadline' uzdevumu plānotāja uzvedības analīzei.
- Virtualizācija un drošība
- Noklusējuma vērtība ir iestatīts PROC_MEM_FORCE_PTRACE karogs, kas ļauj apiet piekļuves tiesības uz procesa atmiņu caur failu /proc/PID/mem tikai tiem procesiem, kas izmanto ptrace() sistēmas izsaukumu atkļūdošanai.
- Pievienots jauns hook-ūdens komplekts LSM moduļiem (Linux Security Module), kas atvieglo politiku īstenošanu steka failu sistēmās, piemēram, overlayfs. LSM ir pievienots arī hook, lai kontrolētu piekļuvi Unix izsaukumiem, kas tiek izmantots LSM modulī Landlock, lai piešķirtu piekļuves politikas Unix izsaukumiem.
- Iebūvētajā kriptogrāfijas bibliotēkā lib/crypto, kas nodrošina vienkāršākas un ātrākas funkcijas nekā tradicionālais crypto API, pievienota atbalsts algoritmiem AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH un SM3. Pievienota dokumentācija par lib/crypto.
- Realizēta pKVM (Protected KVM) režīms stingrai anonīmās atmiņas izolācijai, izmantojot virtualizācijas paplašinājumus AArch64 arhitektūrai. Šajā režīmā viesu atmiņas lapas tiek izslēgtas no saimniekuzņēmuma sistēmas virtuālo adresu tabulas.
- KVM hipervizorā pievienots piektais ARM pārtraukuma kontroliera (VGICv5 - ARM Virtual Generic Interrupt Controller v5) versijas atbalsts.
- Tīkla subsistēma
- Unix soketiem, kas tiek izveidoti, izmantojot funkciju socket(), ir ieviesta atbalsta paplašinātajām failu īpašībām (xattr) „user.*”. No pielietojuma jomām tiek atzīmēta marķējumu izsniegšana, izmantojot paplašinātās īpašības Unix soketiem, ko izmanto IPC Varlink, lai tos izceltu no kopējā daudzuma, lai pārbaudītu un atkļūdotu IPC darbību, izmantojot BPF programmas. Systemd-journald paplašinātās īpašības paredz izmantot, lai noteiktu žurnāla formātu, saistībā ar soketu /dev/log.
- Noņemts atbalsts UDP-Lite protokolam (RFC 3828), kas atļauj piegādāt paketes ar nepareizu kontrolsummu, cerot, ka, piemēram, daļēji bojāti audio un video dati var tikt atjaunoti kodeka līmenī. Protokols ir noņemts, jo to neizmanto neviens.
- Noņemta IPv6 steka savākšana kā kodola modulis, kas praksē netika izmantots (IPv6 vai nu tiek iekļauts kodolā, vai pilnībā atslēgts), bet sarežģīja uzturēšanu, jo, veidojot IPv6 kā kodola moduli (CONFIG_IPV6=m), daudzas apakšsistēmas bija spiestas pievienot nevajadzīgus apstrādātājus, gadījumam, ja IPv6 modulis tiek izņems.
- Aprīkojums
- AMDGPU draiverī iekļauts jauns displeja dzinējs (DC) AMD APU sērijai HD 7000 (Sea Islands, GCN 1.1).
- Nouveau draiverī pievienots sākotnējais atbalsts NVIDIA GA100 GPU, kas balstīts uz mikroarhitektūru Ampere.
- Turpināta darba veikšana pie DRM vadītāja (Direct Rendering Manager) Xe Intel Xe arhitektūras GPU, kas tiek izmantota Intel Arc sērijas grafiskajās kartēs un integrētajā grafikā, sākot ar Tiger Lake procesoriem. Pievienota atbalsta iespēja Intel Nova Lake-P procesoru grafiskajai subsistēmai. Tika ieviesti tīrāmie buferi (Purgeable Buffer Objects).
- Turpināta Nova draivera komponentu integrācija NVIDIA GPU, kas aprīkoti ar GSP mikrokodām, kas tiek izmantoti kopš NVIDIA GeForce RTX 2000 sērijas, kas balstīta uz Turing mikroarhitektūras. Draiveris ir izstrādāts Rust valodā. Pievienota sākotnējā atbalsta funkcionalitāte GPU, kas balstīti uz Turing mikroarhitektūru.
- Pievienots DRM vadītājs corebootdrm grafikas attēlošanai caur CoreBoot bāzes firmware framebuffer.
- Pievienots atbalsts ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP un WM8962 skaņu ierīcēm. Uzlabots atbalsts USB saskarnes skaņas ierīcēm: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow,
PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20. - Pievienots yogafan vadītājs ventilatora griešanās ātruma izsekošanai Lenovo Yoga, Legion un IdeaPad klēpjdatoros.
- Pievienots ARM platformu, SoC un ierīču atbalsts: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 un ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Noņemts atbalsts SoC Baikal-T1 to AHCI SATA un PCIe kontrolleriem, kā arī laika, atmiņas, physmap, bosa, hwmon, dwc un bt1-rom vadītājiem. Iemesls izņemšanai ir trūkstoša apkalpošana un nepabeigta integrācija Baikal platformas komponentu kodolā, kuru ražošana Krievijā tika pārtraukta 2025. gada novembrī.
- Apmēram 12 vadītāju noņemšana Ethernet ierīcēm ar ISA un PCMCIA saskarnēm, kas ražotas līdz 2002. gadam, par kurām nav bijuši lietotāji, izmantojoši tās darba sistēmās. Tāpat no kodola izslēgta
ISDN subsistēma, AX.25, CAIF un Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol) protokolu ieviešana, yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport un logibm (busmouse) vadītāji. Izņemšanas iemesls ir aktīvo apkalpotāju trūkums, ņemot vērā pieaugumu kļūdu skaitam, ko identificējusi syzbot un AI rīki, kuras neviens neplāno labot, un visa slodze smagu problēmu novēršanai gulstas uz primārajām tīkla kodola subsistēmām. Kopumā izņemti vairāk nekā 140 tūkstoši koda rindu.
Avots: opennet.lv
