Pas dy muajsh zhvillimi Linus Torvalds prezentoi lëshimi i bërthamës Linux 5.14. Ndër ndryshimet më të dukshme janë: thirrjet e reja të sistemit quotactl_fd() dhe memfd_secret(), heqja e të dhënave ide dhe raw, një kontrollor i ri i përparësisë së hyrjes/daljes për cgroup, moda e planifikimit të detyrave SCHED_CORE, infrastruktura për krijimin e ndëshkuesve të verifikuar të një BPF programi.
Në versionin e ri janë pranuar 15883 korrigjime nga 2002 zhvillues, madhësia e patch-it është 69 MB (ndryshimet preku 12580 skedarë, u shtuan 861501 rreshta kodi, u fshin 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 të veçantë për arkitekturat harduerike, 13% lidhen me stekët rrjetësore, 3% me sistemet e skedarëve dhe 3% me nën-sistemat e brendshme të bërthamës.
- nën-sistemi i diskut, hyrja/dalja dhe sistemet e skedarëve:
- pĂ«r cgroup i realizuar kontrollori i ri i pĂ«rparĂ«sisĂ« sĂ« hyrjes/daljes â rq-qos, i cili mund tĂ« menaxhojĂ« pĂ«rparĂ«sinĂ« e pĂ«rpunimit tĂ« kĂ«rkesave pĂ«r pajisje bllokuese, tĂ« gjeneruara nga pjesĂ«marrĂ«sit e çdo cgroup. MbĂ«shtetje pĂ«r kontrollorin e ri tĂ« pĂ«rparĂ«sisĂ« Ă«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 forcon ruajtjen në disk të të gjitha transaksioneve të pritura nga regjistri dhe tamponët e tyre, si dhe ri-shkruan zonën e përdorur nga regjistri në magazinë. Ky ndryshim është përgatitur në kuadër të iniciativës për të parandaluar rrjedhjet e informacionit nga sistemet e skedarëve;
- në Btrfs janë bërë optimizations e performancës: përmes përjashtimit të regjistrimit të panevojshëm të atributeve të zgjeruara gjatë ekzekutimit të fsync, performanca e operacioneve intensive me atribute të zgjeruara u rrit deri në 17%. Për më tepër, gjatë ekzekutimit të operacioneve të shkurtimeve, të cilat nuk prekin ekstentet, është çaktivizuar ekzekutimi i sinkronizimit të plotë, e cila zvogëloi kohën e ekzekutimit të operacionit me 12%. Në sysfs është shtuar një cilësim për kufizimin e kapacitetit të hyrjes/daljes gjatë kontrollimit të FS-së. Shtuar thirrjet ioctl për anulimin e operacioneve të ndryshimit të madhësisë dhe largimit të pajisjeve;
- në XFS përmirësuar implementimi i caches buffers, i cili është transferuar në alokimin e faqeve të memories në mënyrë paketore. Rritja e efikasitetit të punës së caches;
- në F2FS është shtuar një opsion për të punuar në modin e vetëm për lexim dhe është implementuar një mod i caching për blloqet e kompresuara (compress_cache) për të përmirësuar performancën e leximit të rastësishëm. E ka zbatuar mbështetje për kompresimin e skedarëve, të reflektuar në memorie përmes operacionit mmap(). Për çaktivizimin selektiv të kompresimit të skedarëve sipas maskës është propozuar një opsion i ri i montimit nocompress;
- në drejtuesin exFAT është punuar për përmirësimin e përputhshmërisë me magazinat e disa kamerave digjitale;
- është shtuar një thirrje sistemike quotactl_fd(), e cila lejon menaxhimin e kuotave jo përmes një skedari të pajisjes së veçantë, por përmes tregimit të një deshifruesi të skedarit, 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 ndërfaqen IDE, të cilat që në të vërtetë janë zëvendësuar nga nën-sistemi libata. Mbështetja për pajisjet e vjetra është ruajtur në mënyrë të plotë, ndryshimet prekin vetëm mundësinë e përdorimit të drejtorëve të vjetër, gjatë përdorimit të cilëve depozitat quheshin /dev/hd*, dhe jo /dev/sd*;
- nga bërthama është hequr drejtuesi "raw", i cili ofron qasje të pa-buferizuar në pajisjet bllokuese përmes ndërfaqes /dev/raw. Kjo funksionalitet ka qenë për një kohë të gjatë i zbatuar në aplikacione përmes flags O_DIRECT;
- memoria dhe shërbimet sistemike:
- nĂ« planifikuesin e detyrave Ă«shtĂ« implementuar njĂ« mod i ri i planifikimit SCHED_CORE, i cili lejon menaxhimin e proceseve qĂ« mund tĂ« ekzekutohen sĂ« bashku nĂ« njĂ« bĂ«rthamĂ« CPU. Ădo procesi i mund t'i jepet njĂ« identifikues cookie, i cili pĂ«rcakton fushĂ«n e besimit midis proceseve (p.sh. pĂ«rkatĂ«sia ndaj njĂ« pĂ«rdoruesi ose kontenieri). NĂ« organizimin e ekzekutimit tĂ« kodit, planifikuesi mund tĂ« sigurojĂ« ndarjen e njĂ« bĂ«rthame CPU vetĂ«m pĂ«r proceset e lidhura me njĂ« pronar, 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 besnike dhe tĂ« besueshme;
- për mekanizmin cgroup është implementuar mbështetje për operacionin kill, i cili lejon përfundimin njëherësh të të gjitha proceseve të lidhura me grupin (dërgimin e SIGKILL), përmes shkrimit "1" në skedarin virtual cgroup.kill;
- është zgjeruar funksionaliteti i reagimit ndaj zbulimit të bllokimeve të ndara ("split lock"), që ndodhin kur aksesohet të dhëna të paqartësuara në memorie për shkak se gjatë ekzekutimit të një instruksioni atomik të dhënat kalojnë dy linjat e caches CPU. Këto bllokime rezultojnë në një rënie të konsiderueshme të performancës, prandaj më parë ishin dhënë mundësitë për të përfunduar me forcë aplikacionin që shkaktonte bllokimin. Në versionin e ri është shtuar parametri i linjës së komandës së bërthamës "split_lock_detect=ratelimit:N", që lejon përcaktimin e limitit të përgjithshëm të intensitetit të operacioneve të bllokimit në sekondë, pasi kalon këtë, çdo proces që bëhet burim i një bllokimi të ndarë do të ndalojë me forcë për 20 ms në vend që të përfundojë.
- në kontrollorin e grupit të burimeve CFS (CFS bandwidth controller), i cili përcakton sa shumë kohë procesori mund të jepet çdo cgroup, është implementuar mundësia për të përcaktuar kufizime të kufizuara me kohë të caktuar, që lejon rregullimin më të mirë të ngarkesave që janë 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ë grupit të proceseve mundësinë që çdo 100ms të shpenzojë 50ms kohë të CPU-së.
- shtuar infrastruktura fillestare për krijimin e ngarkuesve të programeve BPF, e cila më pas do të mundësojë ngarkimin vetëm të programeve BPF të nënshkruara me një çelës digjital të besueshëm.
- është shtuar operacioni i ri futex FUTEX_LOCK_PI2, që përdor një timer monoton për të llogaritur timeout-in, që merr parasysh kohën e kaluar nga sistemi në gjendje pritjeje.
- për arkitekturën RISC-V është implementuar mbështetje për faqe të mëdha të memories (Transparent Huge-Pages) dhe mundësia e aplikimit të mekanizmit KFENCE për identifikimin e gabimeve gjatë punës me memorie.
- në thirrjen sistemore madvise(), që ofron mjete për optimizimin e menaxhimit të memories së procesit, shtuar flagjet MADV_POPULATE_READ dhe MADV_POPULATE_WRITE për të gjeneruar "page fault" në të gjitha faqet e memories, që janë reflektuar për operacionet e leximit ose shkruajtjes, pa e bërë faktikisht leximin ose shkruan (prefault). Përdorimi i flagjeve mund të jetë i dobishëm për të reduktuar vonesat gjatë funksionimit të programit, falë ekzekutimit të parashikuar të trajtuesit "page fault" njëherësh për të gjitha faqet e pa alokuara, pa nxitur faktikisht referimin e tyre.
- në sistemin e testimit të njësive kunit shtuar është mbështetur ekzekutimi i testeve në një mjedis QEMU.
- janë shtuar gjurmues të rinj: "osnoise" për të ndjekur vonesat në aplikacione, të shkaktuara nga përpunimi i ndërprerjeve, dhe "timerlat" për të ofruar informacion të detajuar mbi vonesat gjatë zgjedhjeve nga sinjali i timer-it.
- virtualizimi dhe siguria:
- u shtua thirrje sistemike memfd_secret(), duke lejuar krijimin e një zone private të memories në një hapësirë të izoluar adresash, të dukshme vetëm për procesin-pronar, që nuk reflektohet në procese të tjera dhe është e pasaksishme për bërthamën.
- në sistemin e filtrimit të thirrjeve sistemore seccomp, gjatë nxjerrjes së trajtuesve të bllokimit në hapësirën e përdoruesit, është ofruar mundësia për përdorimin e një operacioni atomik për krijimin e një deshifruesi skedarësh për detyrat e izoluar dhe për ta kthyer atë gjatë përpunimit të thirrjes sistemore. Operacioni i propozuar zgjidh problemin me ndërprerjen e trajtuesit në hapësirën e përdoruesit gjatë ardhjes së sinjalit;
- u shtua një mekanizëm të ri për menaxhimin e kufizimit të burimeve në hapësirën e identifikatorëve të përdoruesve, i cili lidhet me numërues të veçantë rlimit për 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ë hipervizorin KVM për sistemet ARM64 është shtuar mundësia e përdorimit në sisteme mikpritës zgjerimi MTE (MemTag, Memory Tagging Extension), që lejon pajisjen e etiketave me çdo operacion të alokimit të memories dhe të organizojë verifikimin e përdorimit të saktë të treguesve për të bllokuar shfrytëzimin e dobësive, të shkaktuara nga referimet në blloqe memories të lira, tejkalimi i tamponëve, referimi para inizializimit dhe përdorimi jashtë kontekstit aktual;
- mjetet e ofruara nga platforma ARM64 për autentifikimin e treguesve (Pointer Authentication) 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 verifikimin e adresave të kthimit përmes nënshkrimeve digjitale, të cilat ruhen në bitat e papërdorura më të larta të vetë treguesit.
- në User-mode Linux shtuar mbështetje për përdorimin e drejtuesve për pajisjet PCI me autobusin virtual PCI, të implementuar nga drejtuesi PCI-over-virtio.
- Për sistemet x86 është shtuar mbështetje për pajisjen paravirualizuese virtio-iommu, e cila lejon dërgimin e kërkesave IOMMU, si ATTACH, DETACH, MAP dhe UNMAP, mbi transportin virtio pa imitim të tabelave të faqeve të memories;
- Për CPU Intel, duke filluar nga familja Skylake dhe duke përfunduar në Coffee Lake, përdorimi i zgjerimeve Intel TSX (Transactional Synchronization Extensions) është çaktivizuar si standard, duke ofruar mjete për përmirësimin e performancës së aplikacioneve shumëkaresore përmes ndalimit dinamik të operacioneve të panevojshme të sinkronizimit. Zgjerimet janë çaktivizuar për shkak të mundësisë së kryerjes së sulmeve Zombieload, që manipulojnë rrjedhjen e informacionit përmes kanaleve të jashtme, duke ndodhur gjatë funksionimit të mekanizmit të ndërprerjes asinkrone të operacioneve (TAA, Të Nxehurat Asinkrone);
- sistemi rrjetë:
- intensifikuar integrimi në kernel të MPTCP (MultiPath TCP), zgjerimi i protokollit TCP për organizimin e funksionimit të lidhjes TCP me dorëzimin e paketave në të njëjtën kohë përmes disa rrugëve përmes ndërfaqeve të ndryshme rrjetë, të lidhura me adresa të ndryshme IP. Në këtë lëshim të ri u shtua mekanizmi për përcaktimin e politikave të hashit për transmetimin e trafikut për IPv4 dhe IPv6 (politika e hashit të shumëfishtë), e cila lejon që nga hapësira e përdoruesit të përcaktohet se cilat nga fushat në paketat, përfshirë ato të inkapsuluara, do të përdoren për llogaritjen e hashit, që përcakton zgjedhjen e rrugës për paketën;
- në transportin virtual virtio është shtuar mbështetje për soket SOCK_SEQPACKET (transmetim të organizuar dhe të sigurt të datagrameve);
- janë zgjeruar mundësitë e mekanizmit të soketeve SO_REUSEPORT, i cili lejon që disa sokete që dëgjojnë të lidhen menjëherë me një port për të pranuar lidhje me shpërndarjen e kërkesave të ardhshme në të njëjtën kohë përmes të gjithë soketëve të lidhur përmes SO_REUSEPORT, duke e bërë më të lehtë krijimin e aplikacioneve server të shumëkaresore. Në këtë version të ri shtuar ka mjete për të kaluar kontrollin te një soket tjetër në rast dështimi gjatë përpunimit të kërkesës nga soketi fillestar i zgjedhur (zgjidhet problemi i humbjes së lidhjeve të veçanta gjatë rinisjes së shërbimeve);
- pajisjet:
- nĂ« pajisjen amdgpu Ă«shtĂ« realizuar Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r seritĂ« e reja tĂ« GPU AMD Radeon RX 6000, tĂ« zhvilluar nĂ«n emra tĂ« koduar "Beige Goby" (Navi 24) dhe "Yellow Carp", si dhe Ă«shtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r GPU Aldebaran (gfx90a) dhe APU Van Gogh. ĂshtĂ« shtuar mundĂ«sia e funksionimit tĂ« pĂ«rbashkĂ«t me disa panele eDP. PĂ«r APU Renoir Ă«shtĂ« realizuar mbĂ«shtetja pĂ«r funksionimin me memorie tĂ« kriptuar nĂ« video (TMZ, Zona e Memories tĂ« Besuar). ĂshtĂ« shtuar mbĂ«shtetja pĂ«r nxjerrjen e nxehtĂ« tĂ« kartave grafike (hot-unplug). PĂ«r GPU Radeon RX 6000 (Navi 2x) dhe GPU tĂ« vjetra AMD Ă«shtĂ« aktivizuar si standard mbĂ«shtetja pĂ«r mekanizmin e menaxhimit tĂ« energjisĂ« ASPM (Menaxhimi i EnergjisĂ« nĂ« Gjendjen Aktiv), i cili mĂ« parĂ« ishte aktivizuar vetĂ«m pĂ«r GPU Navi 1x, Vega dhe Polaris;
- për çipet AMD është shtuar mbështetje për memorien virtuale të ndarë (SVM, shared virtual memory) mbi bazën e nënstrukturës HMM (Menaxhimi i Memories Heterogjene), e cila lejon përdorimin e pajisjeve me blloqe të veta të menaxhimit të memories (MMU, njësia e menaxhimit të memories), të cilat mund të kenë qasje në memorien kryesore. Në këtë mënyrë, përmes HMM mund të krijohet një hapësirë e përbashkët adresimi mes GPU dhe CPU, ku GPU mund të ketë qasje në memorien kryesore të procesit;
- është shtuar mbështetje fillestare për teknologjinë AMD Smart Shift, e cila ndryshon dinamikisht parametrat e konsumit të energjisë së CPU dhe GPU në laptopët me çipset dhe kartën grafike AMD për forcimin e performancës gjatë lojërave, redaktimit të videove dhe renderimit 3D;
- në driverin i915 për kartat grafike Intel u përfshi është shtuar mbështetje për çipet Intel Alderlake P;
- është shtuar driveri drm/hyperv për adaptorin grafik virtual Hyper-V;
- u shtua driveri grafik simpledrm, i cili përdor për daljen frame buffer EFI-GOP ose VESA, e cila ofrohet nga firmware ose BIOS UEFI. Qëllimi kryesor i driverit është të ofrojë mundësinë e daljes grafike në fazat fillestare të ngarkimit, derisa të bëhet e mundur përdorimi i një driveri të plotë DRM. Driveri gjithashtu mund të përdoret si një zgjidhje të përkohshme për pajisjet për të cilat deri tani nuk ka drivera të thjeshtë DRM;
- shtuar mbështetje për kompjuterin gjithë në një Raspberry Pi 400;
- është shtuar driveri dell-wmi-privacy për mbështetje të ndërruesve të kamerës dhe mikrofonit të pajisur në laptopët Dell;
- për laptopët Lenovo u shtua ndërfaqja WMI për ndryshimin e parametrave të BIOS nëpërmjet sysfs /sys/class/firmware-attributes/;
- është zgjeruar mbështetje për pajisje me ndërfaqen USB4;
- shtuar mbĂ«shtetje pĂ«r kartat zanore dhe kodekĂ«t AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 dhe Texas Instruments TAS2505. ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r zĂ« nĂ« laptopĂ«t HP dhe ASUS. Shtuar patchesh pĂ«r uljen e vonesave para fillimit tĂ« riprodhimit tĂ« zĂ«rit nĂ« pajisjet me ndĂ«rfaqen USB.
Burimi â opennet.ru.
Burimi: linux.org.ru
