Pas dy muajsh zhvillimi, Linus Torvalds prezantoi lëshimin e bërthamës Linux 5.17. Ndër ndryshimet më të dukshme: një sistem i ri menaxhimi të performancës për procesorët AMD, mundësia për përputhjen rekursive të identifikuesve të përdoruesve në sistemet e skedarëve, mbështetje për programet e kompiluar BPF të përcjellshme, kalimi i gjeneratorit të numrave pseudo-rastësorë në algoritmin BLAKE2s, utilitarin RTLA për analizën e ekzekutimit në kohë reale, një backend të ri fscache për keqcache-timin e FSH-ve rrjetë, si dhe mundësia për të lidhur emra me operacionet anonime mmap.
Në versionin e ri janë pranuar 14203 rregullime nga 1995 zhvillues, madhësia e patch-it është 37 MB (ndryshimet preken 11366 skedarë, janë shtuar 506043 rreshta kodi, dhe janë fshirë 250954 rreshta). Afërsisht 44% e të gjitha ndryshimeve të paraqitura në 5.17 lidhen me drejtuesit e pajisjeve, rreth 16% e ndryshimeve kanë të bëjnë me përditësimin e kodit të veçantë për arkitekturën harduerike, 15% lidhen me shtresën e rrjetit, 4% me sistemet e skedarëve dhe 4% me nën-sistemet e brendshme të bërthames.
Novitetet kryesore në bërthamën 5.17:
- Sistemi i disqeve, hyrja/ dalje dhe sistemet e skedarëve
- Janë implementuar mundësitë për përputhjen e identifikuesve të përdoruesve në skedarët e montuar, që aplikohen për të lidhur skedarët e një përdoruesi në një pjesë të huaj të montuar me një përdorues tjetër në sistemin aktual. Mundësia e shtuar lejon përdorimin rekursiv të përputhjes mbi sistemet e skedarëve për të cilat tashmë aplikohet përputhja.
- E gjithë nën-sistemi fscache është shkruar nga e para, i aplikuar për organizimin e keqcache-timit në sistemin lokal të skedarëve të dhënave, të transmetuara përmes sistemeve të skedarëve rrjetë. Implementimi i ri dallon për thjeshtësinë e kodit dhe zëvendësimin e operacioneve komplekse të planifikimit dhe ndjekjes së gjendjeve të objekteve me mekanizma më të thjeshtë. Mbështetja për fscache të re është implementuar në sistemin e skedarëve CIFS.
- Në nën-sistem të ndjekjes së ngjarjeve në FS, fanotify është realizuar një tip i ri ngjarjesh FAN_RENAME, i cili lejon kapjen e një operacioni rinaming të skedarëve ose katalogëve me një herë (më parë për trajtim të rinaming është përdorur dy ngjarje të ndara FAN_MOVED_FROM dhe FAN_MOVED_TO).
- Në sistemin e skedarëve Btrfs është optimizuar operacionet e regjistrimit dhe fsync për katalogët e mëdhenj, e cila është realizuar duke kopjuar vetëm çelësat e indeksit dhe duke reduktuar volumenin e të dhënave të regjistruara. Është siguruar mbështetje për indeksimin dhe kërkimin sipas madhësisë së shënimeve për hapësirën e lirë, gjë që ka lejuar një reduktim prej rreth 30% të vonesave dhe ka shkurtuar kohën e kërkimit. Janë lejuar ndalimet e operacioneve të defragmentimit. Është përfshirë mundësia e shtimit të pajisjeve gjatë ndalimit të balancimit midis diskëve, pra, kur montohet FS me opsionin skip_balance.
- Është propozuar një sintaksë e re për montimin e sistemit të skedarëve Ceph, e cila zgjidh problemet e ekzistuara të lidhura me adresat IP. Përveç IP-adresat për përcaktimin e serverit tani mund të përdoret identifikatori i klasës (FSID): mount -t ceph user@fsid.fs_name=\/[subdir] mnt -o mon_addr=monip1[:port][\/monip2[:port]]
- Sistemi i skedarëve Ext4 është transferuar në një API të ri për montimin, i cili ndan fazat e analizës së opsioneve të montimit dhe konfigurimit të superblokut. Është ndërprerë mbështetja për opsionet e montimit lazytime dhe nolazytime, të cilat ishin shtuar si një ndryshim përkohësor për të simplifikuar kalimin në përdorimin e flamurit MS_LAZYTIME në util-linux. Është shtuar mbështetje për vendosjen dhe leximin e etiketave në FS (ioctl FS_IOC_GETFSLABEL dhe FS_IOC_SETFSLABEL).
- NFSv4 janë shtuar mbështetje për funksionimin në sistemet e skedarëve pa ndarjen e regjistrave të karaktereve në emrat e skedarëve dhe katalogëve. Në NFSv4.1+ është shtuar mbështetje për përcaktimin e seancave të agreguara (trunking).
- Memorie dhe shërbime sistemike
- Është shtuar drejtuesi amd-pstate, i cili siguron menaxhimin dinamik të frekuencës për arritjen e performancës optimale. Drejtuesi mbështet CPU dhe APU AMD që nga brezi Zen 2, është zhvilluar në bashkëpunim me kompaninë Valve dhe ka si qëllim përmirësimin e efikasitetit të menaxhimit të konsumit të energjisë. Për ndryshimin adaptiv të frekuencës përdoret mekanizmi CPPC (Kontrolli i Performancës së Procesorëve në Bashkëpunim), i cili lejon ndryshimin më të saktë të parametrave (nuk është i kufizuar në tre nivele performance) dhe reagon më shpejt ndaj ndryshimeve të gjendjes, sesa drejtuesit e P-state të përdorur më parë mbi bazën e ACPI (CPUFreq).
- Në nën-sistemën e eBPF është propozuar procesori bpf_loop(), që ofron një mënyrë alternative për organizimin e cikleve në programet e eBPF, më të shpejtë dhe më të lehtë për t'u kontrolluar nga verifikatori.
- Në nivelin e bërthamës është realizuar mekanizmi CO-RE (Compile Once — Run Everywhere), i cili lejon që kodi i programeve eBPF të mblidhet vetëm një herë dhe të përdoret një ngarkues universale, që e përshtat programin e ngarkuar me bërthamën aktuale dhe llojet BTF (BPF Type Format).
- Është ofruar mundësia për të caktuar emra për zonat e memories private anonime (të dedikuar përmes malloc), që mund të thjeshtësojë procesin e debgimit dhe optimizimin e konsumit të memories në aplikacione. Emrat caktohen përmes prctl me flagun PR_SET_VMA_ANON_NAME dhe shfaqen në /proc/pid/maps dhe /proc/pid/smaps në formën «[anon:<name>]».
- Në planifikuesin e detyrave është siguruar ndjekja dhe shfaqja në /proc/PID/sched të kohës së kaluar nga proceset në gjendjen e qëndresës së detyruar (forced-idle), e cila përdoret, për shembull, për të reduktuar ngarkesën në rast të mbinxehjes së procesorit.
- Janë shtuar moduli gpio-sim, i cili është i destinuar për simimin e çipave GPIO për teste.
- Në komandën «perf ftrace» është shtuar nënkomanda «latency» për të gjeneruar histogramë me informacion mbi vonesat.
- Janë shtuar një grup mjetesh «RTLA» për analizimin e funksionimit në mënyrë reale. Brenda këtij grupi janë mjete si osnoise (përcakton ndikimin e sistemit operativ mbi ekzekutimin e detyrave) dhe timerlat (në ndryshon vonesat e lidhura me timerin).
- Integruar një serë e dytë patchesh me realizimin e konceptit të fletëve të pagesave të memories (page folios), të cilat janë të ngjashme me faqet e bashkuara të memories (compound pages), por dallohen për semantikë të përmirësuar dhe organizim më të qartë të funksionimit. Përdorimi i fletëve lejon përshpejtimin e menaxhimit të memories në disa nën-sisteme të bërthamës. Në patch-et e propozuara është përfunduar transferimi i caches të faqeve në përdorimin e fletëve dhe është shtuar mbështetje fillestare për fletët në FS XFS.
- Shtuar mënyra e ndërtimit «make mod2noconfig», e cila gjeneron një konfigurim që ndërtimin e të gjitha nën-sistemeve të çaktivizuara në formën e moduleve të bërthamës.
- Janë rritur kërkesat për versionin LLVM/Clang, i cili mund të përdoret për ndërtimin e bërthamës. Tani për ndërtimin kërkohet të paktën versioni 11 i LLVM.
- Virtualizimi dhe siguria
- Është propozuar një implementim i azhurnuar i gjeneratorit të numrave të rastit RDRAND, i cili përgjigjet për funksionimin e pajisjeve /dev/random dhe /dev/urandom, i veçuar nga kalimi në përdorimin e funksionit të hash-it BLAKE2s në vend të SHA1 për operacionet e përzierjes së entropisë. Ky ndryshim ka lejuar rritjen e sigurisë së gjeneratorit të numrave të rastit, duke eliminuar algoritmin problematik SHA1 dhe duke përjashtuar rishtazimin e vektorit të inicializimit të RNG. Duke qenë se algoritmi BLAKE2s e tejkalon SHA1 në performancë, aplikuar gjithashtu ka pasur një ndikim pozitiv në performancën.
- Është shtuar mbrojtja nga dobësitë në procesorë, të shkaktuar nga ekzekutimi spekulativ i instruksioneve pas operacioneve të kalimit të drejtpërdrejtë të patëmetë. Problemi shfaqet për shkak të përpunimit përpara të instruksioneve që ndodhin në kujtesë menjëherë pas komandës së kalimit (SLS, Straight Line Speculation). Për të aktivizuar mbrojtjen kërkohet ndërtim duke përdorur lëshimin GCC 12, i cili është në fazën e testimit.
- Është shtuar mekanizmi i ndjekjes së numërimit të referencave (refcount, reference-count), i fokusuar në uljen e numrit të gabimeve gjatë numërimit të referencave që çojnë në qasje në kujtesë pas çlirimit të saj. Mekanizmi aktualisht është i kufizuar në nën-sistemin rrjetit, por në të ardhmen mund të adaptohet edhe për pjesë të tjera të bërthamës.
- Janë realizuar kontrollime të zgjeruara për shënime të reja në tabelën e faqeve të kujtesës së procesit, duke mundësuar identifikimin e disa llojeve të dëmtimeve dhe ndalimin e sistemit duke bllokuar sulmet në një fazë të hershme.
- Është shtuar mundësia për të shkarkuar module të bërthamës direkt nga bërthama vetë, në vend të përpunuesit në hapësirën e përdoruesit, duke lejuar me ndihmën e modulit LSM LoadPin që modulet e bërthamës të ngarkohen në kujtesë nga një pajisje ruajtëse e verifikuar.
- Është siguruar ndërtimi me flagun "-Wcast-function-type", i cili përfshin daljen e paralajmërimeve për konvertimin e treguesve të funksioneve në një lloj të papajtueshëm.
- Është shtuar një drejtues virtual i hostit pvUSB për hipervizorin Xen, që siguron akses në pajisjet USB, të cilat janë kalmuar në sistemet mikpritëse (lejon sistemet mikpritëse të aksesojnë pajisjet fizike USB, të aneksuara sistemit mikpritës).
- Shtimi i një moduli që lejon ndërveprimin përmes Wi-Fi me nën-sistemin IME (Intel Management Engine), i cili ofrohet në shumicën e pllakave të modernizuara me procesorë Intel dhe është implementuar si një mikroprocesor i veçantë, që funksionon pavarësisht CPU-së.
- Për arkitekturën ARM64 është implementuar mbështetje për mjetin e debug KCSAN (Kernel Concurrency Sanitizer), i cili është i dedikuar për identifikimin dinamik të kushteve të garës brenda bërthamës.
- Për sistemet 32-bit ARM është shtuar mundësia e përdorimit të mekanizmit KFENCE për identifikimin e gabimeve në punën me kujtesën.
- Në hipervizorin KVM është shtuar mbështetje për instrukcionet AMX (Advanced Matrix Extensions), të implementuara në procesorët e ardhshëm serverë Intel Xeon Scalable.
- Sistemi rrjetor
- Shtuar mbështetje për offloading në pajisjet e rrjetit të operacioneve që lidhen me menaxhimin e trafik të dhënash.
- Shtuar mundësia e përdorimit të protokollit MCTP (Management Component Transport Protocol) mbi pajisjet me interfacing serial. MCTP mund të përdoret për ndërveprimin e kontrollorëve menaxhues dhe pajisjeve të lidhura (procesorët host, pajisjet periferike etj.).
- Optimizuar TCP stack, për shembull, për të rritur performancën e thirrjeve recvmsg është realizuar çlirimi i vonuar i bufeve të soketeve.
- Në nivelin e autorizimeve CAP_NET_RAW lejohet caktimi i modeleve SO_PRIORITY dhe SO_MARK përmes funksionit setsockopt.
- Për IPv4 lejohet lidhja e soketeve të papërpunuara jo me adresat IP lokale, duke përdorur opsionet IP_FREEBIND dhe IP_TRANSPARENT.
- Shtuar sysctl arp_missed_max për konfigurimin e numrit prag të dështimeve gjatë kontrollit nga monitori ARP, pas së cilës interface-i rrjetit kalon në gjendje të çaktivizuar.
- Ofrohet mundësia e konfigurimit të vlerave të veçanta sysctl min_pmtu dhe mtu_expires për hapësirat e emrave të rrjetit.
- Në API ethtool është shtuar mundësia për të caktuar dhe përcaktuar madhësinë e bufeve për paketat hyrëse dhe dalëse.
- Në Netfilter është shtuar mbështetje për filtrimin e trafik të tranzitit pppoe në urën e rrjetit.
- Në modulin ksmbd me implementimin e skedarëve, që përdor protokollin SMB3, është shtuar mbështetje për shkëmbimin e çelësave, është angazhuar porta e rrjetit 445 për smbdirect dhe është shtuar mbështetje për parametrin "smb2 max credit. сервера, использующего протокол SMB3, добавлена поддержка обмена ключами, задействован сетевой порт 445 для smbdirect и добавлена поддержка параметра «smb2 max credit.
- Pajisje
- Në nën-sistemin drm (Direct Rendering Manager) dhe në drejtuesin i915 është shtuar mbështetje për ekranet që shfaqin informacion konfidencial, për shembull, disa laptopë janë të pajisur me ekrane me një mod të integruar për shikim konfidencial që pengon shikimin nga ana. Ndryshimet e shtuara lejojnë lidhjen e drejtuesve të specializuar për këto ekrane dhe menaxhimin e modit të shikimit konfidencial përmes vendosjes së pronave në drejtuesit KMS të zakonshëm.
- Në drejtuesin amdgpu është përfshirë mbështetje për teknologjinë e debugimit STB (Smart Trace Buffer) për të gjithë GPU-të AMD që e mbështesin atë. STB e thjeshton analizimin e dështimeve dhe identifikimin e burimeve të problemeve përmes ruajtjes në një buffer të veçantë të informacionit rreth funksioneve që janë kryer para dështimit të fundit.
- Në drejtuesin i915 është shtuar mbështetje për çipat Intel Raptor Lake S dhe mbështetje e ativizuar për grafikën e çipave Intel Alder Lake P. Është ofruar mundësia për të menaxhuar ndriçimin e ekranit përmes ndërfaqes DPCD nga VESA.
- Në drejtuesit fbcon/fbdev është rikthyer mbështetje për përshpejtimin harduerik të rrotullimit në konsolë.
- Është vijuar integrimi i ndryshimeve për mbështetje të çipave Apple M1. Është realizuar mundësia e përdorimit të drejtuesit simpledrm në sistemet me çipin Apple M1 për dalje përmes framebuffer-it të siguruar nga firmware.
- Kontingent mbështetje për ARM SoC, pajisje dhe pllaka Snapdragon 7c, 845 dhe 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek MT8183 (Acer Chromebook 314), Mediatek MT7986a/b (përdoret në ruterët Wi-fi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP i.MX8 ULP8, Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
- Shtuar mbështetje për procesorët ARM Cortex-M55 dhe Cortex-M33.
- Shtuar mbështetje për pajisjet që bazohen në CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
- Shtuar mbështetje për SoC StarFive JH7100 që bazohet në arkitekturën RISC-V.
- Shtuar drejtuesin lenovo-yogabook-wmi për menaxhimin e ndriçimit të tastierës dhe aksesin në sensorë të ndryshëm në Lenovo Yoga Book.
- Shtuar drejtuesin asus_wmi_sensors për akses në sensorët që përdoren në pllakat e nënshkruara Asus X370, X470, B450, B550 dhe X399 të bazuara në procesorët AMD Ryzen.
- Shtuar drejtuesin x86-android-tablets për tabletët që bazohen në arkitekturën x86, të dërguar me platformën Android.
- Shto u shtua mbështetje për ekranet me prekje TrekStor SurfTab duo W1 dhe stilolapsin për tabletët Chuwi Hi10 Plus dhe Pro.
- Në driverët për SoC Tegra 20/30 u shtua mbështetje për menaxhimin e energjisë dhe tensionit. U mundësua ngarkimi në pajisjet e vjetra 32-bitë që përdorin SoC Tegra, si ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 dhe Pad TF300TG.
- U shtuan driverët për kompjuterët industrialë Siemens.
- U shtua mbështetje për panelet LCD Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA dhe Team Source Display TST043015CMHX.
- U shtua mbështetje për sistemet audio dhe kodekët AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, sistemet Intel që përdorin NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. U zgjidhën problemet me Tegra194 HD-audio. U shtua mbështetje HDA për kodekët CS35L41. U përmirësua mbështetja për sistemet audio për laptopët Lenovo dhe HP, si dhe për pllakën nëna Gigabyte.
Burimi: opennet.ru
