Pas dy muajsh zhvillimi, Linus Torvalds prezantoi lëshimin e kernit Linux 5.14. Disa nga ndryshimet më të shquara përfshijnë: thirrjet e reja të sistemit quotactl_fd() dhe memfd_secret(), heqjen e drejtuesve ide dhe raw, një kontrollues të ri të prioriteteve të hyrjes/jeshjes për cgroup, modalitetin e planifikimit të detyrave SCHED_CORE, dhe infrastrukturën për krijimin e ngarkuesve të programeve të verifikuara BPF.
Në versionin e ri janë pranuar 15883 korrigjime nga 2002 zhvillues, madhësia e patch-it është 69 MB (ndryshimet preken 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 përditësimin e kodit specifik për arkitekturën harduerike, 13% lidhen me stack-un e rrjetit, 3% me sistemet e skedarëve dhe 3% me nën-sistemet e brendshme të kernelit.
TĂ« rejat kryesore:
- Sistemi i diskut, hyrja/ dalje dhe sistemet e skedarëve
- PĂ«r cgroup Ă«shtĂ« realizuar njĂ« kontrollues i ri pĂ«r prioritizimin e hyrjes/daljes â rq-qos, i cili mund tĂ« menaxhojĂ« prioritetin e procesimit tĂ« kĂ«rkesave ndaj pajisjeve bllokuese, qĂ« gjenerohen nga pjesĂ«marrĂ«sit e çdo cgroup. MbĂ«shtetja pĂ«r kontrolluesin e ri tĂ« prioritetit Ă«shtĂ« shtuar nĂ« planifikuesin e hyrjes/daljes mq-deadline.
- Në sistemin e skedarëve ext4 është realizuar një komandë e re ioctl - EXT4_IOC_CHECKPOINT, e cila detyron regjistrimin në disk të të gjitha transaksioneve të pritur nga journali dhe buferët përkatës, si dhe rindërton zonën e përdorur nga journali në ruajtje. Ndryshimi është përgatitur në kuadër të iniciativës për parandalimin e rrjedhjeve të informacionit nga sistemet e skedarëve.
- Në Btrfs janë bërë optimizime të performancës: duke përjashtuar regjistrimin e panevojshëm të atributeve të zgjeruara gjatë ekzekutimit të fsync, performanca e operacioneve intensive me atribute të zgjeruara është rritur deri në 17%. Për më tepër, gjatë ekzekutimit të operacioneve të shkurtimit, që nuk prekin ekstentët, është ndaluar ekzekutimi i sinkronizimit të plotë, duke reduktuar kohën e ekzekutimit të operacionit me 12%. Në sysfs është shtuar një konfigurim për kufizimin e kapacitetit të hyrjes/jeshjes gjatë kontrollit të FS. Janë shtuar thirrje ioctl për të anuluar operacionet e ndryshimit të madhësisë dhe fshirjes së pajisjeve.
- NĂ« XFS Ă«shtĂ« rishikuarimplementimi i caches buffer, e cila Ă«shtĂ« kalcuar nĂ« alokimin e faqeve tĂ« memorie nĂ« modin grupor. ĂshtĂ« rritur efikasiteti i punĂ«s sĂ« caches.
- NĂ« F2FS Ă«shtĂ« shtuar njĂ« opsion pĂ«r operimin nĂ« modalitetin vetĂ«m pĂ«r lexim dhe Ă«shtĂ« realizuar njĂ« modalitet ruajtjeje tĂ« blloqeve tĂ« kompresuar (compress_cache) pĂ«r tĂ« pĂ«rmirĂ«suar performancĂ«n e leximit tĂ« rastĂ«sishĂ«m. ĂshtĂ« implementuar mbĂ«shtetje pĂ«r kompresimin e skedarĂ«ve, tĂ« reflektuar nĂ« memorje pĂ«rmes operacionit mmap(). PĂ«r çaktivizimin selektiv tĂ« kompresimit tĂ« skedarĂ«ve sipas maskĂ«s, Ă«shtĂ« propozuar njĂ« opsion i ri montimi nocompress.
- Në drejtuesin exFAT është kryer punë për përmirësimin e kompatibilitetit me magazinat e disa kamerave digjitale.
- ĂshtĂ« shtuar thirrja sistematike quotactl_fd(), e cila lejon menaxhimin e kuotave jo pĂ«rmes njĂ« skedari tĂ« pajisjes speciale, por pĂ«rmes specifikimit tĂ« descriptor-it tĂ« skedarit tĂ« lidhur me sistemin e skedarĂ«ve pĂ«r tĂ« cilin aplikohet kuota.
- Nga bërthama janë hequr drejtuesit e vjetër për pajisjet bllok me ndërfaqen IDE, të cilët janë zëvendësuar prej kohësh me nën-sistemin libata.
- Nga bërthama është hequr drejtuesi 'raw', që ofron akses të papërpunuar në pajisjet bllokuese përmes ndërfaqes /dev/raw. Funksionaliteti i cituar është zbatuar prej kohësh në aplikacione me ndihmën e flagut O_DIRECT.
- Kujtesa dhe shërbimet sistemore
- NĂ« planifikuesin e detyrave Ă«shtĂ« implementuar njĂ« modalitet i ri planifikimi SCHED_CORE, qĂ« lejon menaxhimin e proceseve qĂ« mund tĂ« ekzekutohen sĂ« bashku nĂ« njĂ« bĂ«rthamĂ« CPU. Ădo proces mund t'i caktohet njĂ« identifikues cookie, qĂ« pĂ«rcakton fushĂ«n e besueshmĂ«risĂ« mes proceseve (pĂ«r shembull, pĂ«rkatĂ«sia ndaj njĂ« pĂ«rdoruesi ose kontenieri). GjatĂ« organizimit tĂ« ekzekutimit tĂ« kodit, planifikuesi mund tĂ« sigurojĂ« ndarjen e njĂ« bĂ«rthame CPU vetĂ«m pĂ«r proceset qĂ« lidhen me njĂ« pronar tĂ« njĂ«jtĂ«, 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 besuese dhe tĂ« pa besueshme.
- Për cgroup është realizuar mbështetje për operacionin kill, që lejon përfundimin e të gjithë proceseve të lidhura me grupin (duke dërguar SIGKILL), përmes shkruan '1' në skedarin virtual cgroup.kill.
- Janë zgjeruar mundësitë që lidhen me reagimin ndaj zbuluarjes së bllokimeve të ndara ('split lock'), që ndodhin kur aksesohet të dhëna të paallokuara në memorie për shkak se gjatë ekzekutimit të një urdhri atomik të dhënat kalojnë dy linja cache të CPU-së. Këto bllokime shkaktojnë një rënie të konsiderueshme të performancës, prandaj më parë është ofruar mundësia e përfundimit të detyrës që shkaktonte bllokimin. Në lëshimin e ri është shtuar një parametër i komandës së bërthamës 'split_lock_detect=ratelimit:N', që lejon përcaktimin e kufirit të intensitetit të operacioneve të bllokimit në sekondë, 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Ă« kontrolluesin e cgroup-it pĂ«r kapacitetin CFS (CFS bandwidth controller), i cili pĂ«rcakton se sa shumĂ« kohĂ« procesori mund tâi jepet çdo cgroup, Ă«shtĂ« realizuar mundĂ«sia e pĂ«rcaktimit tĂ« kufijve tĂ« kufizuar nga njĂ« periudhĂ« e caktuar, qĂ« 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'i japĂ« mundĂ«sinĂ« grupit tĂ« proceseve tĂ« shpenzojnĂ« 50ms kohĂ« CPU çdo 100ms.
- ĂshtĂ« shtuar infrastruktura fillestare pĂ«r krijimin e ngarkuesve tĂ« programeve BPF, e cila mĂ« pas do tĂ« lejojĂ« ngarkimin e vetĂ« programeve BPF qĂ« janĂ« nĂ«nshkruar me njĂ« çelĂ«s digjital tĂ« besueshĂ«m.
- ĂshtĂ« shtuar njĂ« operacion i ri futex FUTEX_LOCK_PI2, i cili pĂ«rdor njĂ« kohĂ«matĂ«s monotoni pĂ«r tĂ« llogaritur skadon, duke marrĂ« parasysh kohĂ«n e kaluar nga sistemi nĂ« gjumĂ«.
- Për arkitekturën RISC-V është realizuar mbështetje për faqe të mëdha të memories (Transparent Huge-Pages) dhe mundësia e aplikimit të mekanizmit KFENCE për zbulimin e gabimeve gjatë punës me memorie.
- Në thirrjen sistemore madvise(), janë shtuar flamujt MADV_POPULATE_READ dhe MADV_POPULATE_WRITE për të gjeneruar «page fault» për të gjitha faqet e memories, të pasqyruara për operacione leximi ose shkruajti, pa e kryer realizimin e vërtetë të leximit ose shkruajti (prefault). Përdorimi i flamujve mund të jetë i dobishëm për të ulur vonesat gjatë funksionimit të programit, përmes ekzekutimit paraprak të trajtuesit të «page fault» për të gjitha faqet jo të alokuara, pa pritur të bëhet thirrja reale për to.
- Në sistemin e testimit të njësive kunit është shtuar mbështetje për ekzekutimin e testeve në mjedisin QEMU.
- Shtohen ndjekës të rinj: «osnoise» për të gjurmuar vonesat në aplikacione për shkak të përpunimit të ndërprerjeve, dhe «timerlat» për të dhënë informacion të detajuar mbi vonesat gjatë zgjohet nga sinjalet e orës.
- Virtualizimi dhe siguria
- ĂshtĂ« shtuar thirrja sistemike memfd_secret(), e cila lejon krijimin e njĂ« zone private tĂ« Memories nĂ« njĂ« hapĂ«sirĂ« tĂ« adresave tĂ« izoluar, e dukshme vetĂ«m pĂ«r procesin pronar, qĂ« nuk reflektohet nĂ« proceset e tjera dhe qĂ« nuk Ă«shtĂ« e qasshme drejtpĂ«rdrejt nga bĂ«rthama.
- Në sistemin e filtrimit të thirrjeve sistemike seccomp, kur kalojnë trajtuesit e bllokimit në hapësirën e përdoruesit, është ofruar mundësia e përdorimit të një operacioni të vetëm atomik për të krijuar një deshkriptor skedari për detyrën e izoluar dhe për ta kthyer atë gjatë përpunimit të thirrjes sistemike. Operacioni i propozuar zgjidh problemin e ndërprerjes së trajtuesit në hapësirën e përdoruesit kur mbërrin një sinjal.
- Shtohet një mekanizëm i ri për menaxhimin e kufizimeve të burimeve në hapësirën e identifikuesve të përdoruesve, i cili lidhet me numra të veçantë rlimit me përdoruesin në «user namespace». Ky ndryshim zgjidh problemin me përdorimin e numrave të përbashkët të burimeve gjatë ekzekutimit të proceseve nga një përdorues në konteinerë të ndryshëm.
- Në hipervizor KVM për sistemet ARM64 është shtuar mundësia e përdorimit në sistemet mysafir zgjatjen MTE (MemTag, Memory Tagging Extension), e cila lejon lidhjen e etiketimeve me çdo operacion që arrin kujtesën dhe organizon kontrollin e saktësisë së përdorimit të treguesve për të bllokuar shfrytëzimin e dobësive, të shkaktuara nga aksesimi i blloqeve të kujtesës që janë liruar tashmë, mbipjesët e buffers, qasjet para inicializimit dhe përdorimi jashtë kontekstit aktual.
- Mjetet për autentikimin e treguesve (Pointer Authentication) që ofron platforma ARM64 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ë verifikuar adresat e kthimit duke përdorur nënshkrime digjitale, të cilat ruhen në bitat e papërdorur të vetë treguesit.
- Në User-mode Linux është shtuar mbështetje për përdorimin e drivereve për pajisjet PCI me shpinë virtuale PCI, e cila zbatohet nga drivere PCI-over-virtio.
- Për sistemet x86 është shtuar mbështetje për pajisjen e paravirtualizuar virtio-iommu, e cila lejon dërgimin e kërkesave IOMMU, si ATTACH, DETACH, MAP dhe UNMAP, mbi transportin virtio pa emulimin e tabelave të kujtesës.
- Për CPU-të Intel, duke filluar nga familja Skylake deri te Coffee Lake, është çaktivizuar në mënyrë të parazgjedhur përdorimi i zgjatjeve Intel TSX (Transactional Synchronization Extensions), të cilat ofrojnë mjete për të përmirësuar performancën e aplikacioneve shumëpalëshe duke përjashtuar dinamikisht operacionet e tepërta të sinkronizimit. Zgjatjet janë çaktivizuar për shkak të mundësisë së kryerjes së sulmeve Zombieload, që manipulojnë rrjedhjen e informacionit përmes kanaleve të jashtme, që ndodhin gjatë përdorimit të mekanizmit të ndërprerjes asinkrone të operacioneve (TAA, TSX Asynchronous Abort).
- Sistemi i rrjetit
- Integration into the MPTCP (MultiPath TCP) kernel has continued, extending the TCP protocol to allow TCP connection operation with packet delivery simultaneously across multiple routes via different network interfaces. adresat IP. Në lëshimin e ri është shtuar mekanizmi për të vendosur politika të personalizuara për hashimin e trafikut për IPv4 dhe IPv6 (politika e hash-it multipath), që ofron mundësinë nga hapësira e përdoruesit të përcaktojë se cilat nga fushat në paketat, 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 është shtuar mbështetje për soketët SOCK_SEQPACKET (transmetim të porositur dhe të sigurt të datagramëve).
- Janë zgjeruar mundësitë e mekanizmit të soketeve SO_REUSEPORT, i cili lejon disa sokete që të dëgjojnë dhe të lidhen me një port të vetëm për të pranuar lidhjet, duke shpërndarë kërkesat e hyrjes njëkohësisht midis të gjitha soketeve të lidhura përmes SO_REUSEPORT, gjë që e bën më të lehtë krijimin e aplikacioneve server të shumëfletë. Në versionin e ri janë shtuar mjete për të transferuar kontrollin te një soket tjetër në rast dështimi të përpunimit të një kërkese nga soketi fillestar i zgjedhur (zgjidh problemin e humbjes së lidhjeve të veçanta gjatë rinisjes së shërbimeve).
- Pajisjet
- NĂ« drejtuesin amdgpu Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r seri tĂ« reja GPU AMD Radeon RX 6000, tĂ« zhvilluara me emrat kodor «Beige Goby» (Navi 24) dhe «Yellow Carp», si dhe Ă«shtĂ« pĂ«rmirĂ«suar mbĂ«shtetje pĂ«r GPU Aldebaran (gfx90a) dhe APU Van Gogh. Ka shtuar mundĂ«sinĂ« e funksionimit njĂ«kohĂ«sisht me disa panelĂ« eDP. PĂ«r APU Renoir Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r punĂ« me buffer tĂ« kriptuar nĂ« memorje video (TMZ, Trusted Memory Zone). ĂshtĂ« 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 memorinë virtuale të ndarë (SVM, shared virtual memory) mbi bazën e nën-sistemit HMM (Menaxhimi i memories heterogjene), duke lejuar përdorimin e pajisjeve me blloqe të tyre të menaxhimit të memories (MMU, memory management unit), të cilat mund të kenë akses në memorien kryesore. Po ashtu me ndihmën e HMM mund të organizohet një hapësirë adresimi e përbashkët midis GPU dhe CPU, në të cilën GPU mund të ketë akses në memorien kryesore të procesit.
- ĂshtĂ« shtuar mbĂ«shtetje fillestare pĂ«r teknologjinĂ« AMD Smart Shift, e cila ndryshon dinamik parametrat e konsumi tĂ« energjisĂ« pĂ«r CPU dhe GPU nĂ« laptopĂ«t me çip dhe kartĂ« grafike AMD pĂ«r tĂ« forcimin e performancĂ«s gjatĂ« lojĂ«rave, redaktimit tĂ« videove dhe renditjes 3D.
- 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 adapterin virtual grafik Hyper-V.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kompjuterin e njĂ«si kombinuar Raspberry Pi 400.
- ĂshtĂ« shtuar drejtuesi dell-wmi-privacy pĂ«r mbĂ«shtetje tĂ« kalimtarĂ«ve tĂ« harduerit pĂ«r çelĂ«sat e kamerĂ«s dhe mikrofonit tĂ« ofruar nĂ« laptopĂ«t Dell.
- Për laptopët Lenovo është shtuar ndërfaqja WMI për ndryshimin e parametrave të BIOS përmes sysfs /sys/class/firmware-attributes/.
- Zgjerimi i mbështetjes për pajisjet me ndërfaqen USB4.
- 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ë në laptopët HP dhe ASUS. Shtuar patches për të reduktuar vonesat para fillimit të ritransmetimit të zërit në pajisjet me ndërfaqen USB.
Burimi: opennet.ru
