Pas dy muajsh zhvillimi, Linus Torvalds paraqiti nxitja e bërthamës Linux 5.14. Ndër ndryshimet më të dukshme janë: thirrjet e reja sistemore quotactl_fd() dhe memfd_secret(), heqja e drejtuesve ide dhe raw, një kontrollues i ri i përparësisë për input/output për cgroup, moda e planifikimit të detyrave SCHED_CORE, infrastruktura për krijimin e ngarkuesve të verifikuar BPF.
Në versionin e ri janë pranuar 15883 korrigjime nga 2002 zhvillues, madhësia e patch-it është 69 MB (ndryshimet prekin 12580 skedarë, janë shtuar 861501 rreshta kodi, janë fshirë 321654 rreshta). Rreth 47% e të gjitha ndryshimeve të paraqitura në 5.14 lidhen me drejtuesit e pajisjeve, rreth 14% e ndryshimeve kanë të bëjnë me azhurnimin e kodit të specifik për arkitekturat harduerike, 13% është në lidhje me grilën rrjet, 3% me sistemet e skedarëve dhe 3% me nën-sistemet e brendshme të bërthamës.
- sistemi i diskut, input/output dhe sistemet e skedarëve:
- pĂ«r cgroup Ă«shtĂ« implementuar kontrolluesi i ri i pĂ«rparĂ«sisĂ« pĂ«r input/output â rq-qos, i cili mund tĂ« menaxhojĂ« pĂ«rparĂ«sinĂ« e trajtimit tĂ« kĂ«rkesave pĂ«r pajisje bllokimi, tĂ« gjeneruara nga anĂ«tarĂ«t e çdo cgroup. MbĂ«shtetje pĂ«r kontrolluesin e ri tĂ« pĂ«rparĂ«sisĂ« Ă«shtĂ« shtuar nĂ« planifikuesin e input/output mq-deadline;
- në sistemin e skedarëve ext4 është implementuar komanda e re ioctl EXT4_IOC_CHECKPOINT, e cila detyron shkarkimin në disk të të gjitha transaksioneve të pritura nga skedari dhe tamponët e lidhur me to, si dhe përshkrimin e zonës së përdorur nga skedari në ruajtje. Ndryshimi është përgatitur si pjesë e iniciativës për të parandaluar rrjedhjet e informacionit nga sistemet e skedarëve;
- në Btrfs bërë optimizimet e performancës: përmes përjashtimit të regjistrimit të tepruar të atributeve të zgjeruara gjatë ekzekutimit të fsync, performanca e operacioneve intensive me atribute të zgjeruara është rritur deri në 17%. Përveç kësaj, gjatë kryerjes së operacioneve të shkurtimit, që nuk përfshijnë ekstenti, është deaktivizuar ekzekutimi i sinkronizimit të plotë, duke reduktuar kohën e ekzekutimit të operacionit me 12%. Në sysfs është shtuar një parametër për të kufizuar kapacitetin e input/output gjatë verifikimit të FS. Janë shtuar thirrje ioctl për të anuluar operacionet e ndryshimit të madhësisë dhe heqjes së pajisjeve;
- në XFS ristrukturuar implementimi i caches buffer që është kaluar në alokimin e faqeve të memories në modin paketë. Rritet efikasiteti i punës së caches;
- NĂ« F2FS Ă«shtĂ« shtuar njĂ« opsion pĂ«r tĂ« funksionuar nĂ« modalitetin vetĂ«m pĂ«r lexim dhe Ă«shtĂ« zbatuar njĂ« modalitet ruajtjeje tĂ« bllokove tĂ« kompresuar (compress_cache) pĂ«r tĂ« pĂ«rmirĂ«suar performancĂ«n e leximit tĂ« rastĂ«sishĂ«m. ĂshtĂ« realizuar mbĂ«shtetje pĂ«r kompresimin e skedareve tĂ« reflektuara nĂ« memorie pĂ«rmes operacionit mmap(). PĂ«r tĂ« çaktivizuar selektivisht kompresimin e skedareve sipas njĂ« maske Ă«shtĂ« propozuar njĂ« opsion i ri montimi nocompress;
- në drejtuesin exFAT është punuar për përmirësimin e kompatibilitetit me depot e disa kamerave digjitale;
- është shtuar thirrja sistemike quotactl_fd(), e cila lejon menaxhimin e kuotave jo përmes një fajlli të veçantë pajisjeje, por përmes caktimit të një deshifruese fajlli të lidhur me sistemin e skedarëve për të cilin zbatohet kuota;
- nga bërthama janë hequr drejtuesit e vjetër për pajisjet bllokuese me interface IDE, të cilat prej kohësh janë zëvendësuar nga nënsistemi libata. Mbështetje për pajisjet e vjetra është ruajtur në përmasën e plotë, ndryshimet prekin vetëm mundësinë e përdorimit të drejtuesve të vjetër, që kur përdoren, disqet emërohen /dev/hd*, jo /dev/sd*;
- nga bërthama është hequr drejtuesi «raw», i cili ofron akses pa tampon për pajisjet bllokuese përmes interfeces /dev/raw. Funksionaliteti i cituar është realizuar prej kohësh në aplikacione përmes flamurit O_DIRECT;
- memoria dhe shërbimet sistemore:
- nĂ« planifikuesin e detyrave Ă«shtĂ« zbatuar njĂ« modalitet i ri planifikimi SCHED_CORE, i cili lejon menaxhimin e proceseve qĂ« mund tĂ« ekzekutohen sĂ« bashku nĂ« njĂ« bĂ«rthamĂ« CPU. Ădo procesi mund t'i caktohet njĂ« identifikues cookie, i cili pĂ«rcakton fushĂ«n e besueshmĂ«risĂ« ndĂ«rmjet proceseve (p.sh., pĂ«rkatĂ«sia te njĂ« pĂ«rdorues ose kontejner njĂ«jtĂ«). Kur organizohet ekzekutimi i kodit, planifikuesi mund tĂ« sigurojĂ« ndarjen e njĂ« bĂ«rthame CPU vetĂ«m pĂ«r proceset e lidhura me njĂ« pronar tĂ« vetĂ«m, qĂ« mund tĂ« pĂ«rdoret pĂ«r tĂ« bllokuar disa sulme tĂ« klasĂ«s Spectre duke parandaluar ekzekutimin nĂ« njĂ« rrjedhĂ« SMT (Hyper Threading) tĂ« detyrave besueshĂ«m dhe tĂ« pasigurt;
- për mekanizmin cgroup është zbatuar mbështetje për operacionin kill, i cili lejon përfundimin një herë të gjitha proceseve të lidhura me grupin (dërgimin e SIGKILL), përmes shkrimit «1» në fajlin virtual cgroup.kill;
- MundĂ«sitĂ« e zgjeruara nĂ« lidhje me reagimin ndaj zbulimit tĂ« bllokimeve tĂ« ndara («split lock»), qĂ« ndodhin gjatĂ« aksesit nĂ« tĂ« dhĂ«na tĂ« pakontrolluara nĂ« memorie pĂ«r shkak se gjatĂ« ekzekutimit tĂ« njĂ« instruksioni atomik tĂ« dhĂ«nat kalojnĂ« pĂ«rmes dy linjave tĂ« caches tĂ« CPU-sĂ«. Bllokimet e tilla çojnĂ« nĂ« njĂ« rĂ«nie tĂ« konsiderueshme tĂ« performancĂ«s, prandaj mĂ« parĂ« u ofrua mundĂ«sia pĂ«r tĂ« pĂ«rfunduar me forcĂ« aplikacionin qĂ« shkaktonte bllokimin. NĂ« edicionin e ri Ă«shtĂ« shtuar parametri i komandĂ«s nĂ« kernel «split_lock_detect=ratelimit:N», qĂ« lejon pĂ«rcaktimin e njĂ« limiti tĂ« sistemit tĂ« pĂ«rgjithshĂ«m pĂ«r intensitetin e operacioneve tĂ« bllokimit nĂ« ŃĐ”Đșond, pas kalimit tĂ« tĂ« cilit çdo proces qĂ« bĂ«het burim i njĂ« bllokimi tĂ« ndarĂ« do tĂ« ndalet me forcĂ« pĂ«r 20 ms, nĂ« vend qĂ« tĂ« pĂ«rfundojĂ«;
- nĂ« kontrollorin e cgroup-it pĂ«r kapacitetin CFS (CFS bandwidth controller), i cili pĂ«rcakton sa shumĂ« kohĂ« procesori mund tâi kushtohet secilit cgroup, Ă«shtĂ« realizuar mundĂ«sia pĂ«r tĂ« pĂ«rcaktuar kufij tĂ« kufizuar nga njĂ« kohĂ«zgjatje e caktuar, çka lejon rregullimin mĂ« tĂ« mirĂ« tĂ« ngarkesave tĂ« ndjeshme ndaj vonesave. PĂ«r shembull, vendosja e vlerĂ«s cpu.cfs_quota_us nĂ« 50000 dhe cpu.cfs_period_us nĂ« 100000 do tĂ« lejojĂ« njĂ« grup procesesh tĂ« shpenzojnĂ« 50ms tĂ« kohĂ«s sĂ« CPU-sĂ« çdo 100ms;
- është shtuar infrastruktura fillestare për krijimin e ngarkuesve të programeve BPF, e cila në të ardhmen do të lejojë ngarkimin vetëm të programeve BPF që janë nënshkruar me një çelës dixhital të besueshëm;
- u shtua një operacion i ri futex FUTEX_LOCK_PI2, që përdor një ajrosës monotone për llogaritjen e kohës së skadimit, e cila merr parasysh kohën e kaluar nga sistemi në modalità gjumi;
- për arkitekturën RISC-V u realizua mbështetje për faqe të mëdha memorie (Transparent Huge-Pages) dhe mundësinë e përdorimit të mekanizmit KFENCE për identifikimin e gabimeve në punën me memorinë;
- në thirrjen sistemike madvise(), që ofron mjete për optimizimin e menaxhimit të memories së procesit, janë shtuar flaggat MADV_POPULATE_READ dhe MADV_POPULATE_WRITE për të gjeneruar «page fault» në të gjitha faqet e memories, të reflektuara për operacionet e leximit ose shkruajtur, pa kryer të vërtetën leximit ose shkruar (prefault). Përdorimi i flaggave mund të jetë i dobishëm për zvogëlimin e vonesave gjatë funksionimit të programit, për shkak të ekzekutimit të parashikueshëm të trajtuesit të «page fault» njëherë për të gjitha faqet e pa alokuara, pa pritur që të bëhen thirrje reale ndaj tyre;
- në sistemin e testimit unit kunit është shtuar mbështetje për funksionimin e testeve në ambientin QEMU;
- janë shtuar gjurmues të rinj: "osnoise" për të ndjekur vonesat në aplikacione shkaktuara nga përpunimi i ndërprerjeve, dhe "timerlat" për të ofruar informacion të detajuar mbi vonesat gjatë zgjohet nga sinjali i timer-it;
- virtualizimi dhe siguria:
- është shtuar thirrje sistemike memfd_secret(), e cila lejon krijimin e një zonë private kujtese në një hapësirë adresash të izoluar, e dukshme vetëm për procesin pronar, jo e reflektuar në procese të tjera dhe e paqëndrueshme direkt për bërthamorin;
- në sistemin e filtrimit të thirrjeve sistemike seccomp, gjatë shkëputjes së trajtuesve të bllokimit në hapësirën e përdoruesit është ofruar mundësia e përdorimit të një operacioni atomik për të krijuar një deshifruese skedari për detyrën e izoluar dhe për ta kthyer atë gjatë përpunimit të thirrjes sistemike. Operacioni i propozuar zgjidh problemit me ndërprerjen e trajtuesit në hapësirën e përdoruesit gjatë mbërritjes së sinjalit;
- është shtuar mekanizmi i ri për menaxhimin e kufizimit të burimeve në hapësirën e identifikuesve të përdoruesve, i cili lidh numërues të veçantë rlimit me përdoruesin në "user namespace". Ndryshimi zgjidh problemin e aplikimit të numëruesve të përbashkët të burimeve kur një përdorues ekzekuton procese në konteiner të ndryshëm;
- në hypervisor KVM për sistemet ARM64 është shtuar mundësia e përdorimit në sistemet MI të zgjerimit MTE (MemTag, Memory Tagging Extension), që lejon lidhjen e etiketave me çdo operacion të ndarjes së kujtesës dhe organizimin e kontrollit të saktësisë së përdorimit të treguesve për të bllokuar shfrytëzimin e dobësive të shkaktuara nga qasja në blloqe kujtese që janë çliruar tashmë, mbushjeve të buffer-it, qasjes para inicializimit dhe përdorimit jashtë kontekstit të tanishëm;
- mjetet e ofruara nga platforma ARM64 për autentifikimin e treguesve tani mund të konfigurohen veçmas për bërthamën dhe hapësirën e përdoruesit. Teknologjia lejon përdorimin e instrukcioneve të specializuara ARM64 për të kontrolluar adresat e kthimit duke përdorur nënshkrime digjitale, që ruhen në bitët më të lartë të pa përdorur të vetë treguesit;
- në User-mode Linux është shtuar mbështetje për përdorimin e drejtuesve për pajisjet PCI me një autobisë virtual PCI, i realizuar nga drejtuesi PCI-over-virtio;
- për sistemet x86 u shtua mbështetje për pajisjen paravirtualizuese virtio-iommu, e cila lejon dërgimin e kërkesave IOMMU, të tilla si ATTACH, DETACH, MAP dhe UNMAP, mbi transportin virtio pa imituar tabelat e faqeve të memories;
- për CPU-të Intel, duke filluar nga familja Skylake deri te Coffee Lake, për default është çaktivizuar përdorimi i zgjerimeve Intel TSX (Transactional Synchronization Extensions), që ofrojnë mjete për rritjen e performancës së aplikacioneve me shumë threads duke përjashtuar dinamikisht operacionet e panevojshme të sinkronizimit. Zgjerimet janë çaktivizuar për shkak të mundësisë së sulmeve Zombieload, që manipulojnë rrjedhjen e informacionit përmes kanaleve të jashtme, që ndodhin gjatë funksionimit të mekanizmit të ndërprerjes asinkrone të operacioneve (TAA, TSX Asynchronous Abort);
- nënshkrimi i rrjetit:
- u vazhdua integrimi në bërthamën MPTCP (MultiPath TCP), një zgjerim i protokollit TCP për organizimin e funksionimit të lidhjes TCP me dërgesa paketash njëkohësisht përmes disa rrugëve përmes ndërfaqeve të ndryshme rrjetore, të lidhura me adresa të ndryshme IP. Në versionin e ri është shtuar mjeku për caktimin e politikave të veta të heshimit të trafikut për IPv4 dhe IPv6 (multipath hash policy), që lejon nga hapësira e përdoruesit të caktosh cilat nga fushat në paketat, duke përfshirë ato të inkapsuluara, do të përdoren për llogaritjen e hash-it, që përcakton zgjedhjen e rrugës për paketën;
- në transportin virtual virtio u shtua mbështetje për soketë SOCK_SEQPACKET (dërgesë e përporosur dhe të sigurt e datagramëve);
- u zgjeruan mundësitë e mekanizmit të soketeve SO_REUSEPORT, i cili lejon që disa sokete dëgjimi të lidhen menjëherë me një port për pranim lidhjesh, me shpërndarjen e kërkesave të ardhura njëkohësisht për të gjitha soketet e lidhura përmes SO_REUSEPORT, duke thjeshtuar krijimin e aplikacioneve servere me shumë threads. Në versionin e ri janë shtuar mjetet për transferimin e kontrollit te një soket tjetër në rast dështimi gjatë trajtimit të kërkesës nga soketi fillestar i zgjedhur (zgjidh problemin e humbjes së lidhjeve të veçanta gjatë rinisjes së shërbimeve);
- pajisje:
- në drejtorin amdgpu është implementuar mbështetje për seritë e reja të GPU AMD Radeon RX 6000, të zhvilluara nën emrat kodik "Beige Goby" (Navi 24) dhe "Yellow Carp", si dhe përmirësim i mbështetjes për GPU Aldebaran (gfx90a) dhe APU Van Gogh. Shtuar mundësia e punës së njëkohshme me disa ekrane eDP. Për APU Renoir është realizuar mbështetje për punën me buferë të koduar në memorjen video (TMZ, Trusted Memory Zone). Shtuar mbështetje për nxjerrjen e nxehtë të kartave grafike (hot-unplug). Për GPU Radeon RX 6000 (Navi 2x) dhe GPU më të vjetra AMD është aktivizuar automatikisht mbështetje për mekanizmin e menaxhimit të energjisë ASPM (Active State Power Management), i cili më parë ishte aktivizuar vetëm për GPU Navi 1x, Vega dhe Polaris;
- për çipat AMD është shtuar mbështetje për memorjen virtuale të ndarë (SVM, shared virtual memory) mbi bazën e nën-sistemës HMM (Heterogeneous memory management), e cila lejon përdorimin e pajisjeve me blloqe të veta menaxhimi të memorjes (MMU, memory management unit), të cilat mund të qasen në memorjen kryesore. Ndër të tjera, përmes HMM mund të organizohet një hapësirë për adresim të përbashkët midis GPU dhe CPU, në të cilën GPU mund të ketë qasje në memorjen kryesore të procesit;
- është shtuar mbështetje fillestare për teknologjinë AMD Smart Shift, e cila ndryshon dinamik parametrat e konsumit të energjisë CPU dhe GPU në laptopët me çipset dhe kartën grafike AMD për forcimin e performances në lojëra, redaktimin e videove dhe 3D-Render;
- në drejtuesin i915 për kartat grafike Intel është përfshirë mbështetje për çipat Intel Alderlake P;
- është shtuar drejtuesi drm/hyperv për adaptorin grafik virtual Hyper-V;
- është shtuar drejtuesi grafik simpledrm, i cili përdor për prodhimin e fotove framebuffer EFI-GOP ose VESA, e ofruar nga firmware UEFI ose BIOS. Qëllimi themelor i drejtuesit është të ofrojë mundësinë e prodhimit grafik në fazat fillestare të ngarkimit, para se të bëhet e mundur përdorimi i një drejtuesi DRM të plotë. Drejtuesi gjithashtu mund të përdoret si një zgjidhje përkohësore për pajisjet për të cilat ende s'ka drejtuesa DRM të dedikuar;
- është shtuar mbështetje për kompjuterin e gjithë në një Raspberry Pi 400;
- është shtuar drejtuesi dell-wmi-privacy për mbështetje të ndezësve të kamerës dhe mikrofonit të ofruar në laptopët Dell;
- për laptopët Lenovo është shtuar interfesi WMI për ndryshimin e parametrave të BIOS përmes sysfs /sys/class/firmware-attributes/;
- është zgjeruar mbështetje për pajisjet me interfesë USB4;
- është shtuar mbështetje për kartat e zërit dhe kodekët AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 dhe Texas Instruments TAS2505. Përmirësuar mbështetje për zërin në laptopët HP dhe ASUS. shtuar patches për të reduktuar vonesat përpara nisjes së reagimit të zërit në pajisjet me ndërfaqe USB.
Burimi â opennet.ru.
Burimi: linux.org.ru
