Pas dy muajsh zhvillimi Linus Torvalds prezentoi lëshimi i bërthames Linux 6.14. Ndër ndryshimet më të dukshme janë: drejtuesi ntsync me primitivat e sinkronizimit Windows NT, konfigurimi i balancimit të operacioneve të leximit në Btrfs RAID1, mbështetje për reflink në XFS në modin realtime, mundësia e hyrjes/jeshjes së pakashme, cgroup dmem për kufizimin e memories GPU, angazhimi i io_uring në FUSE, delegimi i atributeve në NFS, mbështetje për shkrimin atomik në Device mapper, përshpejtimi i lidhjeve simbolike, menaxhimi i mundësisë së ekzekutimit të skripteve, mbështetje për çipat Qualcomm Snapdragon 8 Elite, drejtues për NPU AMD.
Në versionin e ri janë pranuar 12115 korrigjime nga 1984 zhvillues, madhësia e patch-it është 39 MB (ndryshimet preku 10170 skedarë, u shtuan 531586 rreshta kodi, u hoqën 235999 rreshta). Në lëshimin e kaluar kishte 14172 korrigjime nga 2086 zhvillues, madhësia e patch-it ishte 46 MB. Rreth 41% e të gjitha ndryshimeve të paraqitura në 6.14 lidhen me drejtuesit e pajisjeve, rreth 13% e ndryshimeve kanë të bëjnë me azhurnimin e kodit të veçantë për arkitekturën harduerike, 14% lidhen me grilën rrjet, 7% me sistemet e skedave dhe 4% me nën-sistemet e brendshme të bërthames.
- Sistemi i diskut, hyrja/ dalje dhe sistemet e skedarëve
- Në sistemin e skedave Btrfs ka arritur mbështetje për metoda të reja të balansimit të operacioneve të leximit midis disqeve që janë në grumbullin RAID1. Përveç shpërndarjes së ngarkesës të bazuar në identifikatorët e proceseve (pid), versioni i ri ofron tri regjime të reja balansimi: "rotation" (shpërndarje e barabartë e ngarkesës në të gjitha disqet, regjimi është aktiv nga default); "latency" (shpërndarje duke marrë parasysh vonesat, që mund të jetë e dobishme në raste dështimi ose punësimi të paqëndrueshëm të disqeve); devid (menaxhim manual). Për të ndryshuar regjimin e balansimit. u shtua ndërfaqja /sys/fs/btrfs//read_policy. Ndër ndryshimet e tjera në Btrfs është implementimi ioctl FS_IOC_READ_VERITY_METADATA.
- Shtuar regjimi i hyrjes/daljes me bufer të pa-cache, në të cilin të dhënat fshihen nga cache i faqeve menjëherë pasi operacionet e tyre të leximit ose shkruan përfundojnë. Ky ndryshim mund të jetë i dobishëm kur përdoren pajisje ruajtjeje shumë të shpejta, ku caching i operacioneve në memorie është i tepërt. Për këto pajisje, regjimi i ri lejon përjashtimin e shpenzimeve të tepërta të memories nga cache i faqeve pa pasur nevojë të përdoren API të komplikuara për hyrjen/daljen e drejtpërdrejtë (Direct I/O).
- NĂ« fsnotify, mekanizmi pĂ«r ndjekjen e ndryshimeve nĂ« sistemin e skedarĂ«ve, shtuar Ă«shtĂ« shtuar njĂ« ngjarje e re FS_PRE_ACCESS, e gjeneruar nĂ« fazĂ«n para qasjes nĂ« pĂ«rmbajtjen e skedarit. Ngjarja pĂ«rpunon nĂ« mĂ«nyrĂ« sinchronike, domethĂ«nĂ«, bĂ«rthamĂ«s i dĂ«rgon ngjarjen dhe pret njĂ« pĂ«rgjigje. NĂ«se pĂ«rgjigja Ă«shtĂ« e marrĂ« â operacioni ekzekutohet, dhe nĂ«se ndodh njĂ« dĂ«shtim â thirrja sistemore kthehet nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit me kodin e gabimit. Me ndihmĂ«n e FS_PRE_ACCESS, procesi nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, pĂ«r shembull, mund tĂ« organizojĂ« plotĂ«simin e skedarit si tĂ« dhĂ«nat tĂ« jenĂ« gati nĂ« magazinĂ«n e ngadalshme.
- Në nën-sistemin FUSE, i cili mundëson krijimin e realizimeve të sistemeve të skedarëve në hapësirën e përdoruesit, është shtuar mbështetje këmbimi i të dhënave midis bërthamës dhe përpunuesit në hapësirën e përdoruesit duke përdorur mekanizmin e hyrjes/ daljeve io_uring. Ky ndryshim lejon rritjen e performancës FUSE duke reduktuar kalimet e kontekstit midis bërthamës dhe hapësirës së përdoruesit.
- në sistemin e skedarëve XFS është shtuar mundësia përdorimi i mapimit të prapshëm (rmap, reverse-mapping) në modalitetin e punës me vonesa të parashikueshme ("realtime device"). Mapimi i prapshëm lejon të përcaktohet se për ruajtjen e cilit skedar përdoret blloku i caktuar në pajisjen e ruajtjes. Me ndihmën e rmap në XFS për modalitetin realtime është realizuar mbështetje për operacionin reflink, i cili lejon krijimin e kopjeve të skedarëve duke klonuar metadatën e skedarit dhe duke krijuar një lidhje me të dhënat ekzistuese pa i kopjuar ato në mënyrë faktike.
- Në VFS është realizuar në ruajtjen e madhësisë së lidhjeve simbolike, e cila ndihmoi në përshpejtimin e operacionit readlink me 1.5% (në testin me /initrd.img në ext4). Ruajtja e madhe është e aktivizuar në FS ext4 dhe tmpfs.
- Në implementimin e NFSv4.2 është shtuar mbështetje për delegimin e atributeve të skedarëve, e cila lejon menaxhimin e atributeve të tilla të skedarëve si koha e ndryshimit (mtime) nga ana e klientit NFS, pa nevojën e ri-shkarkimit të ndryshimeve në server. Në NFS është përmirësuar gjithashtu mbështetja për protokollin "LOCALIO", që lejon të përcaktohet nëse klienti dhe serveri NFS ndodhen në të njëjtin host, për të aktivizuar optimizimet përkatëse, si përdorimi nga klienti i hyrjes direkte (Direct I/O).
- Rritur performanca e operacioneve të leximit në sistemet e skedarëve NETFS, CIFS dhe AFS (Sistemi i Skedarëve Andrew).
- Në Squashfs aktivizuar modelet e drejtpërdrejtë të ngarkesës së bllokut në cache-në e faqeve (SQUASHFS_FILE_DIRECT), që lejon evitimin e një cache të veçantë read_page. Ky ndryshim ka lejuar reduktimin e madhësisë së memories që përdoret gjatë funksionimit të Squashfs.
- Në thirrjen e sistemit statx() i realizuar flag STATX_DIO_READ_ALIGN, për të përcaktuar kërkesën për rregullim për operacionet e leximit nga skedari.
- Në sistemin e skedarëve Bcachefs përditësuar dhe stabilizuar formatin e strukturave diskore. Të gjitha ndryshimet e mëtejshme në format do të përshkruhen si opsionale dhe do të realizohen në formën e shtesave opsionale. Shpejtësia e kontrollit të integritetit të FS-së është rritur ndjeshëm. Për më tepër, në Bcachefs është përmirësuar funksionimi në modelet e leximit vetëm; janë eliminuar problemet që çojnë në qasjen në kujtesë pas çlirimit të saj (use after free); janë zgjidhur problemet me referencat reflink në fsck; është korrigjuar trajtimi i rifillimit të transaksionit.
- Rikthyer moduli md-linear, që është i dizajnuar për bashkimin e pajisjeve bllokuese. Ky modul ishte shpallur më parë i vjetëruar dhe ishte hequr nga bërthama 6.8, por siç ka rezultuar, ai ishte në kërkesë dhe për këtë arsye tani është rikthyer.
- Sistemet e skedarëve F2FS dhe SQUASHFS janë përditësuar për përdorim folios të faqeve të memories (faqet e folio-ve).
- Në driverin null_blk është realizuar atributi "rotational", i vendosur nëpërmjet configfs dhe i cili lejon simulimin e funksionimit me pajisje bazuar në disqe rotative për të lehtësuar testimin e funksioneve të bërthamorit.
- Në sistemin e Mapper-it të Pajisjeve dhe në modulet dm-mirror, dm-io, dm-table, dm-linear, dm-stripe dhe dm-raid1 është realizuar është mbështetur shkrimi atomik.
- Kujtesa dhe shërbimet sistemore
- Përfunduar integrimi në bërthamën e driverit ntsync, që realizon pajisjen simbolike /dev/ntsync dhe një grup primitivesh për sinkronizim, përdorur në bërthamën Windows NT. Realizimi i këtyre primitivesh në nivelin e bërthamës lejon një rritje të ndjeshme të performancës së lojërave Windows që ekzekutohen përmes Wine. Rritja e performancës arrihet përmes heqjes së shpenzimeve që lidhen me përdorimin e RPC në hapësirën e përdoruesit. Krijimi i një driveri të veçantë për bërthamën Linux shpjegohet nga vështirësia e realizimit të duhur të API-së së sinkronizimit NT mbi primitivesh ekzistuese në bërthamë.
- Shtuar një kontrollues të ri në cgroup DMEM për menaxhimin e veçantë të hapësirave të memories së pajisjeve, si GPU. DMEM mundëson krijimin e cgroup-eve të veçanta për detyra të ndryshme që punojnë me GPU, në mënyrë që ato të mund të ekzekutohen pa ndikuar njëra-tjetrën. Kjo aftësi e re adreson problemin e përfundimeve të detyrave me GPU kur ndodhet mungesë e memories së disponueshme, duke përfshirë llogaritjen e memories së reflektuar të GPU-së dhe memories së përdorur nga drajverët të CPU në cgroup-e të veçanta.
- Janë bërë optimizime për shkallëzimin e operacionit për pastrimin (flush) e caches TLB (Translation Lookaside Buffer), i përdorur për të përshpejtuar konvertimin e adresave virtuale në ato fizike. Optimizmat e reja përfshijnë rinovimin e vonuar të disa strukturave të të dhënave gjatë kalimit të konteksteve, duke lejuar një rritje të performancës gjatë kalimit të disa testeve.
- Rritur performanca e mekanizmit MGLRU (Multi-Generational LRU), i përdorur për të përcaktuar se cilat faqe të memories po përdoren dhe cilat mund të zëvendësohen në kërkesën për memorie.
- Vazhdon transferimi i ndryshimeve nga dega Rust-for-Linux, i lidhura me pĂ«rdorimin e gjuhĂ«s Rust si njĂ« gjuhĂ« tĂ« dytĂ« pĂ«r zhvillimin e drejtorĂ«ve dhe moduleve tĂ« bĂ«rthamĂ«s (mbĂ«shtetja pĂ«r Rust nuk Ă«shtĂ« e aktivizuar nga pĂ«rgjithĂ«sia, dhe nuk çon nĂ« pĂ«rfshirjen e Rust si njĂ« nga varĂ«sitĂ« e detyrueshme pĂ«r ndĂ«rtimin e bĂ«rthamĂ«s). ĂshtĂ« ofruar mundĂ«sia e pĂ«rdorimit nĂ« kodin e bĂ«rthamĂ«s tĂ« makros âderive(CoercePointee)â, qĂ« lejon pĂ«rdorimin e treguesve tĂ« zgjuar me objektet trait. NĂ« pĂ«rbĂ«rjen e bĂ«rthamĂ«s janĂ« pĂ«rfshirĂ« Rust-ombĂ«shtetje pĂ«r PCI, platforma, Open Firmware, dispozitivet simbolike dhe disa funksione hyrjeje/zhvillimi. Greg Kroah-Hartman, pĂ«rgjegjĂ«s pĂ«r mbĂ«shtetje tĂ« degĂ«s stabile tĂ« bĂ«rthamĂ«s Linux, pĂ«rshkroi stanin aktual si âgati pĂ«r tĂ« shkruar njĂ« drejtues real nĂ« Rustâ.
- Në skenarët e ndërtimit suggested kode e re për gjenerimin e versioneve të simboleve përkujtimore për modulet e ngarkuara, e cila tani përdor informacionin nga regjistrat e përkujtimit në formatin DWARF, dhe jo të analizojë kodin burimor drejtpërdrejt. Kjo ndryshim lejon aplikimin e versionimit të simboleve për modulet e shkruara në gjuhën Rust. Implementimi i vjetër është lënë gjithashtu në bërthamë, dhe zgjedhja e gjeneratorit bëhet në nivelin e opsioneve të ndërtimit.
- Për arkitekturën PowerPC është realizuar mbështetje për regjimin e përjashtimit leniv të detyrave (PREEMPT_LAZY, përjashtim leniv), i cili përputhet me regjimin e plotë të përjashtimit («full preemption») për detyrat realtime (RR/FIFO/DEADLINE), por vonon përjashtimin e detyrave të zakonshme (SCHED_NORMAL) deri në kufirin e tik-takut.
- Në nën sistemin e profilizimit të performancës perf shtuar mbështetje për numëruesit e konsumit të energjisë për procesorët AMD. Shtuar mundësia e funksionimit në sisteme që kanë deri në 2048 bërthama CPU.
- E ofruar mundësia e përdorimit të parametrin sysctl pid_max me hapësira identifikimi të identifikatorëve të proceseve (ID namespace). Parametri pid_max ka për qëllim të kufizojë vlerën maksimale të identifikatorëve të proceseve (PID) dhe tani mund të përdoret për të kufizuar numrin maksimal të mundshëm të proceseve të lançuar në hapësirën identifikuese të dhënë. Procesimi i parametrave bëhet në mënyrë hierarkike, dmth, kufizimet në hapësirat e jashtme të identifikimit shtrihen në hapësirat e brendshme të identifikimit.
- Kur përdoret për të nisur një proces thirja sistemore execveat në sistemin e skedarëve /proc tani do të shfaqet emri i skedarit të nisur, jo numri i përshkruesit të skedarit.
- Në përbërjen e kodit burimor të bërthamës (në katalogun samples) është shtuar një utilitar mountinfo, që demonstruar përdorimin e thirrjeve sistemore statmount() dhe listmount().
- Në nën-sistemin BPF ofrohen funksionet e reja bpf_local_irq_save() dhe bpf_local_irq_restore() për ndalimin përkohësisht të ndërprerjeve në CPU-në lokale. Funksionet mund të përdoren për të implementuar struktura, procesimi i të cilave nuk ndalet nga ndërprerjet.
- Në thirrjen sistemore madvise() në përdorimin e flags MADV_DONTNEED dhe MADV_FREE është siguruar çlirimi i tabelave të faqeve të memories, të lidhura me intervalin e adresave të çliruara, pasi në disa situata, faqet bosh të memories mund të zënë mjaft shumë memorje.
- Për arkitekturën OpenRISC është implementuar mbështetje për mekanizmin e sekuencave të rishikueshme (rseq, sekuenca të rishikueshme), që është menduar për ekzekutimin e shpejtë dhe atomar të operacioneve, të cilat në rast ndërprerjeje nga një thread tjetër pastrohen dhe përpilohet një përpjekje e re për ekzekutim.
- Kodu është organizuar përsëri me implementimin e algoritmeve CRC32 dhe CRC-T10DIF, i cili nuk përplaset më me nën-sistemin crypto dhe thirret drejtpërdrejt nga interfata e bibliotekës. Ky ndryshim ka lejuar që kodi të thjeshtohet dhe të rritet efikasiteti i tij.
- Në sistemin e hyrjes/zhjidhjes asinkrone io_uring u shtua një ndërfaqe për dërgimin e metadatatave të additional mbi integritetin gjatë ekzekutimit të operacioneve të leximit dhe shkruarjes.
- Virtualizimi dhe siguria
- Në thirrjen sistemike execveat u shtua flag AT_EXECVE_CHECK, që lejon të kryhet një verifikim i lejueshmërisë së ekzekutimit të fileve pa e nisur realisht atë, por duke marrë parasysh politikat e sigurisë, të drejtat e aksesit dhe modulat aktive LSM. Për t'u përdorur në kombinim me AT_EXECVE_CHECK janë propozuar flage të securebit SECBIT_EXEC_RESTRICT_FILE dhe SECBIT_EXEC_DENY_INTERACTIVE, të cilat mund të përdoren për të kufizuar ekzekutimin e fileve me skenarë në gjuhët e programimit të interpretuara. Flag SECBIT_EXEC_RESTRICT_FILE kërkon që ndërtuesit dhe interpretuarit të përdorin opsionin AT_EXECVE_CHECK për të verifikuar lejueshmërinë e ekzekutimit, ndërsa flag SECBIT_EXEC_DENY_INTERACTIVE ndalon trajtimin e komandave interaktive. Ideja kryesore e ndryshimit është zgjerimi i mundësive për të aplikuar politikat e sigurisë jo vetëm ndaj fileve tradicionale të ekzekutueshëm, por edhe ndaj fileve tekstualë me skenarë, të cilat mund të ngarkohen përmes ekzekutimit të interpretorit (dmth ndalimi i ekzekutimit mund të realizohet jo vetëm gjatë nisjes "./script.sh" por edhe kur ekzekutohet në formën "sh script.sh").
- Në sistemet x86 është implementuar mbështetje për numërues të sigurt të kohës për sistemet mikpritëse, që nuk lejojnë ndryshimin e orës sistemike të sistemit mikpritës nga ambienti i pritës. Kjo mundësi është realizuar në bazë të mekanizmit AMD SEV (Virtualizimi i Enkriptuar të Sigurt), i aplikuar në sistemet e virtualizimit për të mbrojtur makinat virtuale nga ndërhyrjet e hipervizorit ose administratorit të sistemit mikpritës.
- Në sistemin e kontrollit obligativ të accesit SELinux shtuar mbështetje xperm-rregullave, që lejojnë lidhjen e politikave SELinux me thirrje të caktuara ioctl() ose mesazhe netlink.
- Për nënshkrimin e moduleve të bërthamës me një nënshkrim digjital në vend të SHA1, sipas parazgjedhjes aktivizuar algoritmi SHA512.
- Në drejtuesit për sistemet mikpritëse VirtualBox u përfshi mbështetje për arkitekturën ARM64.
- Në hipervizorin KVM ka vazhduar punë për aktivizimin e mekanizmit Intel TDX (Zgjidhjet e Domenit të Besueshëm) për enkriptimin e memories së sistemeve mikpritëse.
- Në virtio_blk shtuar mbështetje për modin e rikuperimit të gabimeve.
- Sistemi i rrjetit
- Në implementimin e protokollit RxRPC ka arritur mundësia e përdorimit të kadrove të mëdha UDP për të rritur kapacitetin.
- Për TCP është shtuar mbështetje për algoritmin RACK-TLP për të përcaktuar humbjen e paketave.
- Shtuar parametri i ri sysctl tcp_tw_reuse_delay, i cili vepron në lidhje me hapësirën e emrave (network namespace) dhe lejon përcaktimin e vonesës që duhet të kalojë para se sistemi të mund të ribëjë përdorimin e numrit të portit të rrjetit pas mbylljes së TCP-soketit.
- Shtuar mundësia për të zgjedhur ofruesin e saktë të kohës (PTP) për formimin e vula të kohës në nivelet PHY dhe MAC.
- PĂ«r IPsec Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r mekanizmin e agregimit dhe fraksionimit tĂ« paketimeve IP tĂ« inkapsuluara â IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
- NĂ« sistemin e soketeve tĂ« rrjetit shtuar mbĂ«shtetje shkĂ«mbimi i informacionit mbi prioritetin (SO_PRIORITY) nĂ« formĂ«n e mesazheve kontrolluese (cmsg â control messages). PĂ«r soketet e rrjetit shtuar opsioni SO_RCVPRIORITY, i cili aktivizon transmetimin e informacionit mbi prioritetin e soketit nĂ« funksionet recvmsg().
- Pajisjet
- Shtuar driver amdxdna për përshpejtuesit NPU (Neural Processing Unit) të integruar në CPU-në AMD në bazë të arkitekturës XDNA, të dizajnuar për të përshpejtuar operacionet që lidhen me mësimin e automatik. NPU në bazë të arkitekturës XDNA ofrohet në seritë 7040 dhe 8040 të procesorëve AMD Ryzen, përshpejtuesit AMD Alveo V70 dhe SoC AMD Versal.
- Në kontrolluesin i915 shtuar identifikuesit e GPU-ve të rinj, u implementua një trajtues për dështimet e inicializimit HDMI, u rrit besueshmëria e rivendosjes së motorëve të GPU në sistemet Haswell dhe më të vjetra.
- Vazhduar punë mbi drejtuesin drm (Direct Rendering Manager) Xe për GPU-të e bazuara në arkitekturën Intel Xe, e cila përdoret në kartat grafike Intel të familjes Arc dhe grafikë të integruar, duke filluar nga procesorët Tiger Lake.
- Në drejtuesin Nouveau u shtua mundësia e transferimit të bufereve me logje GSP-RM përmes debugfs.
- NĂ« drejtuesin AMDGPU u realizua mbĂ«shtetje pĂ«r mekanizmin DRM panic, i cili shfaq njĂ« pamje tĂ« ngjashme me "ekranin blu tĂ« vdekjes" nĂ« rast dĂ«shtimesh. Vazhdon pĂ«rgatitja pĂ«r mbĂ«shtetje tĂ« serisĂ« sĂ« ardhshme tĂ« kartave grafike Radeon RX 9000 nĂ« bazĂ« tĂ« arkitekturĂ«s RDNA4. ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetje pĂ«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 dhe ISP.
- Në drejtuesin DRM msm (GPU Qualcomm Adreno) u shtua mbështetje për platformën Qualcomm SM6150 (QCS615).
- Në drejtuesin DRM panfrost u shtua mbështetje për SoC MediaTek MT8188 me GPU Mali-G57.
- Në drejtuesin DRM vc4 u shtua mbështetje për SoC Broadcom BCM2712 (Raspberry Pi 5).
- Në drejtuesin vfio nvgrace-gpu shtuar mbështetje çipet NVIDIA Grace Blackwell 200.
- Në përbërje aktivizuar drejtor për kontrolluesit Intel THC (Touch Host Controller), i përdorur për ndërveprimin me ekranet me prekje dhe trackpad në disa laptopë. Shtuar mbështetje për pajisjet Wacom me ndërfaqe PCI. Shtuar mbështetje për kontrolluesit e lojërave QH Electronics.
- Shtuar mbështetje ARM-platë, SoC dhe pajisje: 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. Shtuar mbështetje për SoC. SpacemiT K1. bazuar në arkitekturën RISC-V.
- Në nën-sistemin e zërit ALSA për MIDI 2.0. zgjeruar. API rawmidi dhe sequencer. Në API për nxjerrjen e operacioneve të kompresimit në anën e kartës së zërit është shtuar mbështetje për ASRC (Asynchronous Sample Rate Conversion).
- Shtuar mbështetje për sistemet e zërit të pajisjeve Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 dhe 18i20. Shtuar mbështetje për kufjet pa tela SteelSeries Arctis 9.
Burimi: linux.org.ru
