Pas dy muajsh zhvillimi Linus Torvalds lëshimi i bërthamës Disa mes ndryshimeve më të dukshme: funksioni i sistemit Ext4 pa marrë parasysh regjistrin e karaktereve, thirrje të ndara sistemore për montimin e FSh, drejtues për GPU Mali 4xx/6xx/7xx, mundësia për të trajtuar ndryshimin e vlerave sysctl në programet BPF, moduli device-mapper dm-dust, mbrojtja nga sulmet MDS, mbështetje për Sound Open Firmware për DSP, optimizimi i performancës BFQ, përmirësimi i nënsistemës PSI (Pressure Stall Information) në një gjendje të përdorshme në Android.
Në versionin e ri janë pranuar 15100 korrigjime nga 1882 zhvillues.
pika e patch-it është 62 Mb (ndryshimet preku 30889 skedha, u shtuan 625094 rreshta kodi, u fshin 531864 rreshta). Rreth 45% e të gjitha të dhënave të paraqitura në 5.2
ndryshimet lidhen me drejtuesit e pajisjeve, afërsisht 21% e ndryshimeve kanë
të bëjnë me përmirësimin e kodit të veçantë për arkitekturën harduerike, 12%
e lidhur me stack-un rrjet, 3% â sistemet e skedarĂ«ve dhe 3% me nĂ«n sistemet e brendshme
sistemeve në bërthamë. 12.4% e të gjitha ndryshimeve janë përgatitur nga kompania Intel, 6.3% nga Red Hat, 5.4% nga Google, 4.0% nga AMD, 3.1% nga SUSE, 3% nga IBM, 2.7% nga Huawei, 2.7% nga Linaro, 2.2% nga ARM, 1.6% nga Oracle.
:
- Sistemi i diskut, hyrja/ dalje dhe sistemet e skedarëve
- Për Ext4 është shtuar funksioni pa dallim të regjistrit të karaktereve në emrat e skedhave, i cili aktivizohet vetëm në lidhje me katalogë të veçantë bosh përmes atributit të ri "+F" (EXT4_CASEFOLD_FL). Kur ky atribut vendoset në një katalog, të gjitha operacionet me skedha dhe nënkatallogje brenda do të kryhen pa marrë parasysh regjistrin e karaktereve, përfshirë injorimin e regjistrit gjatë operacioneve të kërkimit dhe hapjes së skedhave (p.sh., skedhat Test.txt, test.txt dhe test.TXT në katalogët e tillë do të konsiderohen të njëjta). Me rregull, FS vazhdon të jetë regjistruese, përveç katalogëve me atributin "chattr +F";
- Janë unifikuar funksionet e trajtimit të karaktereve UTF-8 në emrat e skedarëve, të cilat përdoren gjatë kryerjes së operacioneve të krahasimit dhe normalizimit të rreshtave;
- NĂ« XFS Ă«shtĂ« shtuar infrastruktura pĂ«r monitorimin e gjendjes sĂ« sistemit tĂ« skedarĂ«ve dhe njĂ« ioctl i ri pĂ«r tĂ« kĂ«rkuar statusin e funksionimit. ĂshtĂ« realizuar njĂ« mundĂ«si eksperimentale pĂ«r tĂ« kontrolluar nĂ« flutur (online scrub) numrat e superblokut.
- Shtuar një modul të ri të device-mapper "" që lejon simulimin e shfaqjes së bad-blocks në media ose gabimeve gjatë leximit nga disku. Moduli lejon thjeshtimin e debugging-ut dhe testimit të aplikacioneve dhe sistemeve të ndryshme të ruajtjes në kushte të mundshme me dështime;
- optimizimi i konsiderueshëm i performancës së planifikuesit të hyrjes/daljes BFQ. Në kushte ngarkese të lartë për hyrje/dalje, optimizimet e aplikuara reduktuar me deri në 80% kohën e operacioneve të tilla si nisja e aplikacioneve;
- Shtuar një seri thirrjesh sistemore për montimin e sistemeve të skedarëve: , , , , dhe . Këto thirrje sistemore lejojnë të trajtohen veçmas fazat e ndryshme të montimit (përpunimi i superblokut, marrja e informacionit mbi FS, montimi, lidhja në pikën e montimit), të cilat më parë kryheshin përmes thirrjes së përgjithshme sistemore mount(). Thirrjet individuale japin mundësinë për të realizuar skenarë më të avancuar të montimit dhe për të kryer veprime të tilla si rindërrimi i superblokut, aktivizimi i opsioneve, ndryshimi i pikës së montimit dhe transferimi në hapësira të tjera emërtimi. Për më tepër, përpunimi i ndarë lejon përcaktimin e saktë të arsyes së kodit të gabimeve dhe caktimin e disa burimeve për FS me shumë shtresa, si overlayfs;
- Në ndërfaqen për hyrje/dalje asinkrone io_uring është shtuar operacioni i ri IORING_OP_SYNC_FILE_RANGE, i cili realizon veprime ekuivalente me thirrjen sistemore , si dhe është realizuar mundësia e regjistrimit të eventfd me io_uring dhe marrja e njoftimeve për përfundimin e operacioneve;
- Për sistemin e skedarëve CIFS është shtuar ioctl FIEMAP, i cili siguron përputhje efikase të ekstentëve, si dhe mbështetje për modet SEEK_DATA dhe SEEK_HOLE;
- Në sistemin FUSE API për menaxhimin e memores për të dhëna;
- NĂ« Btrfs Ă«shtĂ« optimizuar realizimi i qgroups dhe Ă«shtĂ« rritur shpejtĂ«sia e ekzekutimit tĂ« fsync pĂ«r skedarĂ«t me lidhje tĂ« shumta tĂ« forta. ĂshtĂ« pĂ«rmirĂ«suar kodi pĂ«r kontrollin e integritetit tĂ« tĂ« dhĂ«nave, i cili tani merr parasysh mundĂ«sinĂ« e dĂ«mtimit tĂ« informacionit nĂ« RAM para se tĂ« derdhen tĂ« dhĂ«nat nĂ« disk;
- Në CEPH është shtuar mbështetje për eksportimin e snapshot-eve përmes NFS;
- Përmirësuar implementimi i montimit NFSv4 në modalitetin "soft" (në rast se ndodh një gabim gjatë qasjes në server, në modalitetin "soft", thirrja kthehet menjëherë me kod gabimi, ndërsa në modalitetin "hard", menaxhimi nuk dorëzohet deri në rikthimin e disponueshmërisë së FS ose kohëmatësin). Në këtë publikim të ri është siguruar një trajtim më i saktë i kohëmatësit, është përshpejtuar rikuperimi pas dështimit dhe është shtuar një opsion i ri montimi "softerr", i cili lejon ndryshimin e kodit të gabimit (ETIMEDOUT) i kthyer në rast se ndodh një kohëmatës;
- Në API nfsdcld, i destinuar për ndjekjen e gjendjes së klientëve NFS, është siguruar mundësia për të ndjekur saktësisht gjendjen e klientit nga NFS-serveri pas ribashkimit. Kështu, demoni nfsdcld tani mund të funksionojë si trajtuesi nfsdcltrack;
- Për AFS simulimi i bllokimeve të gamave të bajtëve në skedarë ();
- Virtualizimi dhe siguria
- ĂshtĂ« bĂ«rĂ« punĂ« pĂ«r tĂ« eliminuar vendet nĂ« bĂ«rthamĂ«, qĂ« lejojnĂ« ekzekutimin e kodit nga zona tĂ« kujtesĂ«s qĂ« janĂ« tĂ« shkruara, qĂ« ndihmon nĂ« bllokimin e boshllĂ«qeve potenciale, tĂ« cilat mund tĂ« shfrytĂ«zohen gjatĂ« njĂ« sulmi;
- Shtuar një parametr të ri të linjës së komandës së bërthamës "mitigations=", që ofron një mënyrë të thjeshtë për menaxhimin e aktivizimit të teknika të ndryshme mbrojtjeje nga dobësitë të lidhura me ekzekutimin spekulativ të instruksioneve në CPU. Dërgimi i "mitigations=off" çaktivizon të gjitha metodat e disponueshme, ndërsa moda e përdorur si rregull "mitigations=auto" aktivizon mbrojtjen, por nuk ndikon në përdorimin e Hyper Threading. Moda "mitigations=auto,nosmt" gjithashtu çaktivizon Hyper Threading, nëse kërkon metoda e mbrojtjes.
- mbështetje për nënshkrimin elektronik digjital sipas GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), Nga Vitali Chikunov nga "Bazalt SPO". Në implementimin e integruar të TLS është shtuar mbështetje për AES128-CCM. Në modulën crypto_simd është shtuar mbështetje për algoritmet AEAD;
- Në Kconfig seksioni i veçuar "kernel hardening" me opsione për forcimin e mbrojtjes së bërthamës. Aktualisht, në këtë seksion janë grumbulluar vetëm cilësime për aktivizimin e kontrollove për pluginat GCC;
- Kodi i bërthamës është pothuajse nga shprehjet e pandërprerë case në switch (pa return ose break pas çdo blloku case). Duhet të rregullohen 32 nga 2311 rastet e përdorimit të tillë të switch, pas të cilave gjatë ndërtimit të bërthamës do të mund të aplikohet mënyra "-Wimplicit-fallthrough";
- Për arkitekturën PowerPC është zbatuar mbështetje për mekanizmat harduerikë që kufizojnë rrugët e padëshiruara të aksesit të bërthamës në të dhënat në hapësirën e përdoruesit;
- ĂshtĂ« shtuar kodi pĂ«r bllokimin klasĂ«s MDS (Microarchitectural Data Sampling) nĂ« procesorĂ«t Intel. Mund tĂ« kontrollohet nĂ«se sistemi Ă«shtĂ« i prekur nga ndjeshmĂ«ria pĂ«rmes variablit SysFS "/sys/devices/system/cpu/vulnerabilities/mds". dy modulet e mbrojtjes: e plotĂ«, e cila kĂ«rkon praninĂ« e mikro-kodit tĂ« azhurnuar, dhe njĂ« variant anashkalues, i cili nuk garanton plotĂ«sisht pastrimin e bufeve tĂ« CPU gjatĂ« kalimit tĂ« kontrollit nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit apo sistemin mikro. PĂ«r menaxhimin e modusve tĂ« mbrojtjes Ă«shtĂ« shtuar parametri "mds=", i cili mund tĂ« marrĂ« vlera "full", "full,nosmt" (+ çaktivizimi i Hyper-Threads) dhe "off";
- Në sistemet x86-64 për IRQ, mekanizmat e debugs dhe trajtuesit e përjashtimeve është shtuar mbrojtja "stack guard-page", e cila përfshin vendosjen në kufirin me stek të faqeve të memories, për të cilat kërkesa e qasjes rezulton në gjenerimin e një përjashtimi (page-fault);
- ĂshtĂ« shtuar konfigurimi sysctl vm.unprivileged_userfaultfd, i cili kontrollon mundĂ«sinĂ« e pĂ«rdorimit tĂ« thirrjes sĂ« sistemit userfaultfd() nga proceset jo pĂ«rdorues;
- Sistemi i rrjetit
- mbështetje për portat IPv6 për rrugët IPv4. Për shembull, tani mund të specifikoni rregullat e routingut të tipit "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0";
- Për ICMPv6 janë realizuar thirrje ioctl icmp_echo_ignore_anycast dhe icmp_echo_ignore_multicast për të injoruar ICMP ECHO për anycast dhe
adresat multicast. mundësia për të kufizuar intensitetin e trajtimit të paketave ICMPv6; - Për protokollin mesh B.A.T.M.A.N. ("Better Approach To Mobile Adhoc Networking"), i cili lejon krijimin e rrjetëve të decentralizuara, çdo nyje është e lidhur përmes nyjeve fqinje, mbështetje për transformimin nga multicast në unicast, si dhe mundësinë për menaxhim përmes sysfs;
- Në ethtool parametri i ri Fast Link Down, i cili lejon të shkurtojë kohën e pranimit të informacionit në lidhje me ngjarjen e ndalimit të lidhjes për 1000BaseT (në kushte të zakonshme, vonesa mund të arrijë deri në 750ms);
- Ka pasur lidhjet e tunelit Foo-Over-UDP me një adresë të caktuar, interface rrjeti ose soket (më parë lidhja arrihej vetëm sipas një maske të përbashkët);
- Në grumbullin e paqes mundësia për të realizuar trajtuesit
OWE (Opportunistic Wireless Encryption) në hapësirën e përdoruesit; - Në Netfilter, në zinxhirët nat është shtuar mbështetje për grupin e adresave inet (për shembull, tani është e mundur të përdorni një rregull të vetëm të transformimit për të trajtuar ipv4 dhe ipv6, pa ndarjen e rregullave për ipv4 dhe ipv6);
- Në netlink strict për verifikimin e rreptë të saktësisë së të gjitha mesazheve dhe atributeve, ku nuk lejohet të tejkalohet madhësia e pritshme e atributeve dhe ndalohet shtimi i të dhënave shtesë në fund të mesazheve;
- Kujtesa dhe shërbimet sistemore
- Në thirrjen sistemore clone() është shtuar flag CLONE_PIDFD, me të cilin, kur specifikohet, prindit i procesit i kthehet një descriptor skedari "pidfd", i cili është identifikuar me procesin fëmijë të krijuar. Ky descriptor skedari, për shembull, mund të përdoret për të dërguar sinjale pa pasur frikë se do të hasni në një gjendje garash (menjëherë pas dërgimit të sinjalit, PID-i që është synuar mund të lirohet për shkak të përfundimit të procesit dhe të merret nga një proces tjetër);
- Për versionin e dytë të cgroups është shtuar funksionaliteti i kontrolluesit freezer, me anë të të cilit mund të ndaloni punën në cgroup dhe përkohësisht të çlironi disa burime (CPU, hyrje/grup dhe potencialisht edhe memorie) për të realizuar detyra të tjera. Menaxhimi bëhet përmes skedarëve të menaxhimit cgroup.freeze dhe cgroup.events në pemën cgroup. Regjistrimi 1 në cgroup.freeze ngrin proceset në cgroup-n aktual dhe të gjitha grupet fëmijë. Duke qenë se ngrirja kërkon disa kohë, është propozuar gjithashtu skedari cgroup.events përmes të cilit mund të informoheni për përfundimin e operacionit;
- eksportimi i atributeve të memories, të lidhura me çdo nyje në sysfs, që lejon nga hapësira e përdoruesit të përcaktojë natyrën e përpunimit të bankave të memories në sisteme me memorie heterogjene;
- Sistemi PSI (Pressure Stall Information) është përmirësuar, i cili lejon analizimin e informacionit mbi kohën e pritjes për marrjen e burimeve të ndryshme (CPU, memorie, hyrje/dalje) për detyra të caktuara ose grupe procesesh në cgroup. Me anë të PSI, menaxherët në hapësirën e përdoruesit mund të vlerësojnë më saktë nivelin e ngarkesës në sistem dhe natyrën e ngadalësimit të punës, në krahasim me Load Average. Në versionin e ri, sigurohet mbështetje për caktimin e kufijve të ndjeshmërisë dhe mundësia për të përdorur thirrjen poll() për të marrë njoftime për shpërthimin e kufijve të vendosur për një periudhë të caktuar kohore. Kjo mundësi lejon organizimin e monitorimit të mungesës së memories në Android në një fazë të hershme, të përcaktojë burimin e problemeve dhe të përfundojë aplikacione të panevojshme, pa i çuar në probleme të dukshme për përdoruesit. Gjatë testeve të stresit, të dhënat për monitorimin e konsumit të memories bazuar në PSI kanë treguar me 10 herë më pak shpërthime false në krahasim me statistikën vmpressure;
- Optimizimi i kodit për verificimin e programeve BPF është realizuar, i cili për programe të mëdha tani kryen verifikimin deri 20 herë më shpejt. Optimizimi lejoi rritjen e limitit të madhësisë së programeve BPF nga 4096 në një milion instruksione;
- Për programet BPF mundësinë e qasjes në të dhënat globale, që lejon përcaktimin e variablave dhe konstantave globale në programe;
- Shtuar , duke mundësuar kontrollin nga programet BPF të ndryshimeve të parametrave sysctl;
- Për arkitekturën MIPS32 është realizuar një kompjuter JIT për makinën virtuale eBPF;
- Për arkitekturën 32-bit PowerPC është shtuar mbështetje për mjetin e debuggimit KASan (Kernel address sanitizer), që siguron identifikimin e gabimeve gjatë punës me memorie;
- Në sistemet x86-64 është hequr kufizimi për vendosjen e dump-eve të gjendjes gjatë dështimit të kernel-it (crash-dump) në rajone të memorie mbi 896MB;
- Për arkitekturën s390 është realizuar mbështetje për randomizimin e hapësirës adresuese të kernel-it (KASLR) dhe mundësia e verifikimit të nënshkrimeve dixhitale gjatë ngarkesës së kernel-it përmes kexec_file_load();
- Për arkitekturën PA-RISC është shtuar mbështetje për debugguer-in e kernel-it (KGDB), etiketat e kalimit dhe kprobes;
- Pajisjet
- Në përbërje është përfshirë drivari për GPU Mali 400/450, që përdoret në shumë çipa të vjetër bazuar në arkitekturën ARM. Për GPU-të më të reja Mali është shtuar drejtuesi Panfrost, që mbështet çipat e bazuar në mikroarkitekturën Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) dhe Bifrost (Mali G3x, G5x, G7x);
- Shtuar mbështetje për pajisje audio që përdorin firmware të hapur (). Megjithëse ka firmware të hapura, kodi i firmware-ve për çipat audio ende mbetej i mbyllur dhe miratohej në formë binare. Projekti Sound Open Firmware u zhvillua nga Intel për krijimin e firmware-ve të hapura për çipet DSP që lidhen me përpunimin e zërit (më vonë, Google gjithashtu u angazhua në zhvillim). Aktualisht, në kuadër të projektit janë përgatitur firmware të hapura për çipat audio të platformave Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake dhe IceLake;
- Në drejtuesin DRM të Intel (i915) është shtuar mbështetje për çipat
Elkhartlake (Gen11). Shtuar identifikuesit PCI për çipat Comet Lake (Gen9). Stabilizuar mbështetje për çipat Icelake, për të cilët gjithashtu janë shtuar identifikues të tjerë PCI të pajisjeve.
mënyra asinkrone e kalimit midis dy buferave në memorien video (async flip) gjatë operacioneve të shkruajtjes përmes mmio, çka lehtësoi një rritje të dukshme të performancës së disa aplikacioneve 3D (p.sh., performanca në testin 3DMark Ice Storm u rrit me 300-400%). Shtuar mbështetje për teknologjinë (Mbrojtja e Përmbajtjes Digjitale të Bandës së Lartë) për enkriptimin e sinjalit video që transmetohet përmes HDMI; - Në drejtuesin amdgpu për GPU Vega20 mbështetje RAS (Reliability, Availability, Serviceability) dhe mbështetje eksperimentale për nën-sistemin SMU 11, i cili zëvendëson teknologjinë Powerplay. Për GPU Vega12 mbështetje për modin BACO (Bus Active, Chip Off). Shtuar mbështetje fillestare për XGMI, linjën e shpejtë (PCIe 4.0) për lidhjen e GPU-ve. Në drejtuesin amdkfd janë shtuar identifikuesit e munguar për kartat bazuar në GPU Polaris10;
- Në drejtuesin Nouveau është shtuar mbështetje për kartat e bazuara në çipsetin NVIDIA Turing 117 (TU117, i përdorur në GeForce GTX 1650). Në
kconfig konfigurimi për të çaktivizuar funksionet e vjetra, të cilat tashmë nuk përdoren në lëshimet aktuale të libdrm; - Në API-në DRM dhe në driver-in amdgpu është shtuar mbështetje për objektet e sinkronizimit "timeline", duke lejuar shmangien e bllokimeve klasike.
- Nga dega staging është transferuar drejtuesi vboxvideo në strukturën kryesore për GPU-në virtuale të VirtualBox;
- Shtuar drejtuesin aspeed për çipin GFX SoC ASPEED;
- Shtuar mbështetje për ARM SoC dhe kartat Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
ST Micro (stm32mp157a, stm32mp157c), NXP (
Eckelmann ci4x10 (i.MX6DL),i.MX8MM EVK (i.MX8MM),
ZII i.MX7 RPU2 (i.MX7),
ZII SPB4 (VF610),
Zii Ultra (i.MX8M),
TQ TQMa7S (i.MX7Solo),
TQ TQMa7D (i.MX7Dual),
Kobo Aura (i.MX50),
Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).
Përveç kësaj, Fondi Latinoamerikan i Softuerit të Lirë
opsion â , i pastruar nga elementĂ«t e firmuerĂ«ve dhe drejtuesve qĂ« pĂ«rmbajnĂ« komponentĂ« ose pjesĂ« kodi tĂ« pa-lira, tĂ« cilat kufizohen nga prodhuesi. NĂ« lĂ«shimin e ri Ă«shtĂ« pĂ«rfshirĂ« ngarkimi i skedarĂ«ve
Sound Open Firmware. ĂshtĂ« çaktivizuar ngarkimi i blob-Ă«ve nĂ« drejtuesit
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp dhe ucsi_ccg. ĂshtĂ« pĂ«rditĂ«suar kodi i pastrimit tĂ« blob-Ă«ve nĂ« drejtuesit dhe nĂ« nĂ«n-sistemat ixp4xx, imx-sdma, amdgpu, nouveau dhe goya, si dhe nĂ« dokumentacionin pĂ«r mikrokodin. ĂshtĂ« ndĂ«rprerĂ« pastrimi i blob-Ă«ve nĂ« drejtuesin r8822be pĂ«r shkak tĂ« fshirjes sĂ« tij.
Burimi: opennet.ru
