Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds Är utgÄvan av Linux-kÀrnan 6.14. Bland de mest anmÀrkningsvÀrda förÀndringarna finns: ntsync-drivrutinen med synkroniseringsprimitive frÄn Windows NT, ny balans för lÀsoperationer i Btrfs RAID1, stöd för reflink i XFS i realtidslÀget, möjlighet till icke-cachelagrad buffrad in- och utmatning, dmem cgroup för begrÀnsning av GPU-minne, anvÀndning av io_uring i FUSE, delegering av attribut i NFS, stöd för atomÀr skrivning i Device mapper, acceleration av symboliska lÀnkar, hantering av skriptkörningsmöjligheter, stöd för Qualcomm Snapdragon 8 Elite-chips, drivrutin för AMD NPU.
I den nya versionen ingÄr 12115 korrigeringar frÄn 1984 utvecklare, patchens storlek Àr 39 MB (förÀndringarna berör 10170 filer, 531586 rader kod har lagts till, 235999 rader har tagits bort). I den föregÄende utgÄvan var det 14172 korrigeringar frÄn 2086 utvecklare, patchens storlek var 46 MB. Cirka 41% av alla förÀndringar i 6.14 Àr relaterade till enhetsdrivrutiner, ungefÀr 13% handlar om uppdatering av kod som Àr specifik för hÄrdvaruarkitekturer, 14% relaterar till nÀtverksstacken, 7% till filsystem och 4% till interna kÀrnsystem.
- Disksubsystem, in- och utmatning och filsystem
- I filsystemet Btrfs har det tillkommit stöd för nya metoder för balans av lĂ€soperationer mellan lagringsenheter i RAID1-arrayen. Utöver den tidigare belastningsfördelningen baserad pĂ„ processidentifierare (pid) föreslĂ„r den nya versionen tre nya balanslĂ€gen: "rotation" (jĂ€mn belastning över alla lagringsenheter, lĂ€get Ă€r aktiverat som standard); "latency" (fördelning med hĂ€nsyn till fördröjningar, kan vara anvĂ€ndbart vid fel eller instabil drift av lagringsenheter); devid (manuell styrning). För att Ă€ndra balanslĂ€get tillagd anvĂ€nd grĂ€nssnittet /sys/fs/btrfs//read_policy. Bland andra förĂ€ndringar i Btrfs â implementering av ioctl FS_IOC_READ_VERITY_METADATA.
- Tillagd lĂ€get för icke-cachelagrad buffrad in- och utmatning, dĂ€r data tas bort frĂ„n sidcache direkt efter att lĂ€s- eller skrivoperationer har slutförts. Ăndringen kan vara anvĂ€ndbar vid anvĂ€ndning av mycket snabba lagringsenheter, vars caching av operationer i RAM Ă€r överflödig. För sĂ„dana enheter tillĂ„ter det nya lĂ€get att undvika överdriven minnesanvĂ€ndning av sidcachen utan att behöva anvĂ€nda den komplicerade API:n för direkt in- och utmatning (Direct I/O).
- I fsnotify, mekanismen för att spÄra förÀndringar i filsystemet, har lagts till ett nytt hÀndelse FS_PRE_ACCESS, som genereras i fasen före Ätkomst till filinnehÄllet. HÀndelsen hanteras i synkron lÀge, det vill sÀga kÀrnan skickar hÀndelsen och vÀntar pÄ svar. Om svaret tas emot utförs operationen, och om ett fel uppstÄr returnerar systemanropet en felkod till anvÀndarutrymmet. Med FS_PRE_ACCESS kan en process i anvÀndarutrymmet till exempel organisera fyllning av filen i takt med att data finns tillgÀngliga i det lÄngsamma lagringsutrymmet.
- Till FUSE-subsystemet, som gör det möjligt att skapa implementationer av filsystem i anvĂ€ndarutrymmet, har lagts till stöd för datakommunikation mellan kĂ€rnan och hanteraren i anvĂ€ndarutrymmet med hjĂ€lp av io_uring-inmatnings-/utgĂ„ngsmekanismen. Ăndringen möjliggör ökad prestanda för FUSE genom att minska kontextbyten mellan kĂ€rnan och anvĂ€ndarutrymmet.
- Till filsystemet XFS har lagts till att anvÀndning av omvÀnd mappning (rmap, reverse-mapping) i driftlÀge med förutsÀgbara fördröjningar ('realtime device'). OmvÀnd mappning gör det möjligt att faststÀlla vilket lagringsutrymme som anvÀnds för en angiven fil. Med rmap i XFS för realtidslÀge har stöd för reflink-operationen implementerats, vilket möjliggör skapande av filkopior genom kloning av filmetadata och skapande av en lÀnk till redan existerande data utan faktisk kopiering.
- I VFS har genomförts caching av storleken pÄ symboliska lÀnkar, vilket resulterade i en 1,5% ökning av hastigheten för readlink-operationen (i testet med /initrd.img i ext4). Caching Àr aktiverad i filsystemet ext4 och tmpfs.
- I implementeringen av NFSv4.2 har lagts till stöd för delegering av filattribut, vilket gör det möjligt att hantera sÄdana filattribut som Àndringstid (mtime) pÄ sidan av NFS-klienten, utan att behöva ÄterstÀlla Àndringarna till servern. Stödet för protokollet har Àven förbÀttratsLOCALIO, som möjliggör att faststÀlla om klienten och NFS-servern befinner sig pÄ samma vÀrd, för att aktivera relevanta optimeringar, sÄsom anvÀndning av direkt in-/utmatning (Direct I/O) av klienten.
- Prestandan för lÀsoperationer i filsystemen NETFS, CIFS och AFS (Andrew File System) har ökat. I Squashfs
- har inkluderats pĂ„slagen direktladdningslĂ€ge för block till sidcache (SQUASHFS_FILE_DIRECT), vilket möjliggör att undvika en separat read_page-cache. Ăndringen har minskat minnesstorleken som anvĂ€nds vid Squashfs-arbete.
- i systemanropet statx() genomförd FLAGGEN STATX_DIO_READ_ALIGN, för att bestÀmma det nödvÀndiga justeringen för lÀsoperationer frÄn fil.
- I filsystemet Bcachefs uppdaterad och stabiliserad diskstrukturformat. Eventuella framtida Àndringar av formatet kommer att betecknas som valfria och implementeras som tillÀgg. Hastigheten för kontroll av filsystemets integritet har ökat avsevÀrt. Dessutom har Bcachefs förbÀttrat arbetet i endast lÀslÀge; problem som ledde till minnesÄtkomst efter frigöring (use after free) har ÄtgÀrdats; problem med reflink-pekarna i fsck har lösts; och hanteringen av transaktionsÄterstart har förbÀttrats.
- à terinförd modulen md-linear, avsedd för att sammanfoga blockenheter. Denna modul hade tidigare förklarats som förÄldrad och togs bort frÄn kÀrnan 6.8, men det visade sig att den var efterfrÄgad och har dÀrför ÄterstÀllts.
- Filsystemen F2FS och SQUASHFS har övergÄtt till att anvÀnda minnessidor (page folios).
- I drivrutinen null_blk har attributet "rotational" implementerats, vilket stÀlls in via configfs och gör det möjligt att simulera arbete med en enhet baserad pÄ roterande diskar för att underlÀtta testning av kÀrnans funktioner.
- I Device-mapper-systemet och i modulerna dm-mirror, dm-io, dm-table, dm-linear, dm-stripe och dm-raid1 har möjligheten Àr stöd för atomisk skrivning.
- Minne och systemtjÀnster
- Integrationen av drivrutinen ntsync , som implementerar det symboliska enheten /dev/ntsync och en uppsÀttning primitiva operationer för synkronisering som anvÀnds i Windows NT-kÀrnan. Implementeringen av sÄdana primitiva pÄ kÀrnnivÄ gör det möjligt att avsevÀrt öka prestandan för Windows-spel som körs med Wine. Prestandaökningen uppnÄs genom att eliminera overheaden kopplad till RPC-anvÀndning i anvÀndarutrymmet. Skapandet av en separat drivrutin för Linux-kÀrnan förklaras av svÄrigheterna med att korrekt implementera NT-synkroniserings-API:et ovanpÄ de existerande primitiva i kÀrnan.En ny cgroup-kontroller har lagts till
- DMEM DMEM för separat redovisning av minnesomrÄden för enheter som GPU. DMEM möjliggör skapandet av separata cgroup för olika uppgifter som arbetar med GPU, sÄ att de kan köras utan att pÄverka varandra. Den nya funktionen löser problemet med att tvinga avslutandet av operationer med GPU vid brist pÄ tillgÀngligt minne, tack vare redovisningen av spegelminnet frÄn GPU och det minne som anvÀnds av CPU-drivrutiner i separata cgroup.
- Optimeringar har gjorts för att skala flush-operationer av TLB (Translation Lookaside Buffer), som anvÀnds för att pÄskynda översÀttningen av virtuella adresser till fysiska. De tillagda optimeringarna innebÀr att vissa datakonstruktioner uppdateras fördröjt under kontextbyten, vilket förbÀttrar prestandan under vissa tester.
- Prestandan för lÀsoperationer i filsystemen NETFS, CIFS och AFS (Andrew File System) har ökat. prestandan hos mekanismen MGLRU (Multi-Generational LRU), som anvÀnds för att bestÀmma vilka sidor i minnet som anvÀnds och vilka som kan flyttas till bytes omrÄde.
- Fortsatt överföring av förÀndringar frÄn grenen Rust-for-Linux, relaterade till anvÀndningen av sprÄket Rust som ett sekundÀrt sprÄk för utveckling av drivrutiner och kÀrnmoduler (Rust-stödet Àr inte aktiverat som standard och leder inte till att Rust blir en obligatorisk byggberoende för kÀrnan). Möjlighet har gjorts för att anvÀnda makrot "derive(CoercePointee)" i kÀrnkoden, vilket möjliggör anvÀndning av smarta pekare med trait-objekt. I kÀrnan ingÄr Rust-bindningar för plattformar PCI, Open Firmware, symboliska enheter, och vissa funktioner för in-/utdata . Greg Kroah-Hartman, som ansvarar för att stödja den stabila grenen av Linux-kÀrnan,karakteriserade det nuvarande tillstÄndet som "nÀstan redo för att skriva en verklig drivrutin i Rust". I byggscenarier
- ny kod för att generera versioner av debug-symboler för laddade moduler, som nu anvĂ€nder information frĂ„n debug-poster i DWARF-format snarare Ă€n att direkt analysera kĂ€llkoden. Ăndringen möjliggör versionering av debug-symboler för moduler skrivna i Rust. Den gamla implementationen finns ocksĂ„ kvar i kĂ€rnan, och valet av generator görs pĂ„ byggalternativsnivĂ„. föreslagen För PowerPC-arkitekturen
- För PowerPC-arkitekturen har möjligheten stöd för lÀgeshantering av lat borttagning av uppgifter (PREEMPT_LAZY, lazy preemption), vilket motsvarar lÀgeshanteringen av fullstÀndig borttagning («full preemption») för realtime-uppgifter (RR/FIFO/DEADLINE), men fördröjer borttagning av vanliga uppgifter (SCHED_NORMAL) till tickgrÀnsen.
- i prestandaprofileringssystemet perf har lagts till stöd för energiförbrukningsrÀknare för AMD-processorer. Tillagd möjlighet att arbeta pÄ system med upp till 2048 CPU-kÀrnor.
- TillhandahÄllet möjlighet att anvÀnda sysctl-parametern pid_max med process-ID-namnrymder (ID namespace). Parametern pid_max syftar till att begrÀnsa det maximala vÀrdet av process-ID:n (PID) och kan nu anvÀndas för att begrÀnsa det maximala antalet processer som körs i den angivna namnrymden. Behandlingen av parametern sker hierarkiskt, dvs. begrÀnsningar i externa namnrymder gÀller Àven för inbÀddade namnrymder.
- Vid anvÀndning av systemanropet execveat kommer filsystemet /proc nu att visa namnet pÄ den körda filen istÀllet för filbeskrivarnumret.
- I den ursprungliga koden för kÀrnan (i katalogen samples) har verktyget mountinfo lagts till, vilket visar anvÀndningen av systemanropen statmount() och listmount().
- I BPF-systemet har erbjudits nya funktioner bpf_local_irq_save() och bpf_local_irq_restore() för tillfÀllig avstÀngning av avbrott pÄ den lokala CPU:n. Funktionerna kan anvÀndas för att implementera strukturer vars bearbetning inte avbryts av avbrott.
- I systemanropet madvise() vid anvÀndning av flaggorna MADV_DONTNEED och MADV_FREE försedd slÀpp av minnestabeller kopplade till det frigjorda adressintervallet, eftersom tomma minnessidor i vissa situationer kan ta upp en betydande mÀngd minne.
- För OpenRISC-arkitekturen har stöd implementerats för mekanismen för omstartbara sekvenser (rseq, restartable sequences), avsedd för snabb atomÀr utförande av operationer, som vid avbrott av en annan trÄd rensas och en ny försöksomgÄng görs.
- Koden har omorganiserats med implementering av algoritmerna CRC32 och CRC-T10DIF, vilket inte lÀngre överlappar med kryptosystemet och anropas direkt frÄn bibliotekets grÀnssnitt. Denna Àndring har gjort det möjligt att förenkla koden och öka dess effektivitet.
- I systemet för asynkron in- och utmatning io_uring tillagd grÀnssnitt för att överföra ytterligare metadata om integritet vid lÀs- och skrivoperationer.
- Virtualisering och sÀkerhet
- I systemanropet execveat tillagd flaggan AT_EXECVE_CHECK, som tillÄter att utföra en kontroll av giltigheten av att köra en fil utan att faktiskt starta den, men med beaktande av sÀkerhetspolicyer, ÄtkomstrÀttigheter och aktiva LSM-moduler. För anvÀndning tillsammans med AT_EXECVE_CHECK föreslÄs securebit-flaggorna SECBIT_EXEC_RESTRICT_FILE och SECBIT_EXEC_DENY_INTERACTIVE, som kan anvÀndas för att begrÀnsa körningen av filer med skript pÄ tolkade programmeringssprÄk. Flaggan SECBIT_EXEC_RESTRICT_FILE föreskriver för lÀnkare och tolkar att anvÀnda alternativet AT_EXECVE_CHECK för att kontrollera giltigheten av körningen, medan flaggan SECBIT_EXEC_DENY_INTERACTIVE förbjuder hantering av interaktiva kommandon. Huvudidén med Àndringen Àr att tillÀmpa sÀkerhetspolicyer inte bara pÄ traditionella körbara filer utan ocksÄ pÄ textfiler med skript som kan laddas genom att starta tolken (d.v.s. förbud mot körning kan genomföras inte bara vid körning av "./script.sh" utan ocksÄ vid körning i formen "sh script.sh").
- PÄ x86-system har stöd för skyddade tidrÀknare för gÀstsystem införts, vilket hindrar förÀndringar av systemklockorna i gÀstsystemet frÄn vÀrdmiljön. Möjligheten Àr baserad pÄ mekanismen AMD SEV (Secure Encrypted Virtualization), som tillÀmpas i virtualiseringssystem för att skydda virtuella maskiner frÄn intrÄng av hypervisor eller administratör i vÀrdsystemet.
- I systemet för mandatkontroll SELinux har lagts till stöd för xperm-regler, som tillÄter koppling av SELinux-policyer till specifika ioctl()-anrop eller netlink-meddelanden.
- För att verifiera kÀrnmoduler med digital signatur anvÀnds som standard inte SHA1 aktiverad utan algoritmen SHA512.
- I drivrutiner för gÀstsystem i VirtualBox Àr inkluderad stöd för ARM64-arkitektur.
- I hypervisorn KVM fortsatt arbete med att aktivera mekanismen Intel TDX (Trusted Domain Extensions) för att kryptera gÀstsystemens minne.
- I virtio_blk har lagts till stöd för felÄterstÀllningslÀge.
- NĂ€tverkssystemet
- I implementationen av protokollet RxRPC har det tillkommit möjlighet att anvÀnda stora UDP-ramar för att öka bandbredden.
- För TCP har stöd för algoritmen RACK-TLP lagts till för att identifiera paketförluster.
- Tillagd den nya sysctl-parametern tcp_tw_reuse_delay, som verkar inom namnutrymmet (network namespace) och möjliggör att bestÀmma fördröjningen innan systemet kan ÄteranvÀnda nummer pÄ nÀtverksporten efter att TCP-socketen stÀngts.
- Tillagd möjlighet att vÀlja en leverantör av exakt tid (PTP) för att generera tidsstÀmplar pÄ PHY- och MAC-nivÄerna.
- För IPsec har möjligheten stöd för mekanismen aggregation och fragmentering av inkapslade IP-paket â IP-TFS/AGGFRAG (IP Traffic Flow Security / Aggregation and Fragmentation Mode for Encapsulating Security Payload).
- I systemet för nĂ€tverks- sockets har lagts till stöd för överföring av information om prioritet (SO_PRIORITY) i form av kontrollmeddelanden (cmsg â control messages). För nĂ€tverks-sockets har lagts till alternativet SO_RCVPRIORITY, som inkluderar överföring av information om socketens prioritet i funktionerna recvmsg().
- Utrustning
- Tillagd drivrutin amdxdna för de i CPU:er frÄn AMD integrerade acceleratorerna NPU (Neural Processing Unit) baserade pÄ arkitekturen XDNA, avsedda för att pÄskynda operationer kopplade till maskininlÀrning. NPU baserade pÄ arkitekturen XDNA finns i serierna 7040 och 8040 av AMD Ryzen-processorer, acceleratorer av typen AMD Alveo V70 och SoC AMD Versal.
- I drivrutinen i915 har lagts till identifieras nya GPU:er, en felhanterare för HDMI-initialisering har implementerats och robustheten vid ÄterstÀllning av GPU-motorer pÄ Haswell och Àldre system har ökat.
- FortsÀtter arbete med drm-drivrutinen (Direct Rendering Manager) Xe för GPU:er baserade pÄ Intels Xe-arkitektur, som anvÀnds i Intel:s grafikkort i Arc-familjen och integrerad grafik, frÄn och med Tiger Lake-processorer.
- I drivrutinen Nouveau har möjligheten att överföra buffertar med loggar frÄn GSP-RM via debugfs lagts till.
- I drivrutinen AMDGPU har stöd för mekanismen DRM panic implementerats, som visar en liknande "blÄ skÀrm av död" vid krascher. Förberedelserna för stöd av den framtida serien av Radeon RX 9000-grafikkort baserade pÄ arkitekturen RDNA4 har fortsatt. Stöd för 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 och ISP har uppdaterats.
- I DRM-drivrutinen msm (GPU Qualcomm Adreno) har stöd för plattformen Qualcomm SM6150 (QCS615) lagts till.
- I DRM-drivrutinen panfrost har stöd för SoC MediaTek MT8188 med GPU Mali-G57 lagts till.
- I DRM-drivrutinen vc4 har stöd för SoC Broadcom BCM2712 (Raspberry Pi 5) lagts till.
- I vfio-drivrutinen nvgrace-gpu har lagts till stöd för kretsar frÄn NVIDIA Grace Blackwell 200.
- I sammansÀttningen pÄslagen drivrutin för Intel THC (Touch Host Controller), som anvÀnds för interaktion med pekskÀrmar och touchpads pÄ vissa bÀrbara datorer. Stöd för Wacom-enheter med PCI-grÀnssnitt har lagts till. Tillagd stöd för spelkontroller frÄn QH Electronics.
- Tillagd stöd för ARM-plattformar, SoC och enheter: 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. Stöd för SoC har lagts till. SpacemiT K1 baserad pÄ RISC-V-arkitektur.
- I ljudsubsystemet ALSA för MIDI 2.0 har utökats API rawmidi och sequencer. I API:et för att outsourca komprimeringsoperationer till ljudkortet har stöd för ASRC (Asynchronous Sample Rate Conversion) lagts till.
- Stöd för ljudsystem i enheter Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 och 18i20 har lagts till. Tillagd stöd för trÄdlösa hörlurar SteelSeries Arctis 9.
KĂ€lla: linux.org.ru
