Pēc divu mēnešu izstrādes Linus Torvalds ir izlaidis Linux 6.14 kodolu. Starp pamanāmākajām izmaiņām ir ntfs draiveris ar Windows NT sinhronizācijas primitīvām, lasīšanas operāciju izlīdzināšanas konfigurācija Btrfs RAID1, reflink atbalsts XFS reāllaika režīmā, iespēja veikt nekešējamu buferētu I/O, dmem cgroup GPU atmiņas ierobežošanai, io_uring izmantošana FUSE, atribūtu deleģēšana NFS, atomiskā rakstīšana Device mapper, simbolisko saišu paātrināšana, skriptu izpildes vadība, Qualcomm Snapdragon 8 Elite mikropunkta atbalsts, AMD NPU draiveris.
Jaunajā versijā ir iekļautas 12115 izmaiņas no 1984 izstrādātājiem, izlaišanas izmērs ir 39 MB (izmaiņas skāra 10170 failus, pievienoti 531586 koda rindiņas, noņemti 235999 rindiņas). Iepriekšējā izlaišanā bija 14172 izmaiņas no 2086 izstrādātājiem, izlaišanas izmērs bija 46 MB. Apmēram 41% no visām izmaiņām 6.14 ir saistītas ar ierīču draiveriem, aptuveni 13% izmaiņu attiecas uz aparatūras arhitektūrām specifisku koda atjauninājumu, 14% ir saistīts ar tīkla steku, 7% - ar failu sistēmām un 4% - ar iekšējām kodola apakšsistēmām.
Galvenās jaunās funkcijas kodolā 6.14:
- Disku apakšsistēma, I/O un failu sistēmas
- Failu sistēmā Btrfs ir pievienots atbalsts jauniem lasīšanas operāciju izlīdzināšanas metodēm RAID1 masīvā iekļautajiem diskiem. Papildus iepriekš definētajai slodzi, kas balstīta uz procesu identifikatoriem (pid), jaunajā versijā ir piedāvāti trīs jauni izlīdzināšanas režīmi: "rotation" (slodzes vienmērīga izdalīšana visiem diskus, režīms pēc noklusējuma ir aktivizēts); "latency" (izdalīšana, ņemot vērā atlikumus, var būt noderīga neizturīgās vai bojātās disku darbības gadījumā); devid (roku pārvaldība). Lai mainītu izlīdzināšanas režīmu, ir pievienota saskarne "\/sys\/fs\/btrfs\/\/read_policy". Starp citām izmaiņām Btrfs ir realizēta ioctl FS_IOC_READ_VERITY_METADATA.
- Tika ieviests nekāpjams buferizēta ievade/izvade režīms, kurā dati tiek izdzēsti no lapu kešatmiņas nekavējoties pēc lasīšanas vai rakstīšanas operāciju pabeigšanas. Šī izmaiņa var būt noderīga, lietojot ļoti ātras uzglabāšanas ierīces, kuru kešatmiņas operācijas atmiņā ir liekas. Šādam ierīcēm jaunais režīms ļauj izvairīties no lieka atmiņas patēriņa lapu kešatmiņā, nesniedzot sarežģītu tiešās ievades/izvades API izmantošanu.
- Fsnotify, failsistēmas izmaiņu uzraudzības mehānisms, ir pievienojis jaunu notikumu FS_PRE_ACCESS, kas tiek ģenerēts pirms piekļuves faila saturam. Notikums tiek apstrādāts sinhronā režīmā, t.i., kodols nosūta notikumu un gaida atbildi. Ja atbilde saņemta, operācija tiek veikta, bet, ja notiek kļūda, sistēmas izsaukums atgriež lietotāja telpā kļūdas kodu. Ar FS_PRE_ACCESS palīdzību lietotāja telpas process, piemēram, var organizēt faila aizpildīšanu, kad dati ir pieejami lēnā uzglabāšanā.
- FUSE apakšsistēmā, kas ļauj izveidot failu sistēmu realizācijas lietotāja telpā, ir pievienota atbalsts datu apmaiņai starp kodolu un apstrādātāju lietotāja telpā, izmantojot ievades/izvades io_uring mehānismu. Šī izmaiņa ļauj palielināt FUSE sniegumu, samazinot konteksta maiņas starp kodolu un lietotāja telpu.
- XFS failu sistēmā ir ieviesta iespēja izmantot atpakaļ mappēšanu (rmap, reverse-mapping) darbināšanas režīmā ar paredzamiem kavējumiem («realtime device»). Atpakaļ mappēšana ļauj noteikt, kuram failam tiek izmantots norādītais bloks uz uzglabāšanas ierīces. Ar rmap XFS real-time režīmā ir ieviesta reflink operācijas atbalsts, kas ļauj veidot failu kopijas, klonējot faila metadatus un izveidojot saiti uz jau esošajiem datiem bez to faktiskas kopēšanas.
- VFS ir īstenojusi simbolisko saišu izmēra kešatmiņu, ļaujot paātrināt readlink operācijas izpildi par 1.5% (testā ar /initrd.img ext4). Kešatmiņa ir ieslēgta ext4 un tmpfs failsistēmā.
- NFSv4.2 ieviešanā ir pievienota failu atribūtu deleģēšanas atbalsts, kas ļauj pārvaldīt tādus failu atribūtus kā modifikācijas laiks (mtime) NFS klienta pusē, nepārvirzot izmaiņas uz serveri. NFS ir uzlabota arī protokola «LOCALIO» atbalsts, kas ļauj noteikt, vai NFS klients un serveris atrodas uz viena un tā paša hosta, lai aktivizētu atbilstošas optimizācijas, piemēram, tiešo ievadi/izvadi (Direct I/O) no klienta puses.
- Lasīšanas operāciju veiktspēja NETFS, CIFS un AFS (Andrew Failu Sistēma) failu sistēmās ir uzlabota.
- Squashfs ir iekļauta tiešās blokpārneses režīms (SQUASHFS_FILE_DIRECT), kas ļauj iztikt bez atsevišķa read_page keša. Šī izmaiņa ir samazinājusi atmiņas patēriņu, strādājot ar Squashfs.
- Sistēmas zvana statx() ievieš STATX_DIO_READ_ALIGN karogu, lai noteiktu nepieciešamo izlīdzinājumu faila lasīšanas operācijām.
- Failu sistēmā Bcachefs ir atjaunots un stabilizēts disku struktūru formāts. Visi turpmākie formāta grozījumi tiks uzskatīti par izvēles un tiks īstenoti kā opcionalitāti papildinošās funkcijas. Ir būtiski uzlabota failu sistēmas integritātes pārbaudes ātrums. Turklāt Bcachefs ir uzlabota lasīšanas režīma darbība; novērstas problēmas, kas izraisa bibliotekas piekļuvi pēc atbrīvošanas (use after free); risinātas problēmas ar reflink rādītājiem fsck; uzlabota darījumu restartēšanas apstrāde.
- Tika atjaunots md-linear modulis, kas paredzēts bloku ierīču apvienošanai. Šis modulis iepriekš bija pasludināts par novecojušu un noņemts no kodola 6.8, taču izrādījās, ka tas ir pieprasīts, tāpēc tagad tas ir atjaunots.
- F2FS un SQUASHFS failu sistēmas ir pārgājušas uz atmiņas lapu folio izmantošanu.
- OCFS2 un DLMFS failu sistēmas ir pārgājušas uz jauna API izmantošanu, lai mountot partīcijas.
- Null_blk draiverī ir ieviesta īpašība "rotational", kas tiek iestatīta caur configfs un ļauj simulēt darba režīmu ar rotējošiem diskdziņiem, lai atvieglotu kodola funkciju testēšanu.
- Device mapper sistēmā un moduļos dm-mirror, dm-io, dm-table, dm-linear, dm-stripe un dm-raid1 ir ieviests atomiskās rakstīšanas atbalsts.
- Atmiņa un sistēmas pakalpojumi
- Pabeigta integrācija ntsync draivera kodolā, kas īsteno simbolisko ierīci /dev/ntsync un sinhronizācijas primitīvus, kas tiek izmantoti Windows NT kodolā. Šādu primitīvu īstenošana kodola līmenī ievērojami palielina Windows spēļu veiktspēju, ja tās tiek izpildītas, izmantojot Wine. Veiktspējas pieaugums tiek panākts, novēršot izmaksas, kas saistītas ar RPC izmantošanu lietotāja telpā. Atsevišķa draivera izveide Linux kodolam ir saistīta ar grūtībām pareizi īstenot NT sinhronizācijas API virs esošajām primitīvām kodolā.
- Pievienots jauns DMEM cgroup kontrolieris atsevišķai ierīču atmiņas jomu uzskaitei, piemēram, GPU. DMEM ļauj izveidot atsevišķas cgroup dažādām uzdevumu grupām, kas strādā ar GPU, lai tās varētu darboties, netraucējot viena otru. Jaunā funkcionalitāte atrisina problēmu ar GPU darbību piespiedu pārtraukšanu pie pieejamās atmiņas izsīkšanas, ņemot vērā attēlojošo GPU atmiņu un CPU draiveru izmantoto atmiņu atsevišķās cgroup.
- Veiktas optimizācijas TLB (Translation Lookaside Buffer) iztukšošanas operācijas mērogošanā, kas tiek izmantota virtuālo adresu pārvēršanai fiziskajās adresēs. Pievienotās optimizācijas sastāv no dažu datu struktūru atjaunināšanas atlikšanas konteksta maiņas laikā, kas ļauj palielināt veiktspēju, veicot dažus testus.
- Paaugstināta MGLRU (Multi-Generational LRU) mehānisma veiktspēja, kas tiek izmantots, lai noteiktu, kuras atmiņas lapas tiek izmantotas, un kuras var izsist apmaiņas nodalījumā.
- Turpināts izmaiņu pārnešana no Rust-for-Linux filiāles, kas saistīta ar Rust valodas izmantošanu kā otro valodu draiveru un kodola moduļu izstrādē (Rust atbalsts nav aktīvs pēc noklusējuma un neietekmē Rust iekļaušanu obligātajās kodola būvniecības atkarībās). Nodrošināta iespēja izmantot kodola kodā makro «derive(CoercePointee)», kas ļauj izmantot viedos rādītājus ar trait objektiem. Kodola sastāvā iekļauti Rust saistītāji PCI, platformām, Open Firmware, simboliskajām ierīcēm un dažām I/O funkcijām. Grēgs Kroa-Hartman (Greg Kroah-Hartman), kas atbild par stabilās Linux kodola filiāles atbalstu, raksturojis pašreizējo stāvokli kā «gandrīz gatavību rakstīt reālu draiveri Rust valodā».
- Būvniecības scenārijos piedāvāts jauns kods, lai ģenerētu atkļūdošanas simbolu versijas augšupielādējamām moduļu versijām, kas tagad izmanto informāciju no DWARF formāta atkļūdošanas ierakstiem, nevis tieši analizē avota kodu. Šī izmaiņa ļauj lietot versiju iezīmēšanu atkļūdošanas simboliem moduļiem, kuri rakstīti Rust valodā. Vecā realizācija arī palikusi kodola sastāvā, un ģenerētāja izvēle tiek veikta būvniecības opciju līmenī.
- PowerPC arhitektūra ir īstenojusi atbalstu slinkā uzdevumu izslēgšanas režīmam (PREEMPT_LAZY), kas atbilst pilnīgas izslēgšanas režīmam («full preemption») reāllaika uzdevumiem (RR/FIFO/DEADLINE), bet kavē parasto uzdevumu (SCHED_NORMAL) izslēgšanu līdz tika robežai.
- Veiktspējas profilēšanas apakšsistēmai «perf» pievienots atbalsts AMD procesoru enerģijas patēriņa skaitītājiem. Pievienota iespēja darboties sistēmās ar līdz pat 2048 CPU kodoliem.
- Piedāvāta iespēja izmantot sysctl parametru pid_max ar procesu identifikatoru (ID namespace) nosaukumu telpām. Parametrs pid_max ir paredzēts, lai ierobežotu maksimālo procesu identifikatoru (PID) vērtību un tagad var tikt izmantots, lai ierobežotu maksimālo iespējamo procesu skaitu, kas darbojas noteiktā nosaukumu telpā. Parametra apstrāde notiek hierarhiski, t.i., ierobežojumi ārējās nosaukumu telpās attiecas uz iekšējām nosaukumu telpām.
- Izmantojot execveat sistēmas izsaukumam, failu sistēmā /proc tagad tiks attēlots palaistā faila nosaukums, nevis faila deskriptora numurs.
- Koda bāzē (mapē samples/vfs) ir pievienots utilītē mountinfo, kas demonstrē statmount() un listmount() sistēmas izsaukumu izmantošanu.
- BPF apakšsistēmā ir piedāvātas jaunas funkcijas bpf_local_irq_save() un bpf_local_irq_restore() laika traucējumu izslēgšanai vietējā CPU. Šīs funkcijas var izmantot struktūru īstenošanai, kuru apstrāde netiek pārtraukta ar traucējumiem.
- Sistēmas izsaukumā madvise() izmantojot MADV_DONTNEED un MADV_FREE flagus ir nodrošināta atmiņas lapu tabulu atbrīvošana, kas saistīta ar atbrīvoto adresāciju, jo dažās situācijās tukšas atmiņas lapas var ieņemt pietiekami daudz atmiņas.
- OpenRISC arhitektūrā ir īstenota atbalsta mehānisms atkārtotām secībām (rseq, restartable sequences), kas paredzēts ātrai atomārai operāciju izpildei, kuras gadījumā tiek pārtrauktas citā procesā, tiek notīrītas un uzsākta atkārtota mēģinājuma izpilde.
- Koda reorganizācija ar CRC32 un CRC-T10DIF algoritmu īstenošanu, kas vairs nesakrīt ar crypto apakšsistēmu un tiek izsaukta tieši no bibliotēkas interfeisa. Izmaiņas ļāva vienkāršot kodu un palielināt tā efektivitāti.
- Asinhronā ievades/izvades sistēmā io_uring ir pievienots interfeiss papildu metadatu pārraidei par integritāti lasīšanas un rakstīšanas operāciju izpildes laikā.
- Virtualizācija un drošība
- Uz sistēmas izsaukumu execveat ir pievienots AT_EXECVE_CHECK flags, kas ļauj pārbaudīt faila izpildes atļautību bez tā faktiskas palaišanas, ņemot vērā drošības politikas, piekļuves tiesības un aktīvās LSM moduļus. Lai izmantotu kopā ar AT_EXECVE_CHECK, ir piedāvāti securebit flags SECBIT_EXEC_RESTRICT_FILE un SECBIT_EXEC_DENY_INTERACTIVE, kurus var izmantot, lai ierobežotu izpildi failiem ar skriptiem interpretējamās programmēšanas valodās. Flags SECBIT_EXEC_RESTRICT_FILE nosaka kompilētājiem un interpretētājiem izmantot AT_EXECVE_CHECK opciju, lai pārbaudītu izpildes atļautību, un flags SECBIT_EXEC_DENY_INTERACTIVE aizliedz apstrādāt interaktīvas komandas. Galvenā ideja pārmaiņās ir iespēja piemērot drošības politikas ne tikai tradicionālajiem izpildāmajiem failiem, bet arī teksta failiem ar skriptiem, kas var tikt ielādēti, uzsākot interpretētāju (t.i., izpildes aizliegums var tikt īstenots ne tikai, palaižot './script.sh', bet arī izpildes veidā 'sh script.sh').
- x86 sistēmām ir ieviesta aizsargātu laika skaitītāju atbalsts viesu sistēmām, kas neļauj mainīt viesu sistēmas sistēmas pulksteni no hosta vides. Šī iespēja ir balstīta uz AMD SEV (Secure Encrypted Virtualization) mehānismu, kas tiek izmantots virtualizācijas sistēmās, lai aizsargātu virtuālo mašīnu no hipervizora vai hosta sistēmas administratora iejaukšanās.
- SELinux mandātiskā piekļuves kontroles sistēmā ir pievienots xperm noteikumu atbalsts, kas ļauj piesaistīt SELinux politikas konkrētiem ioctl() izsaukumiem vai netlink ziņojumiem.
- Lai apstiprinātu kodola moduļus ar digitālo parakstu, SHA1 vietā pēc noklusējuma tiek izmantots SHA512 algoritms.
- VirtualBox viesu sistēmu draiveros ir iekļauts ARM64 arhitektūras atbalsts.
- Hipervizorā KVM ir turpinātas darbības pie Intel TDX (Trusted Domain Extensions) mehānisma izmantošanas viesu sistēmu atmiņas šifrēšanai.
- virtio_blk ir pievienots atbalsts kļūdu atjaunošanas režīmam.
- Tīkla subsistēma
- RxRPC protokola īstenojumā ir parādījusies iespēja izmantot lielus UDP rāmjus, lai palielinātu caurlaidspēju.
- TCP ir pievienots RACK-TLP algoritma atbalsts pakotņu zuduma noteikšanai.
- Jauns sysctl tcp_tw_reuse_delay parametrs ir pievienots, kas darbojas saistībā ar nosaukumu telpu (network namespace) un ļauj noteikt aizturi, ko sistēma ievieš pirms iespējo tikšanās numura atkārtotas izmantošanas pēc TCP socket slēgšanas.
- Ir ieviesta precīza laika (PTP) pakalpojumu nodrošinātāja izvēles iespēja laika zīmogu veidošanai PHY un MAC līmeņos.
- IPsec ir ieviests mehānisma agregācijas un fragmentācijas atbalsts iepakotiem IP datagrammām — IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
- Tīkla socket sistēmā ir pievienots informācijas par prioritāti (SO_PRIORITY) pārsūtīšanas atbalsts kontrolējošu ziņojumu (cmsg — kontrolējošie ziņojumi) veidā. Tīkla socket'iem ir pievienota SO_RCVPRIORITY opcija, kas iekļauj recvmsg() funkcijās informācijas par socket prioritāti pārsūtīšanu.
- Aprīkojums
- Ir pievienots amdxdna draiveris, kas paredzēts AMD CPU integrētiem NPU (Neural Processing Unit) paātrinātājiem, kas balstīti uz XDNA arhitektūras un ir paredzēti mašīnmācīšanās operāciju paātrināšanai. XDNA arhitektūras NPU tiek piedāvāti AMD Ryzen 7040 un 8040 sērijas procesoros, AMD Alveo V70 paātrinātājos un AMD Versal SoC.
- I915 draiverī ir pievienoti jauno GPU identifikatori, ieviesta HDMI inicializācijas kļūdu apstrāde, kā arī uzlabota GPU dzinēju atiestatīšanas uzticamība Haswell un vecākās sistēmās.
- Darbs pie Intel Xe arhitektūras GPU drm draivera (Direct Rendering Manager), kas tiek izmantots Intel Arc grafiskajās kartēs un integrētajā grafikā kopš Tiger Lake procesoriem, turpinās.
- Nouveau vadītājā ir pievienota iespēja pārsūtīt GSP-RM žurnālu buferus caur debugfs.
- AMDGPU draiverī ir ieviesta DRM panic mehānisma atbalsts, kas attēlo līdzību 'zilajam nāves ekrānam' kļūmju gadījumā. Turpinās sagatavošanās nākamās Radeon RX 9000 grafisko karšu sērijas atbalstam, kas balstīta uz RDNA4 arhitektūru. Paaugstināts atbalsts DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS un ISP.
- DRM draiverī msm (Qualcomm Adreno GPU) ir pievienots Qualcomm SM6150 (QCS615) platformas atbalsts.
- DRM vadītājā panfrost ir pievienots SoC MediaTek MT8188 ar GPU Mali-G57 atbalsts.
- DRM vadītājā vc4 ir pievienots SoC Broadcom BCM2712 (Raspberry Pi 5) atbalsts.
- Vfio draiverī nvgrace-gpu ir pievienots atbalsts NVIDIA Grace Blackwell 200 čipiem.
- Tika iekļauts draiveris Intel THC (Touch Host Controller), kas tiek izmantots saskarsmei ar skārienekrāniem un skārienpaliktņiem dažos klēpjdatoros. Tika pievienots Wacom ierīču ar PCI interfeisu atbalsts. Tika pievienots QH Electronics spēļu kontrolieru atbalsts.
- Tika pievienots ARM platformu, SoC un ierīču atbalsts: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, Microchip SAMA7D65, Renesas R-Car V4H ES3.0, Renesas RZ/G3E. Tika pievienots SoC SpacemiT K1 ar RISC-V arhitektūru.
- ALSA skaņas apakšsistēmā MIDI 2.0 ir paplašināti rawmidi un sequencer API. API, kas nodod saspiešanas operācijas skaņas kartē, ir pievienots ASRC (Asynchronous Sample Rate Conversion) atbalsts.
- Tika pievienots atbalsts skaņas sistēmām Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 un 18i20. Tika pievienots bezvadu austiņu SteelSeries Arctis 9 atbalsts.
Avots: opennet.lv
