
Pēc diviem mēnešiem attīstības Linuss Torvalds prezentēja izlaida kodolu Linux 7.1. Starp ievērojamākajām izmaiņām: jauns ntfsplus datu vadītājs, pirmā fāze i486 CPU atbalsta pārtraukšanai, veco Ethernet adapteru noņemšana, ISDN un AX.25 protokolu izņemšana, Intel FRED mehānisma noklusējuma aktivizācija, BPF apstrādātāju atbalsts io_uring, maiņas subsistēmas optimizācija, apakšplānotāju atbalsts sched_ext, nulles kopēšanas I/O režīms ublk vadītājā, ioctl operācija shutdown Btrfs, dinamiska veiktspējas režīma pārslēgšana amd-pstate vadītājā, xattr atbalsts Unix soketiem.
Jaunajā versijā ir pieņemti 17275 labojumi no 2589 izstrādātājiem, ielāpa lielums — 57 MB (izmaiņas ietekmēja 13528 failus, pievienotas 751785 koda rindas, izņemts 405916 rindas). Iepriekšējā izlaidumā bija 15624 labojumi no 2477 izstrādātājiem, ielāpa lielums — 56 MB. Aptuveni 41% no visām izmaiņām 7.1 versijā ir saistītas ar ierīču vadītājiem, aptuveni 12% izmaiņu ir saistītas ar aparatūras arhitektūrai specifiskā koda atjaunināšanu, 14% saistīti ar tīkla steku, 5% — ar failu sistēmām un 3% — ar iekšējām kodola subsistēmām.
Galvenās inovācijas kodolā 7.1 (kernelnewbies.org, lwn.net, opennet):
Disku apakšsistēma, I/O un failu sistēmas
- Tika pieņemta jauna implementācija NTFS failu sistēmas — ntfsplus, kas balstīta uz kodu, kas tika noņemts no klasiskā ntfs vadītāja. Vecais vadītājs tika pārstrādāts, paplašināts ar iespēju rakstīt datus un pielāgots modernajām iespējām, piemēram, izmantojot atmiņas lapas folijus (folios) vietā buffer_head struktūru. Jaunajā vadītājā ir ieviesta atlikta bloku piešķiršana, kas nodrošināja augstu rakstīšanas operāciju veiktspēju un samazināja fragmentāciju. Buferizētām rakstīšanas / lasīšanas operācijām, tiešā ievades / izvades, paplašinājumu mappēšanai un lapu rakstīšanas / lasīšanas operācijām ir izmantota bibliotēka iomap. Iozone testos ntfsplus vadītājs izrādījās par 3-5% ātrāks nekā ntfs3 vienas pavediena režīmā un par 35-110% piecu pavedienu izmantošanas gadījumā. Lasīšanas ātrums ntfsplus un ntfs3 ir aptuveni vienā līmenī. Ntfs3 vadītājs paliek kodolā, un tas ir iekļauts labojumos un nelielos uzlabojumos.
- Tika pievienots atbalsts datu integritātes pārbaudes ģenerēšanai un verificēšanai T10 (deepwiki.com) failu sistēmas līmenī, nevis blokierīces līmenī, kas ļauj uzlabot lasīšanas operāciju veiktspēju.
- Bloku ierīces vadītājā ublk, kas ļauj iznest specifisku loģiku lietotāja procesa pusē, pievienots atbalsts ievadei/izvadei caur kopīgu atmiņu bez datu kopēšanas starp buferiem (zero-copy režīms).
- Paššifrujošiem blokiem SED-OPAL ir pievienotas ioctl režīma pārvaldībai Single User un ir realizēta komanda STACK_RESET.
- Btrfs ir pasludinājusi stabilu atbalstu 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 ir ieviesta iespēja rezervēt tukšas zonas caur fallocate() izsaukumu.
- CIFS failu sistēmā ir pievienota atbalsts pagaidu failu izveidei ar O_TMPFILE karogu.
- Sistēmiskajā izsaukumā fsmount() ir pievienota opcija FSMOUNT_NAMESPACE, kas izveido jaunu nosaukumu telpu montāžas punktiem mapei. Sistēmiskajiem izsaukumiem clone3() un unshare() ir pievienoti karogi, lai atgrieztu jauno montāžas punktu nosaukumu telpu, kas satur tikai montētu tukšu FS stāvpunkta uz nullfs bāzes, fs-dax draiveri ar FS saskarni uz DAX (tiešās piekļuves) ierīcēm.
- NFS serverī pievienots ir ieviesta aizsardzība pret failu descriptoru uzbrukumiem, kas tiek īstenota, apstiprinot descriptorus ar kriptogrāfisko parakstu. Aizsardzība tiek aktivizēta, izmantojot montāžas opciju sign_fh.
- Pievienots simboliskais fs-dax draiveris, kas nodrošina saskarni mijiedarbībai ar DAX (kernel.org) (tiešā piekļuve), kas atbalsta darbību apejot lappušu kešu. Norādītā saskarne ir nepieciešama integrācijai failu sistēmas kodolā famfs, kas izvietota operatīvajā atmiņā.
- Ceph failu sistēmā realizēts ir ieviesta metrikas vākšana par ievadi/izvadi, saistītiem ar apakšvienībām.
Atmiņa un sistēmas pakalpojumi
- Pieņemts Pirmā izmaiņu sērija procesoru i486 atbalsta pārtraukšanai. No Kconfig ir izņemti opcijas kodu būvei ar 486DX, 486SX un AMD ELAN procesoru atbalstu (CONFIG_M486, CONFIG_M486SX un CONFIG_MELAN), un no Makefile ir izslēgtas kompilācijas opcijas i486 sistēmām (-march=i486). Kods faktiskajai i486 procesoru atbalsta saglabāšanai joprojām ir kodolā, taču būvēšana šādām sistēmām tagad prasīs palīgrīku pielietojumu būves failu izmaiņām. Atbalsta 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 (procesora ciklu skaitītājs, ko izmanto uzdevumu plānotājā).
- AMD procesoru enerģijas patēriņa pārvaldības vadītājā amd-pstate, realizēta dinamiskā veiktspējas iestatījumu pārslēgšana un enerģijas pārvaldības uzvedības maiņa atkarībā no tā, vai sistēma ir pieslēgta pie strāvas avota vai darbojas no akumulatora. Kad ir pieslēgta strāva, tiek aktivizēts veiktspējas režīms, bet akumulatora darbības režīmā — līdzsvarots veiktspēja.
- Pēc noklusējuma ir ieslēgts mehānisms Intel FRED (Flexible Return and Event Delivery), kas ļauj uzlabot zemu līmeņu notikumu informācijas piegādes efektivitāti un uzticamību. Veiktspējas uzlabošana un kavējumu samazināšana tiek panākta, atgriežot notikumus, izmantojot procesora instrukciju IRET, nevis nododot notikumus caur IDT (Interrupcijas apraksta tabula). Uzticamības uzlabošana tiek sasniegta, izmantojot atsevišķu notikumu apstrādi kodola un lietotāja kontekstā, aizsardzību no NMI ieguldīšanas un saistīto CPU reģistru saglabāšanu paplašinātajā steka kadros.
- Perf apakšsistēmā pievienots atbalsts atmiņas veiktspējas uzraudzības blokiem (PMU — Performance Monitoring Unit), ko izmanto SoC NVIDIA Tegra410.
- ARM sistēmās ir paātrinātas futex operāciju izpildes, pateicoties Arm 9.6 LSUI instrukciju izmantošanai, kas ļauj kodolam tieši piekļūt lietotāja atmiņai bez iepriekšējas aizsardzības režīma atslēgšanas. PAN (arm.com) (Privileged Access Never).
- ARM procesoru sistēmās ir uzlabots komandu kopas paplašinājuma atbalsts MPAM (Atmiņas sistēmas resursu sadalie un uzraudzība) un pievienota iespēja to izmantot lietotāja telpā resursu pārvaldībai caur mehānismu resctrl. MPAM nodrošina katras piekļuves atmiņai marķējumu ar sekcijas 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 caurlaidību vai kešatmiņas lielumu, lai kāda uzdevumu grupa neaizņemtu visus resursus. Uzraudzības kontekstā kombināciju PMG un PARTID var izmantot, lai sekotu līdzi atmiņas resursu patēriņam noteiktu slodžu veidu laikā.
- Pievienota iespēja izmantot reālā laika režīmu (PREEMPT_RT) uz 32 bitu ARM procesoriem. Iepriekš PREEMPT_RT atbalsts tika nodrošināts x86 un x86-64, ARM64, RISC-V un LoongArch arhitektūrām.
- Sistēmiskajā izsaukumā clone3() pievienoti jauni karodziņi: CLONE_NNP — aizliegums saņemt jaunas privilēģijas izveidotajā procesā; CLONE_AUTOREAP — automātiska procesa pabeigšana, nevis tā pārvēršana par zombi procesu līdz vecāku procesa wait() funkcijas izpildei; CLONE_PIDFD_AUTOKILL — bērnu procesa pabeigšana, ja tiek aizvērtas saistītā pidfd saite (piemēram, kad tiek izbeigts vecāku process).
- Katram kodola modulim direktorijā /sys/module ir pievienota failu import_ns, kas satur importēto simbolu nosaukumu telpu sarakstu (simbola nosaukumu telpa).
- Asinhronā ievadi/izvadi io_uring sistēmā ir pievienota atbalsta izmantošana BPF apakšsistēmā, lai izveidotu apstrādātājus. Piemēram, var aizstāt galveno uztvērēja ciklu ar BPF programmu.
- BPF apakšsistēmā atjaunots steķadara izmantošanas analīze, kas ievērojami paātrinājusi daudzu BPF programmu verifikatora pārbaudi.
- Lai optimizētu veiktspēju pārrakstīta hrtimer apakšsistēma (augstas izšķirtspējas taimeris). Uztvērēja plānotājs tagad var izmantot augstas izšķirtspējas taimerus bez veiktspējas zuduma, aizvietojot mazāk precīzus taimerus.
- Turpināts izmaiņas no Rust-for-Linux zara, saistībā ar Rust valodas izmantošanu kā otro valodu draiveru un kodola moduļu izstrādē (Rust atbalsts nav aktivizēts pēc noklusējuma un nenoved pie Rust iekļaušanas obligāto atkarību sarakstā kodolam). Līdz versijai 1.85 (ieviesta Debian 13) ir palielinātas prasības attiecībā uz Rust versiju, kas nepieciešama kodola komponentu būvēšanai. Pievienota eksperimentāla Kconfig opcija CONFIG_RUST_INLINE_HELPERS, kas ļauj iekļaut C interfeisus Rust kodā kompilācijas laikā (optimizācija paātrināja null bloku draivera darbību par 2%). Pievienots makro 'const_assert!'. Tika paplašinātas modulu funkcijas sizes, clk, ptr, sync, error.
- Mechanism SCHED_EXT, kas ļauj izmantot BPF CPU plānotāju izveidei, pievienots sākotnējā iespēja izveidot iekšējos plānotājus (sub-scheduler), kuriem katrai cgroup var piešķirt atsevišķu uzdevumu plānotāju.
- Turpināta swap apakšsistēmas optimizācija. Noņemta vecā swap_map struktūra, aizstāta ar mehānismu „Swap Table”. Izmaiņas ļāva palielināt veiktspēju un samazināt atmiņas patēriņu swap apakšsistēmā.
- Apakšsistēmā DAMON (Datu Piekļuves MONitors), kas ļauj uzraudzīt procesa piekļuvi datiem operatīvajā atmiņā (piemēram, var uzzināt, uz kurām atmiņas teritorijām process ir piekļuvis, un kuras atmiņas teritorijas palikušas neizmantotas), pievienots atbalsts dažādiem automātiskā tune kvotas.
- Apakšsistēmā izsekošana ir ieviesta ārējo apļa buferu koncepcija, kas ļauj saņemt izsekošanas datus no virtuālajām mašīnām. Iespēja ir iesaistīta KVM hipervizoros un nVHE datu pārsūtīšanai no viesu sistēmas uz saimniek datoru.
- Apakšsistēmā RV (kernel.org) (Runtime Verification), kas paredzēta augsti uzticamu sistēmu darbības pareizības pārbaudei, pievienotas uzraudzības komponentes „stall”, lai uzraudzītu uzdevumus, kuru izpilde ir pagaidu apturēta vai bloķēta, un „deadline”, lai analizētu uzdevumu plānotāja uzvedību.
Virtualizācija un drošība
- Pēc noklusējuma iestatīts PROC_MEM_FORCE_PTRACE karogs, kas ļauj apiet piekļuves tiesības uz procesa atmiņu, izmantojot failu /proc/PID/mem tikai procesiem, kas izmanto ptrace() sistēmas izsaukumu, lai veiktu atkļūdošanu.
- Pievienots jauns hook kopums LSM moduļiem (Linux Security Module), kas vienkāršo politiku īstenošanu steka failu sistēmām, piemēram, overlayfs. Arī LSM iegūts atslēga piekļuves pārvaldībai Unix kontaktligzdām, kas tiek izmantots atrodas LSM modulī Landlock, lai noteiktu piekļuves politikas Unix kontaktligzdām.
- Iebūvētajā kriptogrāfijas bibliotēkā lib/crypto, nodrošinot vienkāršākas un ātrākas funkcijas nekā tradicionālais crypto API, pievienots atbalsts algoritmiem AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH un SM3. Pievienota dokumentācija atbalsts lib/crypto.
- Ieviests režīms pKVM (Aizsargātais KVM) stingrai izolācijai anonymizētai atmiņai izmantojot virtualizācijas paplašinājumus AArch64 arhitektūrai. Šajā režīmā viesējo atmiņas lapas tiek izslēgtas no viesējo sistēmu virtuālajām adresēm.
- KVM hipervizoram pievienots atbalsts piektajai versijai ARM virtuālajam pārtraukumu kontrolierim (VGICv5 — ARM Virtual Generic Interrupt Controller v5).
Tīkla subsistēma
- Attiecībā uz Unix kontaktligzdām, ko rada funkcija socket(), ir ieviesta ir ieviests paplašināto failu atribūtu (xattr) user.* atbalsts. No pielietošanas jomām atzīmējama marķēšana caur paplašinātajiem atribūtiem Unix kontaktligzdām, ko izmanto IPC Varlink, ar mērķi tās izcelt no kopējās masas inspekcijai un kļūdu novēršanai IPC, izmantojot BPF programmas. Systemd-journald plāno izmantot paplašinātos atribūtus, lai noteiktu žurnāla formātu attiecībā uz kontaktligzdu /dev/log.
- Azurēta ir atbalsts UDP-Lite protokolam (RFC 3828), kas ļauj paketu piegādi ar nepareizu kontrolsummu, pieņemot, ka daļēji bojāti audio un video dati var tikt atjaunoti kodeka līmenī. Protokols ir noņemts, jo to neizmanto nevienu.
- Ir noņemta iespēja IPv6 steka izveidei kā kodola moduļa, kas praksē netika izmantots (IPv6 vai nu tiek iekļauts kodolā, vai pilnībā atslēgts), taču sarežģīja uzturēšanu, jo, veidojot IPv6 moduļa kodolu (CONFIG_IPV6=m), daudzās apakšsistēmās ir jāpievieno nevajadzīgi apstrādātāji, ja IPv6 modulis tiek iznests.
Aprīkojums
- AMDGPU draiverī ir iekļauts jauns ekrāna dzinējs (DC) AMD APU HD 7000 sērijai (Sea Islands, GCN 1.1).
- Nouveau draiverī pievienots sākotnējais atbalsts NVIDIA GA100 GPU, kas balstīts uz Ampere mikroarhitektūru.
- Turpināta darbība pie drm-draivera (Direct Rendering Manager) Xe GPU, kas balstās uz Intel Xe arhitektūru, kas tiek izmantota Intel Arc grafiskajās kartēs un integrētajā grafikā, sākot ar Tiger Lake procesoriem. Pievienots atbalsts Intel Nova Lake-P procesoru grafiskajai sistēmai. Ieviestas attīrāmās buferu objekti (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-draiveris corebootdrm grafikas atbalstam caur CoreBoot pamata mikrokodu.
- Pievienota atbalsts ASoC skaņām AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP un WM8962. Uzlabots USB saskarnes skaņas ierīču atbalsts: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
- Pievienots yogafan draiveris portatīvo datoru ventilatora ātruma uzraudei Lenovo Yoga, Legion un IdeaPad modeļos.
- Pievienota 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.
- Azurēta atbalsts Baikal-T1 SoC kontrolleriem AHCI SATA un PCIe, kā arī laika, atmiņas, physmap, autobusa, hwmon, dwc un bt1-rom draiveriem. Dzēšanas iemesls ir atbalsta trūkums un nepabeigtā integrācija Baikal platformas pamata komponenšu kodolā, ražošana kuras Krievijā tika pārtraukta 2025. gada novembrī.
- Noņemti 12 draiveri Ethernet ierīcēm ar ISA un PCMCIA saskarnēm, kas tika ražotas līdz 2002. gadam, un kuriem nav bijuši lietotāji, kas tos izmanto savās darba sistēmās. No kodola arī izslēgta apakšsistēma ISDN, protokolu AX.25, CAIF un Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), yellowfin draiveri (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport un logibm (busmouse). Dzēšanas iemesls bija aktīvo atbalstītāju trūkums uz fona pieaugošajam skaitam kļūdu, kas identificētas ar syzbot un AI rīkiem, kuras neviens neņemās labot, un visa slodze uz nopietnu problēmu novēršanu attiecās uz atbalstītājiem, kas nodarbojas ar pamata tīkla apakšsistēmām kodolā. Kopumā dzēsts vairāk nekā 140 tūkstoši rindu koda.
Avots: linux.org.ru
