Pärast kahte kuud arendusteline Linus Torvalds tugevdamise südamik . Oluliste muudatuste hulgas on: Ext4 töörežiim, mis ei arvesta tähti, eraldi süsteemi kutsed failisüsteemi mountimiseks, draiverid GPU-dele Mali 4xx/6xx/7xx, võimalus töötada sysctl väärtuste muutustega BPF programmides, device-mapper moodul dm-dust, kaitse MDS rünnakute vastu, Sound Open Firmware toetamine DSP-le, BFQ jõudluse optimeerimine, PSI (Pressure Stall Information) alam-süsteemi viimine Androidi kasutatavusse.
Uues versioonis on aktsepteeritud 15100 parandust 1882 arendajalt,
patchi suurus on 62 MB (muudatused puudutasid 30889 faili, lisatud on 625094 koodi rida, kustutatud 531864 rida). Umbes 45% kõikidest esitatud 5.2
muudatustest on seotud seadme draiveritega, umbes 21% muudatustest puudutab
spetsiifiliste riistvara arhitektuuride koodi uuendamist, 12%
liitub võrgu süsteemiga, 3% — failisüsteemide ja 3% siseste
tuuma alam-süsteemidega. 12.4% kõigist muudatustest on ette valmistanud Intel, 6.3% — Red Hat, 5.4% — Google, 4.0% — AMD, 3.1% — SUSE, 3% — IBM, 2.7% — Huawei, 2.7% — Linaro, 2.2% — ARM, 1.6% — Oracle.
:
- Disski alamsüsteem, sisend/väljund ja failisüsteemid
- Ext4-le on lisatud failinimede nimede puhul ei arvestata sümbolite suurusjärku, mis aktiveeritakse ainult seoses üksikute tühjade kataloogidega uue atribuudiga «+F» (EXT4_CASEFOLD_FL). Kui see atribuut katalooge seadistatakse, toimub kõik failide ja alamkaustadega seotud toimingud sümbolite suurusjärku arvesse võtmata, sealhulgas suurusjärgu ignoreerimine failide otsimiseks ja avamiseks (nt failid Test.txt, test.txt ja test.TXT loetakse sellistes kataloogides samaks). Vaikimisi jääb failisüsteem suurusjärgu sõltuvaks, välja arvatud kataloogid, kus on atribuut «chattr +F»;
- failinimede UTF-8 sümbolite töötlemise funktsioonid on ühtlustatud, mida rakendatakse stringide võrdlemise ja normaliseerimise toimingute käigus;
- XFS-ile on lisatud infrastruktuur failisüsteemi seisundi jälgimiseks ja uus ioctl töökindluse staatuse pärimiseks. Tehtud on katse võimalus online-skrubatsiooniks superbloki loenduri kontrollimiseks.
- lisatud uus seadme-mappimise moodul ««, võimaldades simuleerida andmemälu rikkeid või lugemisvigu kettalt. Moodul lihtsustab rakenduste ja erinevate salvestussüsteemide tõrkeotsingut ja testimist juhul, kui tõrkeid esineb;
- signifiline sisendi/väljundi BFQ planeerija jõudluse optimeerimine. Suure koormuse korral on tehtud optimeeringud kuni 80% vähendada selliste toimingute, nagu rakenduste käivitamine, aega;
- Lisatud on rida süsteemikõnesid failisüsteemide mountimiseks: , , , , ja . Need to handle the different stages of mounting separately (process the superblock, obtain file system information, mount, and attach to a mount point), which were previously executed using a common system call mount(). Separate calls allow for more complex mounting scenarios and the ability to perform operations like reconfiguring the superblock, enabling options, changing the mount point, and moving to another namespace. Furthermore, separate processing allows for precise identification of error code causes and setting multiple sources for layered file systems such as overlayfs;
- A new operation IORING_OP_SYNC_FILE_RANGE has been added to the interface for asynchronous input/output io_uring, performing actions equivalent to the system call , as well as implementing the registration capability of eventfd with io_uring and receiving notifications upon the completion of operations;
- For the CIFS file system, ioctl FIEMAP has been added, providing efficient extent mapping, along with support for SEEK_DATA and SEEK_HOLE modes;
- In the FUSE subsystem API for managing data caching;
- Btrfs'i rakenduse qgroups optimeerimine ja fsynci täitmise kiirus on suurenenud, et toetada mitu kõva linki. Parandatud andmete terviklikkuse kontrollkoodi, mis arvestab nüüd võimaliku mälu kahjustusega enne andmete kirjutamist kettale;
- CEPH-s on lisatud toe eksportimine snapshots'i kaudu NFS-ile;
- NFSv4 monteerimise rakendust 'soft' režiimis on parendatud (salvestusvea korral näitab 'soft' režiim kohe veakoodi, samas 'hard' režiimis ei tagasta Kontrollpunkti until the FS is available again or times out). Uues väljaandes on tagatud täpsem ajapiirangute töötlemine, kiiremini taastamine tõrgete korral ning lisatud uus monteerimise valik 'softerr', mis võimaldab muuta ajakoodi (ETIMEDOUT), mis tagastatakse ajapiirangu ilmnemisel;
- NFS'i oleku jälgimiseks mõeldud API nfsdcld võimaldab NFS-serveril jälgida kliendi seisundit taaskäivitamise ajal. Seega, nfsdcld demon võib nüüd toimida nfsdcltrack töötlejana;
- AFS jaoks baiti vahemiku lukustamise simulatsioon failides ();
- Virtualiseerimine ja turvalisus
- On tehtud tööd, et kõrvaldada tuuma kohti, mis võimaldavad koodi käivitamist kirjutatavatest mälu peegelduspiirkondadest, mis võimaldab blokeerida potentsiaalseid lünki, mida äkilise rünnaku korral ära kasutada.
- Lisatud on uus tuuma käsurea parameeter «mitigations=», mis pakub lihtsustatud viisi hallata erinevate kaitsemeetodite sisselülitamist, mis on seotud CPU spetsiifilise täitmise haavatavustega. Parameetri «mitigations=off» edastamine keelab kõik olemasolevad meetodid, samas kui vaikimisi režiim «mitigations=auto» lubab kaitset, kuid ei mõjuta Hyper Threadingu kasutamist. Režiim «mitigations=auto,nosmt» keelab lisaks Hyper Threadingu, kui kaitsemeetod seda nõuab.
- elektronilise digitaalallkirja tugi vastavalt ГОСТ Р 34.10-2012 (RFC 7091, ISO/IEC 14888-3), Vitaly Chikunov'i poolt «Bažalt SPO» juures. Sisseehitatud TLS rakendusse on lisatud AES128-CCM tugi. Crypto_simd moodulisse on lisatud AEAD algoritmide tugi;
- Kconfigis on eraldi jaotis «kernel hardening» koos valikute loomisega tuuma kaitse tugevdamiseks. Praegu on uude jaotisse kogutud ainult seaded GCC pistikprogrammide tugevdamiseks.
- Yadrea kood on peaaegu töötlemata casе avalduste switch'is (ilma return või break'i pärast iga case plokki). Üksikjuhtumeid switch'i sarnast kasutamist on jäänud parandada 32 2311-st, pärast mida saab kernelit koostades kasutada režiimi „-Wimplicit-fallthrough“;
- PowerPC arhitektuuri jaoks on rakendatud toega riistvaralisi mehhanisme, et piirata soovimatuid juurdepääsu teid tuumale kasutajaandmetele;
- Lisatud kood blokeerimiseks MDS (Microarchitectural Data Sampling) klassi Intel'i protsessorites. Süsteemi haavatavuse kontrollimiseks saab kasutada SysFS-muutujat „/sys/devices/system/cpu/vulnerabilities/mds“. kaks kaitse režiimi: täielik, mis nõuab värskendatud mikroviiside olemasolu, ning ümbersõit, mis ei garanteeri täielikku CPU mälupinkide puhastamist, kui nõuet täidetakse kasutajate ruumi või külg süsteemi all. Kaitse režiimide kontrollimiseks on tuuma lisatud parameeter „mds=“, mis võib võtta väärtusi „full“, „full,nosmt“ (+ Hyper-Threadingu väljalülitamine) ja „off“;
- x86-64 süsteemides on IRQ-de, tõrkeotsingu mehhanismide ja erande käsitlejate jaoks lisatud "stack guard-page" kaitse, mille olemus seisneb mälu lehtede piiri asendamises, millele juurdepääs toob kaasa erandi (page-fault);
- Lisatud on sysctl-seade vm.unprivileged_userfaultfd, mis reguleerib mitteprivileeritud protsesside poolt süsteemikõne userfaultfd() kasutamise võimalust;
- Võrgu alamsüsteem
- IPv6 väravate tugi IPv4 marsruutidele. Näiteks on nüüd võimalik määrata marsruutimisse reegleid nagu „ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0“;
- ICMPv6 jaoks on rakendatud ioctl-kõnesid icmp_echo_ignore_anycast ja icmp_echo_ignore_multicast, et ignoreerida ICMP ECHO-d anycast ja
multicast aadresside jaoks. ICMPv6 pakettide töötlemise intensiivsuse piiramise võimalus; - B.A.T.M.A.N. („Better Approach To Mobile Adhoc Networking”) mesh-protokolli jaoks, mis võimaldab luua detsentraliseeritud võrke, kus iga sõlm on seotud naabersõlmedega, on lisatud tugi multicastist unicastisse üleminekuks, samuti haldamise võimalus läbi sysfs;
- Ethtoolis on uus parameeter Fast Link Down, mis võimaldab vähendada teate saamise aega lingi katkestamise sündmuse kohta 1000BaseT jaoks (tavaliselt on viivitus kuni 750 ms);
- Ilmnes Foo-Over-UDP tunnelite seondumise võimalus kindlale aadressile, võrguliidesele või soketile (varem tehti seondumine ainult ühise maskiga);
- Traadita tahvli raames võimalus teostada töötlejaid
OWE (Opportunistic Wireless Encryption) kasutaja ruumis; - Netfilteri nat-ahelatesse on lisatud toetust inet aadressi perekonnale (näiteks nüüd saab kasutada üht reeglit tõlkimiseks ipv4 ja ipv6 töötlemiseks, ilma reeglite eraldamiseta ipv4 ja ipv6 jaoks);
- Netlinkis strict rangeks kontrollimiseks, et kõik sõnumid ja atribuudid oleksid korrektse suurusega, milles ei lubata ületada oodatud atribuutide mõõtmeid ja keelatakse lisaandmete lisamine sõnumite lõppu;
- Mälu ja süsteemiteenused
- Süsteemi kõnele clone() on lisatud lipp CLONE_PIDFD, mille korral vanemprotsessile tagastatakse failide deskriptor «pidfd», millega on tuvastatud loodud lapsprotsess. Seda failide deskriptorit, näiteks, saab kasutada signaalide saatmiseks, muretsemata, et tekkida võiks võistlusolukord (vahetult pärast signaali saatmist võib siht-PID olla vabastatud, kui protsess lõpetatakse ja see on hõivatud teise protsessiga);
- Teise versiooni cgroups on lisatud freezer kontrolleri funktsioon, mis võimaldab talitada cgroupi tööd ja ajutiselt vabastada mõned ressursid (CPU, sisend/väljund ja potentsiaalselt isegi mälu) teiste ülesannete täitmiseks. Halduse teostamine käib cgroup.freeze ja cgroup.events juhtfailide kaudu cgroupi puus. Cgroup.freeze'i kirjutamine väärtusega 1 külmutab protsessid praeguses cgroupis ja kõigis alamgruppides. Kuna külmutamine nõuab teatavat aega, on lisatud fail cgroup.events, mille kaudu on võimalik saada teavet operatsiooni lõpetamise kohta.
- mälu atribuutide ekspordiga, mis on seotud iga sõlmega sysfs-is, mis võimaldab kasutajaruumi kaudu määrata mälupankade töötlemise iseloomu heterogeensete mälu süsteemide puhul;
- Täiendatud PSI (Pressure Stall Information) alussüsteem, mis võimaldab analüüsida erinevate ressursside (CPU, mälu, sisend/väljund) ooteaega teatud ülesannete või protsesside kogumite jaoks cgroup'is. PSI abil saavad kasutaja ruumi töötlejad paremini hinnata süsteemi koormust ja töö aeglustumise iseloomu võrreldes Load Average'iga. Uues versioonis on toetatud tundlikkuse lävendite seadistamise võimalus ja poll() süsteemikõne kasutamine, et saada teateid seadistatud läviväärtuste ületamisest kindla ajavahemiku jooksul. See võimalus võimaldab Androidis jälgida mälu puudujääki varajases etapis, tuvastada probleemide allika ja sulgeda ebaolulised rakendused, vältides sellega kasutajale märgatavate probleemide tekkimist. Stressitestimise käigus näitas PSI-põhbine mälu jälgimise vahend 10 korda vähem valehäireid võrreldes vmpressure statistika tulemusega.
- Koodi optimeerimine BPF-programmide kontrollimiseks on tehtud, mis võimaldab suurte programmide kontrolli käitada kuni 20 korda kiiremini. Optimeerimise tulemusel tõsteti BPF-programmide suuruse piiri 4096-lt miljoni käsuteni;
- BPF-programmide jaoks on võimalus pääseda juurde globaalsetele andmetele, mis lubab määrata programmides globaalsetes muutujates ja konstantsides;
- Lisatud , võimaldades BPF-programmidest kontrollida sysctl-i parameetrite muutusi;
- MIPS32 arhitektuuri jaoks on ellu kutsutud JIT-kompilaator eBPF virtuaalmasinale;
- 32-bitise PowerPC arhitektuuri jaoks on lisatud KASan (Kernel address sanitizer) silumise tööriista tugi, mis aitab tuvastada mäluhalduse vigu;
- x86-64 süsteemides on eemaldatud piirmäär krashi korral (crash-dump) olekudumpide asetusele mälu aladel üle 896MB;
- s390 arhitektuuri jaoks on rakendatud tuumade aadressiruumi randomiseerimise (KASLR) toimet ja digitaalsete allkirjade kontrollimise võimalust tuuma laadimisel kexec_file_load() kaudu;
- PA-RISC arhitektuuri jaoks on lisatud tuuma siluri (KGDB) tugi, sihtmärkide ja kprobes'i toetamine;
- Seadmed
- Komplekti kuulub draiver Mali 400/450 GPU-d jaoks, mida kasutatakse paljude vanade ARM-architecture'i kiipide jaoks. Uute Mali GPU-de jaoks on lisatud Panfrost draiver, mis toetab Midgardi (Mali-T6xx, Mali-T7xx, Mali-T8xx) ja Bifrosti (Mali G3x, G5x, G7x) mikroarhitektuuriga kiipe.
- Lisatud tugi heliseadmetele, mis kasutavad avatud püsivara. (). Kuigi avatud draiverid on olemas, on helichippide püsivara kood endiselt suletud ja tarnitakse binaarses vormis. Sound Open Firmware projekt on välja töötatud Intel'i poolt avatud püsivara loomiseks DSP-kiipidele, mis on seotud helitöötlusega (hiljem liitus arendusega ka Google). Praegu on projekti raames juba ette valmistatud avatud püsivara helikiipide jaoks Intel'i platvormidel: Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake ja IceLake.
- Intel'i (i915) DRM-draiveris on lisatud tugi kiipidele.
Elkhartlake (Gen11). Lisatud PCI-identifikaatorid Comet Lake (Gen9) kiipidele. Stabiliseeritud Icelake kiipide tugi, millele on samuti lisatud täiendavad PCI-seadmestiku identifikaatorid.
video mälu kahe puhvri vahel asünkroonse vahetamise režiim (async flip), kui kirjutamise operatsioonid kulgevad mmio kaudu, mis tõstis mõnede 3D rakenduste jõudlust märkimisväärselt (näiteks 3DMark Ice Stormi testis kasvas jõudlus 300-400%). Lisatud tugi tehnoloogiale (Khigh-bandwidth Digital Content Protection) video signaali krüpteerimiseks, mis edastatakse HDMI kaudu; - amdgpu draiveris GPU Vega20 tugi RAS (Reliability, Availability, Serviceability) ning eksperimentaalne tugi SMU 11 alamüsteemile, mis asendab Powerplay tehnoloogiat. GPU Vega12 jaoks tugi BACO režiimile (Bus Active, Chip Off). Lisatud algne tugi XGMI, kõrge läbilaskevõimega bussile (PCIe 4.0) GPU ühendamiseks. amdkfd draiverisse on lisatud puuduvad Polaris10 GPU kaartide identifikaatorid;
- Nouveau draiveris on lisatud tugi NVIDIA Turing 117 (TU117, mida kasutatakse GeForce GTX 1650) aluseliste plaatide jaoks.
kconfig seaded, et välja lülitada aegunud funktsioonid, mis ei ole enam kasutuses aktuaalsetes libdrm väljaannetes; - DRM API-s ja amdgpu draiveris on lisatud tugi sünkroneerimisobjektidele «timeline», mis võimaldavad loobuda klassikalistest lukustustest.
- Staging haru peamistele yhä viidikele vboxvideo draiveri virtuaalsele GPU-le VirtualBox;
- GFX kiibi SoC ASPEED jaoks on lisatud aspeed draiver;
- Toetatakse ARM SoC ja Intel Agilex (SoCFPGA) plaate, 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).
Samas ajal, Ladina-Ameerika vaba tarkvara fond
variant — , mis on puhastatud vahemälu koostisosadest ja draiveritest, mis sisaldavad mitte-vabasid komponente või koodilõike, mille kasutusala on tootja poolt piiritletud. Uues väljaandes on lisatud failide laadimine,
Sound Open Firmware. Draiverites on keelatud blobide laadimine
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp ja ucsi_ccg. Draiverites ja ixp4xx, imx-sdma, amdgpu, nouveau ja goya alamsüsteemides on uuendatud blobide puhastamise koodi ning mikrokoodi dokumentatsioonis. r8822be draiveris on blobide puhastamine lõpetatud seoses selle eemaldamisega.
Allikas: opennet.ru
