Pas dy muajsh zhvillimi Linus Torvalds lëshimi i bërthamës . Disa ndër ndryshimet më të dukshme: mbështetje për GPU AMD Navi, procesorët Zhaoxi dhe teknologjinë e menaxhimit të energjisë Intel Speed Select, mundësia e përdorimit të instrukcioneve umwait për të pritur pa përdorur cikle,
njĂ« mod tĂ« rritur interaktivitetin âutilization clampingâ pĂ«r CPU asimetrikĂ«, thirrja sistemike pidfd_open, mundĂ«sia e pĂ«rdorimit tĂ« adresave IPv4 nga subneti 0.0.0.0/8, mundĂ«sia e akselerimit harduerik tĂ« nftables, mbĂ«shtetje HDR nĂ« nĂ«n-sistemin DRM, integrimi i hipervizorit ACRN.
NĂ« linja e re e Linus kujtoi tĂ« gjithĂ« zhvilluesit pĂ«r rregullin kryesor tĂ« zhvillimit tĂ« bĂ«rthamĂ«s â ruajtjen e pabĂ«rjes sĂ« sjelljes pĂ«r komponentĂ«t e hapĂ«sirĂ«s sĂ« pĂ«rdoruesit. Ndryshimet nĂ« bĂ«rthamĂ« nuk duhet tĂ« dĂ«mtojnĂ« nĂ« asnjĂ« mĂ«nyrĂ« aplikacionet qĂ« funksionojnĂ« tashmĂ« dhe tĂ« çojnĂ« nĂ« regresion nĂ« nivelin e pĂ«rdoruesit. MegjithatĂ«, shkelja e sjelljes mund tĂ« shkaktojĂ« jo vetĂ«m ndryshimin e ABI, heqjen e kodit tĂ« vjetĂ«ruar ose shfaqjen e gabimeve, por gjithashtu ndikim indirekt nĂ« pĂ«rmirĂ«sime tĂ« dobishme qĂ« funksionojnĂ« siç duhet. Si njĂ« shembull ilustues, ishte e dobishme nĂ« kodin Ext4, qĂ« redukton numrin e kĂ«rkesave pĂ«r ruajtĂ«se duke çaktivizuar parashikimin e leximit tĂ« tabelĂ«s inode pĂ«r kĂ«rkesa tĂ« vogla hyrjeje/daljeje.
Optimizimi ka bërë që për shkak të uljes së aktivitetit disk, entropia për gjeneratorin e numrave të rastësishëm getrandom() të akumulohet më ngadalë dhe në disa konfigurata, në rrethana të caktuara, mund të vërehen ngritje gjatë ngarkimit deri në plotësimin e pellgut të entropisë. Duke qenë se optimizimi është vërtet i dobishëm, ndër zhvilluesit ka pasur një diskutim, i cili propozoi që të zgjidhet problemi duke çaktivizuar modin bllokues të thirrjes getrandom() nga e para, me shtimin e një flagu opsional për të pritur entropinë, por një ndryshim i tillë do të ndikonte në cilësinë e numrave të rastësishëm në fazën fillestare të ngarkimit.
Versioni i ri pranoi 15794 rregullime nga 1974 zhvillues,
mënyra e patch-it është 92 Mb (ndryshimet preku 13986 skeduj, u shtuan 258419 rreshta kodi,
u fshin 599137 rreshta). Rreth 39% e të gjithë ndryshimeve të paraqitura në 5.3
ndryshimet lidhen me drejtuesit e pajisjeve, rreth 12% e ndryshimeve kanë
qasja ndaj përditësimeve të kodit specifike për arkitekturën harduerike, 11%
e lidhur me stack-un rrjet, 3% â sistemet e skedarĂ«ve dhe 3% me nĂ«n sistemet e brendshme
të bërthamës.
:
- Kujtesa dhe shërbimet sistemore
- PĂ«rmirĂ«simi i funksionalitetit âpidfdâ, qĂ« ndihmon nĂ« pĂ«rpunimin e situatave me ripĂ«rdorimin e PID (pidfd lidhĂ«t me njĂ« proces tĂ« veçantĂ« dhe nuk ndryshon, ndĂ«rsa PID mund tĂ« lidhet me njĂ« proces tjetĂ«r pas pĂ«rfundimit tĂ« procesit aktual tĂ« lidhur me kĂ«tĂ« PID). MĂ« parĂ«, nĂ« bĂ«rthamĂ« Ă«shtĂ« shtuar
thirrja sistemike pidfd_send_signal() dhe flagu CLONE_PIDFD në thirrjen clone(), që lejon marrjen e pidfd për t'u përdorur në pidfd_send_signal(). Gjatë përdorimit të thirrjes clone() me flagun CLONE_PIDFD, mund të ndodhnin probleme me menaxherët e shërbimeve ose sistemin e forcimit të përfundimit të proceseve kur kishte mungesë memoria në platformën Android. Në këtë rast, përdoret thirrja fork() ose clone() pa CLONE_PIDFD.Në bërthamën 5.3 është prezantuar thirrja sistemike , i lejon që të merrni një pidfd të verifikueshëm për një proces të ekzistueshëm të rastësishëm, i krijuar jo përmes thirrjes clone() me flagun CLONE_PIDFD. Gjithashtu është shtuar mbështetje për polling pidfd duke përdorur poll() dhe epoll(), që lejon menaxherët e proceseve të ndjekin përfundimet e proceseve të rastësishëm pa u frikësuar nga gjendja e garës në rast se një PID i ri i caktohet një procesi të ri. Mekanizmi i njoftimit për përfundimin e një procesi të lidhur me pidfd është i ngjashëm me njoftimin për përfundimin e procesit të tij fëmijë;
- Në planifikuesin e detyrave është shtuar mbështetje për mekanizmin e qepjes së ngarkesës (), e cila lejon përdorimin e intervaleve të frekuencave minimale ose maksimale, në varësi të detyrave aktive në CPU. Mekanizmi i paraqitur përshpejton detyrat që ndikojnë drejtpërdrejt në cilësinë e ndërveprimit me përdoruesin, duke nisur këto detyra të paktën në kufirin e poshtëm të 'frekuencës së kërkuar'. Detyrat me përprioritet të ulët, që nuk ndodhin në punën e përdoruesit, nisi nëpërmjet kufirit të sipërm të 'frekuencës së lejuar'. Kufijtë përcaktohen përmes atribudeve sched_uclamp_util_min dhe sched_uclamp_util_max në thirrjen sistemore sched_setattr().
- Shtuar mbështetje për teknologjinë e menaxhimit të konsumit të energjisë , e cila është e disponueshme në disa servera me procesorë Intel Xeon. Kjo teknologji lejon vendosjen e konfigurimeve të performancës dhe kapaciteteve për sekçione të ndryshme të CPU, duke e bërë më prioritare performancën për detyrat që ekzekutohen në bërthama të caktuara, duke sakrifikuar performancën në bërthama të tjera;
- Proceseve në hapësirën e përdoruesit mundësia për të pritur për një kohë të shkurtër pa përdorur cikle me instrukcionin umwait. Ky instrukcion, së bashku me instrukcionet umonitor dhe tpause, do të ofrohet në procesorët që do të lëshohen nga Intel "Tremont" dhe do të lejojë implementimin e vonesave që janë efikase për energjinë dhe nuk ndikojnë në performancën e proceseve të tjera gjatë përdorimit të Hyper Threading;
- Për arkitekturën RISC-V është shtuar mbështetje për faqe të mëdha memorjeje (huge pages);
- NĂ« mekanizmin e gjurmimit âkprobesâ Ă«shtĂ« shtuar mundĂ«sia pĂ«r tĂ« dereferencuar treguesit e bĂ«rthamĂ«s nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, e cila mund tĂ« pĂ«rdoret, pĂ«r shembull, pĂ«r vlerĂ«simin e pĂ«rmbajtjes sĂ« strukturave qĂ« kalohen nĂ« thirrjet sistemike. ĂshtĂ« shtuar gjithashtu mundĂ«sia pĂ«r vendosjen e kontrollove nĂ« fazĂ«n e ngarkimit.
- Në skedarin e konfigurimit është shtuar opsioni PREEMPT_RT për punë në modin e vërtetë të kohës. Kodi për mbështetje të modit të vërtetë të kohës ende nuk është shtuar në bërthamë, por shfaqja e opsionit është një shenjë e mirë se saga shumëvjeçare për patch-es Realtime-Preempt po afron në përfundim;
- Shtuar thirrja sistemike clone3() me implementimin e një varianti më të zgjeruar të ndërfaqes clone(), që lejon specifikimin e numrit më të madh të flagjeve;
- Shtuar menaxheri bpf_send_signal(), që lejon programeve BPF të dërgojnë sinjale në procese të rastësishme;
- Për ngjarjet perf në mjedisin e hipervizorit KVM, është shtuar një mekanizëm i ri filtrimi ngjarjesh, që lejon administratorin të përcaktojë llojet e ngjarjeve, të lejuara ose të ndaluara për monitorim në anën e sistemit mysafir;
- Në mekanizmin e verifikimit të aplikacioneve eBPF është shtuar mundësia për të trajtuar programe me cikle, nëse ekzekutimi i ciklit është i kufizuar dhe nuk mund të çojë në tejkalimin e limitit të numrit maksimal të instrukcioneve;
- PĂ«rmirĂ«simi i funksionalitetit âpidfdâ, qĂ« ndihmon nĂ« pĂ«rpunimin e situatave me ripĂ«rdorimin e PID (pidfd lidhĂ«t me njĂ« proces tĂ« veçantĂ« dhe nuk ndryshon, ndĂ«rsa PID mund tĂ« lidhet me njĂ« proces tjetĂ«r pas pĂ«rfundimit tĂ« procesit aktual tĂ« lidhur me kĂ«tĂ« PID). MĂ« parĂ«, nĂ« bĂ«rthamĂ« Ă«shtĂ« shtuar
- Sistemi i diskut, hyrja/ dalje dhe sistemet e skedarëve
- Për sistemin e skedarëve XFS është realizuar mundësia e kalimit në mënyrë multithjeshtore të inode-ve (p.sh., gjatë kontrollit të kuotave). Shtuar ioctl të reja BULKSTAT dhe INUMBERS, që ofrojnë akses në mundësitë e reja që janë shfaqur në edicionin e pestë të formatit F.S., si koha e lindjes së inode-ve dhe mundësia e specifikimit të parametrave BULKSTAT dhe INUMBERS për çdo grup AG (Grupet e Alokimit);
- Në Ext4 hapësira të zbrazëta në katalogë (blloqe të pavarura).
flamuri «i» (i pandryshshëm) për skedarët e hapur (ndalimi i shkrimit në situatën nëse flamuri ishte vendosur në momentin kur skedari ishte tashmë i hapur); - Në Btrfs është siguruar përcaktimi i implementimit të shpejtë të crc32c në të gjitha arkitekturët;
- NĂ« CIFS Ă«shtĂ« hequr shenja e zhvillimit eksperimental nga kodi pĂ«r mbĂ«shtetje smbdirect. NĂ« SMB3 Ă«shtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« algoritmeve kriptografikĂ« nĂ« modin GCM. ĂshtĂ« shtuar njĂ«ra mundĂ«si e re pĂ«r montimin qĂ« nxjerr parametra mode nga shĂ«nimet ACE (ShĂ«nimi i Kontrollit tĂ« Hyrjes). Performanca e thirrjes open() Ă«shtĂ« optimizuar;
- NĂ« F2FS Ă«shtĂ« shtuar njĂ« opsion pĂ«r kufizimin e mbledhĂ«sit tĂ« plehrave gjatĂ« funksionimit nĂ« modin checkpoint=disable. ĂshtĂ« shtuar ioctl pĂ«r pĂ«rjashtimin e intervaleve tĂ« bllokut nga F2FS, qĂ« lejon implementimin e pĂ«rshtatjes sĂ« madhĂ«sisĂ« sĂ« seksionit nĂ« flutur. ĂshtĂ« shtuar mundĂ«sia e vendosjes sĂ« njĂ« skedari swap nĂ« F2FS me siguri tĂ« dhĂ«nash tĂ« drejtpĂ«rdrejta. PĂ«r tĂ« gjithĂ« pĂ«rdoruesit Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r ngulitjen e skedarit dhe ndarjen e blloqeve pĂ«r skedarĂ« tĂ« tillĂ«;
- Në ndërfaqen për futje/ndërgjegje asinkrone io_uring është shtuar mbështetje për operacione asinkrone sendmsg() dhe recvmsg();
- Sistemi i skedarëve UBIFS tani mbështet kompresimin duke përdorur algoritmin zstd dhe mundësinë e verifikimit të imazheve të nënshkruara të sistemit të skedarëve;
- Në sistemin e skedarëve Ceph është shtuar mbështetje për etiketat e sigurisë SELinux për skedarët;
- Për NFSv4 është implementuar një opsion i ri montimi "nconnect=", që përcakton numrin e lidhjeve të hapura me serverin. Trafiku midis këtyre lidhjeve do të shpërndahet duke përdorur balancimin e ngarkesës. Për më tepër, serveri NFSv4 tani krijon një katalog /proc/fs/nfsd/clients me informacione mbi klientët aktualë, duke përfshirë detaje mbi skedarët e hapur prej tyre;
- Virtualizimi dhe siguria
- Në bërthamë është përfshirë një hipervizor për pajisjet e integruara , i shkruar me vëmendje për gatishmërinë për të realizuar detyra në kohë reale dhe përshtatshmërinë për përdorim në sisteme kritikë. ACRN siguron shpenzime minimale, garanton vonesa të ulëta dhe përgjigje adekuate gjatë ndërveprimit me pajisjet. Mbështetet virtualizimi i burimeve CPU, hyrjes/daljes, nënstrukturës rrjetësore, operacioneve me grafikë dhe tinguj. ACRN mund të përdoret për të drejtuar disa makina virtuale të izoluar në blloqet elektronike të kontrollit, panelet e instrumenteve, sistemet informative automobilistike, pajisjet IoT të konsumatorëve dhe teknologji tjetër të integruar;
- Në Linux-in e përdoruesit vetë një mod i "udhëtimit në kohë", që lejon ngadalësimin ose përshpejtimin e kohës në ambientin virtual UML për të lehtësuar debugimin e kodit me lidhje me kohën. Për më tepër, është shtuar një parametr
time-travel-start, që lejon fillimin e orëve të sistemit nga një pikë e caktuar në formatin epoch; - Shtuar mundësi të reja për komandat e linjës së komandës në bërthamën "init_on_alloc" dhe "init_on_free", ku specifikimi i tyre aktivizon zerimin e zonave të alokuara dhe të çliruar të memories (mbushja me zero gjatë malloc dhe free), që rrit sigurinë përmes kostove të shtesë në inicializim;
- Shtuar një drejtues të ri me implementimin e një pajisjeje të paravirtualizuar që lejon dërgimin e kërkesave IOMMU, si ATTACH, DETACH, MAP dhe UNMAP, mbi transportin virtio pa simulimin e tabelave të faqeve të memories;
- Shtuar një drejtues të ri , duke paraqitur akses në pajisjet e ruajtjes që reflektohen në hapësirën adresuese fizike, si NVDIMM;
- Realizuar mundësia e lidhjes së çelësave kriptografikë me emrin e hapësirës personale ose rrjetit (çelësat bëhen të panjohur jashtë hapësirës së zgjedhur) dhe mbrojtjen e çelësave me ACL;
- Në nën-sistemin e kriptografisë supporti për një algoritëm shumë të shpejtë të heshimit jo-kriptografik , shpejtësia e të cilit është e limituar nga performanca e memories;
- Sistemi i rrjetit
- Përpunimi i adresave IPv4 në intervalin 0.0.0.0/8, i cili më parë nuk ishte në dispozicion për përdorim, është i siguruar. Kjo nënrrjet do të distribuimin e edhe 16 milion adresseve IPv4;
- Në Netfilter për nftables ka mbështetje për mekanizmat e acelerimit të harduerit për filtrimin e pacove përmes aplikimit të shtesës në drejtuesit . Tabela të plota rregullash me të gjitha zinxhirët mund të transferohen në anën e përshtatësve rrjetë. Aktivizimi bëhet nëpërmjet lidhjes së flagut NFT_TABLE_F_HW me tabelën. Mbështeten metadatat e thjeshta të protokolleve të nivelit 3 dhe 4, veprime pranimi/hedhje, përshtatje sipas IP dhe porteve rrjetë të dërguesit/pranuesit dhe tipit të protokollit;
- mbështetje e integruar për ndjekjen e lidhjeve për urat rrjetë, e cila nuk kërkon përdorimin e një shtrese emuluese br_netfilter;
- Në nf_tables ka mbështetje për modul nga SYNPROXY, i cili riprodhon funksionalitetin e ngjashëm nga iptables, dhe gjithashtu është realizuar mundësia e verifikimit në rregulla sipas opsioneve të veçanta në header-in IPv4;
- Shtuar mundësia për të lidhur programet BPF me thirrjet sistemike setsockopt() dhe getsockopt(), e cila, për shembull, lejon lidhjen e trajtuesve të aksesi për këto thirrje. Për më tepër, është shtuar një pikë thirrjeje (hook), e cila lejon organizimin e thirrjes së programit BPF një herë për çdo interval RTT (round-trip-time, koha e pingut);
- Për IPv4 dhe IPv6 mekanizmi i ri i ruajtjes së të dhënave ruter nexthop, i orientuar në rritjen e shkallëzueshmërisë së tabelave të ruterit. Testet e kryera treguan se me sistemin e ri, një grup me 743 mijë ruterash u ngarkua në bërthamë në vetëm 4.3 sekonda;
- Për Bluetooth funksionaliteti i nevojshëm për mbështetje LE ping;
- Pajisjet
- mbështetje për procesorët e kompanisë që janë të përputhshëm me x86 , të zhvilluara si rezultat i një projekti të përbashkët mes VIA Technologies dhe bashkisë së Shangait. Familja e CPU-ve ZX është ndërtuar mbi arkitekturën x86-64 Isaiah, e cila vazhdon zhvillimin e teknologjive ;
- Në sistemin DRM (Direct Rendering Manager), si dhe në grafikët e drejtpërdrejtë amdgpu dhe i915, është shtuar mbështetje për analizimin, përpunimin dhe dërgimin përmes portës HDMI të meta-datat HDR (gama dinamike e zgjeruar), që lejon përdorimin e paneleve dhe ekranëve HDR që mund të shfaqin gamat e shtuara të ndriçimit;
- Në grafikën amdgpu është shtuar mbështetje fillestare për GPU-në AMD NAVI (RX5700), e cila përfshin një grafikë bazë, kod për ndërveprimin me ekranet (DCN2), mbështetje për GFX dhe llogaritjet (GFX10);
SDMA 5 (System DMA0), mjete të kontrollit të energjisë dhe kodifikues/dekodifikues multimedia (VCN2). Në amdgpu gjithashtu është përmirësuar mbështetja për kartat e bazuara në GPU-në Vega12 dhe Vega20, për të cilat janë shtuar mundësi të reja për menaxhimin e memories dhe konsumit të energjisë; - Në grafikën amdkfd (për GPU të veçantë, si Fiji, Tonga, Polaris) është shtuar mbështetje për kartat e bazuara në GPU-në VegaM;
- NĂ« grafikĂ«n DRM pĂ«r kartat grafike Intel pĂ«r çipĂ«t Icelake, ka njĂ« mod tĂ« ri tĂ« shumĂ«-segmentimit tĂ« korrigjimit tĂ« gamĂ«s. ĂshtĂ« shtuar mundĂ«sia e daljes pĂ«rmes DisplayPort nĂ« formatin YCbCr4:2:0. JanĂ« shtuar firmuer tĂ« reja; pĂ«r SKL, BXT, KBL, GLK dhe ICL. ĂshtĂ« realizuar mundĂ«sia e fikjes sĂ« energjisĂ« sĂ« ekranit nĂ« mĂ«nyrĂ« tĂ« gjithanshme. mbĂ«shtetje pĂ«r ruajtjen dhe rikuperimin e kontekstit tĂ« renderimit pĂ«r çipat Ironlake (gen5) dhe gen4 (Broadwater â Cantiga), qĂ« lejon rikthimin e gjendjes sĂ« GPU-sĂ« nga hapĂ«sira e pĂ«rdoruesit kur kalon nga ekzekutimi i operacioneve tĂ« njĂ« serie nĂ« njĂ« tjetĂ«r;
- Në drejtuesin Nouveau është siguruar identifikimi i çipit NVIDIA Turing TU116;
- janë zgjeruar mundësitë e drejtuesit DRM/KMS për akceleratorët e operacioneve të ekranit ARM Komeda (Mali D71), është shtuar mbështetje për zgjatjen, ndarjen/bashkimin e shtresave, rotacionin, regjistrimin e vonuar, AFBC, SMMU dhe formatet e kodimit të ngjyrave Y0L2, P010, YUV420_8/10BIT;
- Në drejtuesin MSM është shtuar mbështetje për serinë A540 GPU Adreno, e përdorur në procesorët Qualcomm, si dhe mbështetje për kontrollorin DSI MSM8998 për Snapdragon 835;
- Janë shtuar drejtuesit për panelët LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 dhe VXT VL050-8048NT-C01; - drejtuesi për aktivizimin e mjeteve të përshpejtimit të dekodimit
video, që janë të disponueshme në SoC Amlogic Meson; - Në drejtuesin v3d (për GPU-në Broadcom Video Core V, e përdorur në Raspberry Pi) ka dalë dispeçerimi i shaderëve të llogaritjeve;
- drajver për çelësat SPI dhe trackpad, të përdorura në modelet moderne të laptopëve Apple MacBook dhe MacBookPro;
- mbrojtje shtesë e thirrjeve ioctl në lidhje me drejtorin floppy, dhe vetë drejtorin e cilësojmë si të braktisur
(«orphaned»), qĂ« nĂ«nkupton ndĂ«rprerjen e testimit tĂ« tij. Drajveri mbetet ende nĂ« bĂ«rthamĂ«, por funksionimi i tij i saktĂ« nuk garantizohet. Drajveri konsiderohet si i vjetruar, pĂ«r shkak se Ă«shtĂ« e vĂ«shtirĂ« tĂ« gjejmĂ« pajisje qĂ« funksionojnĂ« pĂ«r testim â tĂ« gjitha pajisjet e jashtme aktuale zakonisht pĂ«rdorin ndĂ«rfaqen USB. - drajver cpufreq pĂ«r platformat Raspberry Pi, qĂ« lejon menaxhimin dinamik tĂ« ndryshimit tĂ« frekuencĂ«s sĂ« procesorit;
- Shtuar mbështetje për ARM SoC të rinj Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSP + MMA) dhe Amlogic G12B (4x Cortex-A73 + 2x Cortex-A53), si dhe platformat:
- ,
- Aspeed BMC,
- Microsoft Olympus BMC,
- Kontron SMARC,
- Novtech Meerkat96 (i.MX7),
- ST Micro Avenger96,
- Google Cheza (Qualcomm SDM845),
- Qualcomm Dragonboard 845c (Qualcomm SDM845),
- Hugsun X99 TV Box (Rockchip RK3399),
- Khadas Edge/Edge-V/Captain (Rockchip RK3399),
- HiHope RZ/G2M,
- NXP LS1021A-TSN.
Përveç kësaj, Fondi Latinoamerikan i Softuerit të Lirë
opsion â , e pastruar nga elementĂ«t e firmware-it dhe drivereve qĂ« pĂ«rmbajnĂ« komponente ose fragmente kodi tĂ« liruar, tĂ« cilat janĂ« tĂ« kufizuara nga prodhuesi. NĂ« kĂ«tĂ« version tĂ« ri, Ă«shtĂ« ç aktivizuar ngarkimi i blob-eve nĂ« driver-at qcom, hdcp drm, allegro-dvt dhe meson-vdec.
Kodi i pastrimit të blob-eve në driver-at dhe subsistemat amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, driverin e tingullit për skylake, dhe gjithashtu në dokumentacionin e mikroprocesorit është azhurnuar.
Burimi: opennet.ru
