Pas dy muajsh zhvillimi, Linus Torvalds publikoi bërthamën. Linux 6.15. Ndër ndryshimet më të dukshme: një mekanizëm auditimi në Landlock, një modalitet fiksimi i hartëzimit të memories, nënsistemi fwctl, drajveri Nova për GPU-të NVIDIA, një implementim i sistemit pritës për hipervizorin Hyper-V, mbështetje për pajisjet e ruajtjes së zonuar në XFS, optimizimi i nënsistemit të rrjetit, kontrolli i pastrimit në Bcachefs dhe aftësia për të kontrolluar operacionet nëpërmjet io_uring.
Versioni i ri përfshin 15945 rregullime nga 2154 zhvillues, madhësia e patch-it është 59 MB (ndryshimet prekën 13596 skedarë, u shtuan 739608 rreshta kodi, u fshinë 312168 rreshta). Versioni i fundit kishte 12115 rregullime nga 1984 zhvillues, madhësia e patch-it ishte 39 MB. Rreth 41% e të gjitha ndryshimeve të prezantuara në versionin 6.15 lidhen me drajverët e pajisjeve, rreth 16% e ndryshimeve lidhen me përditësimin e kodit specifik për arkitekturat e harduerit, 13% lidhen me grumbullin e rrjetit, 5% lidhen me sistemet e skedarëve dhe 4% lidhen me nënsistemet e brendshme të kernelit.
Risitë kryesore në kernel 6.15:
- Nënsistemi i diskut, I/O dhe sistemet e skedarëve
- Mekanizmi fanotify është përditësuar për të përfshirë aftësinë për të ndjekur ngjarjet e montimit dhe çmontimit.
- XFS shton mbĂ«shtetje pĂ«r pajisjet e ruajtjes sĂ« zonuar (duke ndarĂ« grupet e blloqeve ose sektorĂ«ve nĂ« zona, nĂ« tĂ« cilat lejohen vetĂ«m shtimet sekuenciale tĂ« tĂ« dhĂ«nave, me tĂ« gjithĂ« grupin e blloqeve qĂ« pĂ«rditĂ«sohet). U shtua flamuri rwf_dontcache pĂ«r tĂ« çaktivizuar ruajtjen nĂ« memorien e pĂ«rkohshme tĂ« shkrimit. ĂshtĂ« zbatuar mundĂ«sia pĂ«r tĂ« shkruar nĂ« mĂ«nyrĂ« atomike disa blloqe tĂ« dhĂ«nash njĂ«kohĂ«sisht.
- Btrfs ka aftësinë të specifikojë nivele negative të kompresimit zstd (nga -15 në -1, për shembull, "compress=zstd:-5") gjatë montimit, gjë që siguron shpejtësi më të lartë me koston e efikasitetit të reduktuar të kompresimit. Ruajtje e përmirësuar e shtegut të skedarëve (në testin e kryer, ekzekutimi i operacionit "dërgo" u përshpejtua me 30%). Shtuar mbështetje për blloqe 2Kb.
- EXT4 ka pĂ«rmirĂ«suar performancĂ«n kur riluhet njĂ« regjistĂ«r me njĂ« numĂ«r shumĂ« tĂ« madh tĂ« regjistrimeve tĂ« thirrura (njĂ« ngarkesĂ« tipike pĂ«r ndarjet qĂ« pĂ«rdorin Lustre FS). ĂshtĂ« zbatuar njĂ« kĂ«rkim linear pĂ«r hyrjet e dentry (pĂ«rfaqĂ«sim i brendshĂ«m i elementĂ«ve tĂ« direktorisĂ«), duke zgjidhur problemet me aksesin nĂ« disa skedarĂ« nĂ« modalitetin pa ndjeshmĂ«ri ndaj shkronjave tĂ« mĂ«dha dhe tĂ« vogla. Funksionimi i opsionit tĂ« montimit "errors=remount-ro" Ă«shtĂ« rregulluar. RezistencĂ« e shtuar gjatĂ« pĂ«rpunimit tĂ« FS-ve tĂ« dĂ«mtuara.
- F2FS implementon ioctl pĂ«r tĂ« marrĂ« informacion nĂ« lidhje me pĂ«rparĂ«sinĂ« e operacionit I/O pĂ«r njĂ« skedar tĂ« caktuar. ĂshtĂ« kryer punĂ« pĂ«r tĂ« kaluar nĂ« pĂ«rdorimin e fletĂ«ve tĂ« faqeve.
- Bcachefs ka një modalitet "scrub", i cili kontrollon saktësinë e leximit të të gjitha të dhënave dhe meta të dhënave nga FS. Nëse zbulohen gabime, do të fillojë procedura e rikuperimit. Bcachefs gjithashtu shton mbështetje për të punuar me FS, madhësia e bllokut të të cilave është më e madhe se madhësia e faqes së memories. Formati i strukturave të diskut Bcachefs është stabilizuar (ndryshime të mëtejshme të formatit do të zbatohen në formën e shtesave opsionale).
- EROFS shton mbështetje për adresimin e bllokut 48-bit.
- Nënsistemi FUSE zbaton sysctl default_request_timeout dhe max_request_timeout për të caktuar afatet kohore për ekzekutimin e kërkesave, gjë që lejon monitorimin e komponentëve FUSE që funksionojnë në hapësirën e përdoruesit për bllokime. Madhësia maksimale e emrave të skedarëve në FUSE është rritur në 1024 karaktere.
- Thirrja e sistemit statmount() është përditësuar për të ofruar informacion në lidhje me mapimin e ID-ve të përdoruesve të sistemeve të skedarëve të montuar, i cili përdoret për të përputhur skedarët e një përdoruesi specifik në një ndarje të huaj të montuar me një përdorues tjetër në sistemin aktual.
- U zbatua mundësia për të krijuar një pikë montimi me një përputhje të ndryshme të ID-së së përdoruesit nga ndarja origjinale e montuar.
- API-ja e menaxhimit të montimit është ndryshuar për ta bërë më të lehtë ndërtimin e hierarkive komplekse të sistemit të skedarëve pa ekspozuar pjesë të sistemit të skedarëve që duhet të mbeten të fshehura.
- Mbështetja për pajisjet mbrojtëse të çelësave të enkriptimit të harduerit është shtuar në nënsistem për të punuar me pajisjet bllok.
- Sistemi i skedarëve SMB zbaton opsionin is_network_name_deleted dhe modaliteti smb_server_kerberos5 është i aktivizuar si parazgjedhje.
- Për OverlayFS, është shtuar një opsion montimi "override_creds", i cili, kur specifikohet, do të bëjë që kredencialet e përdoruesit thirrës, në vend të atij që kreu montimin, të përdoren për të aksesuar nivele më të ulëta të ruajtjes. Ndryshimi, për shembull, i lejon OverlayFS të kërkojë një përdorues me privilegje CAP_SYS_ADMIN gjatë montimit, por të përdorë FS me kredenciale pa këtë privilegj.
- Operacionet e fshirjes së skedarëve përshpejtohen në exFAT. Në vend që të dërgojë kërkesa "hedhjeje" individualisht për secilin grumbull të liruar të një skedari të fshirë, drajveri tani i grupon kërkesat. Në test, koha për të fshirë një skedar 80 GB u reduktua nga 286 sekonda në 1.6 sekonda.
- Të gjitha pseudo-FS-të, si dhe EXT2 FS, janë ndryshuar për të përdorur API-n e ri të montimit të ndarjeve.
- U hoq kodi për të mbështetur sistemet e skedarëve SYSV (SystemV/386, Xenix dhe Coherent), të cilat janë shënuar si jetimë në vitin 2023.
- Shërbimet e kujtesës dhe sistemit
- Versioni minimal i GCC-së i kërkuar për të ndërtuar kernelin është rritur në 8.1, dhe Clang në 15.0.0.
- U shtua nënsistemi fwctl (Kontrolli i Firmware-it), i cili ofron një API për menaxhimin e sigurt të firmware-it dhe ekzekutimin e trajtuesve në anën e firmware-it nga hapësira e përdoruesit. Drajverët për pajisjet CXL (Compute Express Link), adaptorët Ethernet Mellanox ConnectX (mlx5) dhe kartat e shërbimit AMD/Pensando janë përgatitur bazuar në fwctl.
- Aftësitë e mekanizmit pidfd janë zgjeruar për të lejuar përdorimin e identifikuesve që shoqërohen me procese specifike dhe, ndryshe nga pid, nuk ricaktohen. Ofroi mundësinë për të marrë të dhëna në lidhje me statusin e përfundimit të një procesi të identifikuar nga pidfd pasi procesi prind ka marrë konfirmimin se procesi fëmijë ka korrur të dhëna dhe burimet e tij janë liruar. Flamuri PIDFD_SELF është shtuar në thirrjet e sistemit, duke i lejuar një procesi të referohet vetes.
- Për arkitekturën RISC-V, ofrohet mbështetje për zgjerimet BFloat16, Zaamo (operacionet e memories atomike), Zalrsc (Load-Reserved/Store-conditional) dhe ZBKB (operacionet bitwise për kriptografinë).
- Gjatë gjurmimit, tani është e mundur të ruhen argumentet e funksioneve të thirrura dhe të shfaqen ato në regjistrat e gjurmimit.
- Sistemi i hyrjeve/daljeve asinkrone io_uring është përditësuar për të mbështetur leximin e informacionit të ngjarjeve epoll. Përdorimi i io_uring për të trajtuar ngjarjet epoll zvogëlon numrin e ndërruesve të kontekstit dhe bën të mundur trajtimin e shumë ngjarjeve të epoll në të njëjtën kohë.
- NĂ«nsistemi eBPF ka pĂ«rmirĂ«suar verifikimin e programeve me sythe. U shtuan udhĂ«zime tĂ« reja "timed_may_goto", "load-acquire" dhe "store-release". ĂshtĂ« ofruar mundĂ«sia pĂ«r tĂ« ndryshuar atributet e zgjeruara tĂ« skedarĂ«ve nga programet BPF. U shtua funksioni try_alloc_pages(), i projektuar pĂ«r tĂ« ndarĂ« memorie kur ka njĂ« probabilitet tĂ« lartĂ« tĂ« njĂ« operacioni tĂ« pasuksesshĂ«m (kur ekzekutohen programe BPF nĂ« kontekste tĂ« kufizuara).
ĂshtĂ« zbatuar njĂ« primitiv i ri i kyçjes - rqspinlock (Resilient Queued Spin Lock), i cili zbulon situatat qĂ« çojnĂ« nĂ« kyçje tĂ« ndĂ«rsjella gjatĂ« ekzekutimit. Primativi i ri bĂ«n tĂ« mundur ngarkimin e programeve BPF pĂ«r tĂ« cilat verifikuesi nuk garantoi funksionimin e saktĂ« me kyçje.
- Besueshmëria e alokimit të faqeve të mëdha të memories (faqe të mëdha) është përmirësuar ndjeshëm.
- Llogaritja e kontrollit CRC64 është përshpejtuar ndjeshëm në sistemet x86. Ndër të tjera, për përshpejtim përdoren udhëzime të reja vektoriale nga grupi AVX-512. Në disa situata, produktiviteti u rrit me 100 herë.
- Vazhdimi i migrimit tĂ« ndryshimeve nga dega Rust-for-Linux, qĂ« lidhet me pĂ«rdorimin e Rust si gjuhĂ« tĂ« dytĂ« pĂ«r zhvillimin e drajverĂ«ve dhe moduleve tĂ« kernelit (MbĂ«shtetja pĂ«r Rust nuk Ă«shtĂ« aktive si parazgjedhje dhe nuk rezulton nĂ« pĂ«rfshirjen e Rust midis varĂ«sive tĂ« kĂ«rkuara tĂ« ndĂ«rtimit tĂ« kernelit). ĂshtĂ« futur mundĂ«sia pĂ«r tĂ« pĂ«rdorur makron "#[kunit_tests()]" nĂ« kodin e kernelit pĂ«r ekzekutimin e testeve tĂ« njĂ«sisĂ«. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r arkitekturĂ«n ARMv7. Modulet dma dhe hrtimer janĂ« zbatuar me lidhjet Rust pĂ«r DMA (tĂ« shtuara nga Linus, duke anashkaluar mirĂ«mbajtĂ«sin, i cili qĂ« atĂ«herĂ« ka dhĂ«nĂ« dorĂ«heqjen) dhe kohĂ«matĂ«sit me precizion tĂ« lartĂ«. Modulet 'list', 'str', 'sync', 'error' dhe 'alloc' janĂ« zgjeruar. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r sintaksĂ«n e re '&raw' (raw_ref_op).
- Nënsistemi perf ka zbatuar aftësinë për të profilizuar vonesat duke përdorur informacionin nga planifikuesi i detyrave.
- Shtua parametri i linjës së komandës së kernelit "traceoff_after_boot" për të çaktivizuar gjurmimin pasi kerneli të jetë nisur dhe procesi i inicializimit të ketë filluar. Ky parametër mund të përdoret për të diagnostikuar problemet që lidhen me nisjen duke u siguruar që të dhënat e gjurmës së akumuluara gjatë nisjes nuk mbishkruhen.
- U hoq mbështetja për sistemet x32 86-bit me më shumë se 8 CPU dhe 4 GB RAM. Pajisje të tilla nuk janë prodhuar për një kohë të gjatë, dhe sistemet që kërkojnë burime të tilla janë transferuar në CPU 64-bit.
- Implementimi i kohëmatësit POSIX është modifikuar për të lejuar që seti i mjeteve Checkpoint/Restore in Userspace (CRIU) të ruajë dhe rivendosë identifikuesit e kohëmatësit.
- Virtualizimi dhe Siguria
- U shtua aftësia për t'u përdorur Linux si mjedisi rrënjë (ndarja rrënjë Dom0.) për Hyper-V (Microsoft Hypervisor). Mjedisi pritës është përgjegjës për menaxhimin e hipervizorit, organizimin e nisjes së sistemeve mysafire, ndarjen e burimeve dhe sigurimin e ndërveprimit. makina virtuale me harduer. Menaxhimi i hipervizorit Hyper-V në Linux implementohet përmes pajisjes /dev/mshv.
- Në modulin Landlock, i cili u ofron programeve të paprivilegjuara mjetet për të kufizuar përdorimin e objekteve të kernelit. Linux Një mekanizëm auditimi është shtuar në skedarë (hierarkitë e skedarëve, prizat e rrjetit, ioctl, etj.). Auditimi lejon një vlerësim të detajuar të arsyeve për bllokimet e aksesit të kryera gjatë përdorimit të Landlock, dhe gjithashtu ofron informacion se kur dhe cili operacion është bllokuar, pse ka ndodhur bllokimi dhe cili rregull është aktivizuar.
- U shtua mundësia për t'u zbatuar në module LSM (Linux Modulet e Sigurisë) trajtues që kontrollojnë thirrjet në sistemin asinkron të I/O (io_uring) dhe lejojnë bllokimin e përdorimit të io_uring për të anashkaluar kufizimet e aksesit në thirrjet e sistemit. Një trajtues i ngjashëm është zbatuar në modulin LSM SE.Linux.
- NĂ« JuglindjeLinux ĂshtĂ« zbatuar mundĂ«sia pĂ«r tĂ« aplikuar politika pĂ«r çdo lloj tĂ« dhĂ«nash tĂ« ngarkuara nga kerneli, duke pĂ«rfshirĂ« imazhet e firmware-it, politikat e sigurisĂ« dhe certifikatat.
- U shtua modaliteti i vulosjes për disa operacione të hartëzimit të memories të kryera nga bërthama në hapësirën e adresave të procesit. Pinning-u e bën hartëzimin vetëm për lexim dhe parandalon ndryshimin e tij nëse shfrytëzohet një dobësi. Veprimi vlen për hartëzimin vDSO, vsyscall, vvar, sigpage dhe uprobes. Ky modalitet është i çaktivizuar si parazgjedhje sepse mund të ndërhyjë në funksionimin e disa aplikacioneve. U shtua cilësimi i ndërtimit CONFIG_MSEAL_SYSTEM_MAPPINGS për t'u aktivizuar.
- Nënsistemi i rrjetit
- Puna ka vazhduar për të hequr kyçin global RTNL (rtnl_lock) nga grumbulli i rrjetit dhe për ta konvertuar atë në kyçe që janë të lidhura me hapësira emrash individuale të rrjetit.
- U shtua aftësia fillestare për të marrë paketa rrjeti nëpërmjet io_uring me përmbajtje të kopjuar direkt në kujtesën e programit në hapësirën e përdoruesit pa buffering të ndërmjetëm (kopje zero). Në testet e kryera, ndryshimi bëri të mundur trajtimin e përpunimit të trafikut mbi një kanal 200 gigabit duke përdorur një bërthamë CPU-je.
- Janë implementuar opsioni sysctl tcp_rto_max_ms dhe TCP socket TCP TCP_RTO_MAX_MS, nëpërmjet të cilave mund të caktoni kohën maksimale midis përpjekjeve për të ritransmetuar paketa.
- BPF është përditësuar për të përfshirë një seri thirrjesh kthyese për të marrë informacionin e kohës nga vende të ndryshme në grumbullin e rrjetit, i cili mund të përdoret për të diagnostikuar problemet e latencës së rrjetit.
- Optimizime të shtuara të performancës së rrjetit:
- Optimizimi GRO (Generic Receive Offload), i cili kombinon disa paketa të vogla në një të madhe, aktivizohet tani kur përpunimi i paketave kalon në një CPU tjetër (për balancimin e ngarkesës) kur përdoret nënsistemi XDP (EXpress Data Path), i cili lejon që paketat të përpunohen në nivelin e drejtuesit të rrjetit përpara se të transmetohen në grupin e rrjetit. Fitimi i performancës për përpunimin e prurjeve TCP nga aplikimi i optimizimit mund të jetë deri në dy herë.
- Në kushte të ngarkesës së lartë, performanca e funksionit connect() është rritur deri në dy herë duke zëvendësuar kyçjen e rrotullimit me mekanizmin e sinkronizimit RCU (Read-Copy-Update) kur kërkoni për regjistrime me informacion në lidhje me anët e lidhjes (burimi dhe objektivi). adresat IP dhe portet). Për më tepër, u krye optimizimi i heshimit, duke siguruar një rritje të mëtejshme të performancës prej 229%.
- Zbatimi i MPTCP (Multipath TCP), një zgjerim i protokollit TCP për organizimin e shpërndarjes së paketave në të njëjtën kohë përgjatë disa rrugëve përmes ndërfaqeve të ndryshme të rrjetit të lidhura me adresa IP të ndryshme, është përshpejtuar. MPTCP në modalitetin me një rrjedhje përshpejtohet me 29%.
- Në netfilter, kur ka një prizë, operacionet e kërkimit të rrugës në FIB (Baza e Informacionit të Përcjelljes) ndalen. Falë këtij optimizimi, produktiviteti u rrit me 20%.
- Performanca e UDP në kushte përmbytjeje është rritur me 10% duke eliminuar operacionet e panevojshme me strukturën sk_tsflags gjatë marrjes së paketave.
- U shtua drajver me implementimin e protokollit MCTP-mbi-USB.
- ĐĐ±ĐŸŃŃĐŽĐŸĐČĐ°ĐœĐžĐ”
- Bërthama përfshin implementimin fillestar të drajverit Nova për GPU-të NVIDIA të pajisura me firmware GSP të përdorur duke filluar me serinë NVIDIA GeForce RTX 2000 bazuar në mikroarkitekturën Turing. Shoferi është shkruar në Rust. Në fazën e parë, u shtua vetëm framework-u nova-core, i cili ka rreth 400 rreshta kodi dhe zbaton një nivel bazë abstraksionesh mbi API-të e firmware-it GSP. Në fazën tjetër, kerneli planifikon të përfshijë drajverin DRM nova-drm (Direct Rendering Manager) për bashkëveprim me GPU-në nga hapësira e përdoruesit, si dhe drajverin VFIO me menaxherin vGPU, i cili lejon përdorimin e GPU-ve virtuale NVIDIA në sistemet e virtualizimit.
- Puna vazhdoi në drajverin Xe drm (Direct Rendering Manager) për GPU-të bazuar në arkitekturën Intel Xe, e cila përdoret në kartat grafike të familjes Intel Arc dhe grafikët e integruar, duke filluar me procesorët Tiger Lake. U shtua mbështetje për SVM (Memoria Virtuale e Ndarë), një komponent i kornizës DRM që menaxhon memorien e përbashkët të ndarë midis CPU-së dhe GPU-së.
- ID-të e reja të GPU-së janë shtuar në drajverin i915.
- Drajveri Nouveau ka një GSP RPC të ripunuar dhe ndërfaqen drm_slave_encoder të integruar.
- Drajveri AMDGPU zbaton mbështetje për arkitekturën DCN36 (Display Core Next). U shtua mundësia për të vendosur kurbat tuaja të ndriçimit të përdorura për të korrigjuar ndriçimin e ekranit.
- Drajveri i adreno është përditësuar për të mbështetur GPU-në Qualcomm Adreno 623.
- Shtohet mbështetje për panelet me prekje të Apple Touch Bar.
- Shtuar mbĂ«shtetje pĂ«r versionin e dytĂ« tĂ« zgjerimit eUSB2 (eUSB2V2 â Embedded USB2 Version 2.0), i cili ju lejon tĂ« zvogĂ«loni tensionin e furnizimit (deri nĂ« 1.2 volt) dhe tĂ« rrisni performancĂ«n e USB 2.0. ShpejtĂ«sia e transferimit tĂ« tĂ« dhĂ«nave tĂ« eUSB2V2 mund tĂ« arrijĂ« 4.8 Gbps, qĂ« Ă«shtĂ« 10 herĂ« mĂ« e shpejtĂ« se 480 Mbps e zakonshme tipike pĂ«r USB 2.0. eUSB2V2 do t'u lejojĂ« prodhuesve tĂ« laptopĂ«ve tĂ« integrojnĂ« kamera interneti me rezolucion mĂ« tĂ« lartĂ« nĂ« pajisjet e tyre, ndĂ«rkohĂ« qĂ« pĂ«rdorin ende autobusin e integruar USB2 pĂ«r t'i lidhur ato.
- Shtuar mbështetje për adaptorët Ethernet Intel Killer E5000 (RTL8126).
- U shtua mbështetje për panelet e ekranit Visionox RM692E5, Rockchip w552793dba-v10, kingdisplay-kd110n11-51ie dhe starry-2082109qfh040022-50e.
- U shtua drajver për laptopët Samsung Galaxy Book.
- U shtua mbështetje për sistemet e zërit Presonus Studio 1824c, Jabra Evolve 65. U shtua mbështetje për modulet AMD ACP 7.x, AWINC WM88166, Everest ES8388, Intel AVS PEAKVOL dhe GAIN DSP. Mbështetje e përmirësuar e zërit në laptopët ASUS, HP dhe Lenovo.
- Shtuar mbështetje për pllakat ARM, SoC dhe pajisjet: Arm Morello, AMD (Xilinx) Versal NET, Google Pixel Pro 6, NetCube Kumquat, MYIR Remi Pi, Huawei Matebook E Go, Milk-V Jupiter ST STM32MP2, Mediatek MT8370, Apple T2, Skov (i.MX8MP), EVK (i.MX95), Rockchip RK35xx, Allwinner A523, 11 pllaka Toradex të bazuara në i.MX6.
Në të njëjtën kohë, Fondacioni i Softuerit të Lirë të Amerikës Latine krijoi një version të kernelit plotësisht falas 6.15 - Linux-libre 6.15-gnu, i pastruar nga elementët e firmware-it dhe drajverit që përmbajnë komponentë jo të lirë ose seksione kodi me fushëveprim të kufizuar. Versioni 6.15 neutralizon ngarkesën blob në drajverët audio nova, Qualcomm iris v4l2, Airoha NPU, Tehuti Networks TN40xx 10G ethernet, Realtek 8814A wifi, Apple Silicon SoC touchscreen, Renesas UFS dhe aw88166. Pastrimi i drajverit ethernet Spider 1Gb, i cili u hoq nga bërthama, është ndërprerë. Referencat për skedarët binare të tivoizuar janë hequr. Ngarkimi i blob nga kodi Rust është bllokuar.
Burimi: opennet.ru
