Pärast kahte kuud arendust Linus Torvalds ydinversioon . Kõige silmapaistvamad muudatused on: Ext4 töörežiim, mis ei arvestatav tähemärkide suurtähtsust, eraldi süsteemikutsed failisüsteemi monteerimiseks, Mali 4xx/6xx/7xx GPU draiverid, sysctl väärtuste muutmise töötlemise võimalus BPF programmides, seadmestiku kaardistamise moodul dm-dust, kaitse MDS rünnakute vastu, Sound Open Firmware toe lisamine DSP-le, BFQ jõudluse täiustamine, PSI (Pressure Stall Information) alamhulga viimine Androidis kasutamiseks.
Uude versiooni on lisatud 15100 parandust 1882 arendajalt,
patši suurus on 62 MB (muudatused hõlmasid 30889 faili, lisatud 625094 koodirea, kustutatud 531864 rida). Umbes 45% kõikidest esitatud muudatustest 5.2
on seotud seadme draiveritega, umbes 21% muudatustest on
seotud riistvaralisest arhitektuurist sõltuva koodi värskendamisega, 12%
seotud võrgustiku virnast, 3% — failisüsteemidega ja 3% tuumades alamsüsteemidega.
kerneli alamhulkadega. 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.
:
- Diskisüsteem, sisend/väljund ja failisüsteemid
- Ext4-le on lisatud töötamine, mis ei arvestata tähemärkide suurtähtsust failinimedes, aktiveeritakse ainult eraldi tühi kataloog, kasutades uut atribuuti «+F» (EXT4_CASEFOLD_FL). Kui see atribuut määratakse kataloogile, siis kõik failide ja alamkataloogide toimingud selle sees arvestavad tähemärkide suurtähtsust, sealhulgas suurtähtedest on üksteisega võrdsed otsingu ja avamise toimingutes (näiteks failid Test.txt, test.txt ja test.TXT sellistes kataloogides loetakse üksteisega võrdsed). Vaikimisi jätkab failisüsteem jäädvustamist arvesse võtma, välja arvatud kataloogid, millel on atribuut «chattr +F»;
- UTF-8 tähemärkide töötlemise funktsioonid on ühtlustatud failinimedes, mis kehtivad võrdlemise ja stringide normaliseerimise toimingute käigus;
- XFS-is on lisatud infrastruktuur failisüsteemi oleku jälgimiseks ja uus ioctl töökindluse staatuse pärimiseks. Rakendatud on eksperimentaalne võimalus otse kontrollimiseks (online scrub) superbloki loendurite jaoks.
- Lisatud on uus seadmestiku kaardistamise moodul ««, mis võimaldab simuleerida halva ploki ilmumist andmekandjal või lugemisvea dünaamikat. Moodul lihtsustab rakenduste ja erinevate salvestussüsteemide tõrkeolukordades testimise ja silumise protsessi.
- märkimisväärne jõudluse optimeerimine BFQ sisend-väljund planeerija jaoks. Kõrge sisend-väljundi koormuse korral on tehtud optimeerimisi. kuni 80% lühem aeg selliste toimingute, nagu rakenduste käivitamine;
- On lisatud rida süsteemikõnesid failisüsteemide mountimiseks: , , , , ja . Need süsteemikõned võimaldavad eraldi töödelda erinevaid mountimise etappe (superbloki töötlemine, teabe saamine failisüsteemist, mountimine, mountimiskohta kinnitamine), mis varem tehti üldise süsteemikõne mount() abil. Eraldi kõned võimaldavad rakendada keerukamaid mountimise stsenaariume ning eraldi teostada selliseid toiminguid nagu superbloki konfigureerimine, valikute aktiveerimine, mountimiskoha muutmine ja teisaldamine teise nimiruumi. Lisaks võimaldab eraldi töötlemine täpselt määrata vigakoodide tagastamise põhjuseid ja seadistada mitu allikat mitmekihiliste failisüsteemide, nagu overlayfs, jaoks;
- Asünkroonse sisend-väljundi liidese io_uring juurde on lisatud uus toiming IORING_OP_SYNC_FILE_RANGE, mis teostab toimingud, mis vastavad süsteemikõne , samuti on rakendatud võimalus registreerida eventfd io_uringiga ja saada teateid toimingute lõpetamise kohta;
- CIFS failisüsteemi jaoks on lisatud ioctl FIEMAP, mis tagab efektiivse ekstentide seostamise, samuti toetatakse SEEK_DATA ja SEEK_HOLE režiime;
- FUSE alam-süsteemis API andmete vahemälu haldamiseks;
- Btrfs-is on optimeeritud qgroupide rakendus ning suurendatud fsync-i täitmise kiirus mitme kõva lingiga failide jaoks. Andmete terviklikkuse kontrollimise koodi on parandatud, nii et see arvesse võtab võimaliku teabe kahjustamise RAM-is enne andmete ketta kirjutamist;
- CEPH-is on lisatud toetus snapshots-i eksportimiseks NFS-i kaudu;
- NFSv4 mountimise rakendust 'soft' on parandatud (serveri juurdepääsuvigade korral tagastatakse 'soft' režiimis kohe vigakood, 'hard' režiimis siiski mitte enne failisüsteemi taas saadavaks muutumist või ajapiirangu möödumist). Uues versioonis on tagatud täpsem ajapiirangu töötlemine, kiirendatud taastumine tõrgetest ja lisatud uus mountimisvalik 'softerr', mis võimaldab muuta vigakoodi (ETIMEDOUT), mis tagastatakse ajapiirangu saavutamisel;
- NFS-i kliendi oleku jälgimiseks mõeldud API nfsdcld võimaldab NFS-serveril õigesti jälgida kliendi olekut taaskäivitamise ajal. Nii saab nfsdcld deemon nüüd töötada nfsdcltrack'i töötlejana;
- AFS-i jaoks failide baitide vahemike lukustamise simuleerimine ();
- Virtualiseerimine ja turvalisus
- Kernelis on tehtud tööd, et kõrvaldada kohad, mis lubavad koodi käivitamist kirjutamisõigustega peegelduvates mälu alades, takistades potentsiaalsete turvaaukude ärakasutamist rünnakute korral;
- Lisatud uus kernelikäsu rida "mitigations=", mis pakub lihtsustatud viisi ohtude ärahoidmise tehnikate aktiveerimiseks, mis on seotud spekulatiivse käitamisega CPU-s. "mitigations=off" keelab kõik olemasolevad meetodid, kuid vaikimisi režiim "mitigations=auto" lülitab kaitse sisse, mõjutamata Hyper Threading'i kasutamist. Režiim "mitigations=auto,nosmt" keelab täiendavalt Hyper Threading'i, kui kaitse meetod seda nõuab.
- elektroonilise digitaalallkiri toetamine vastavalt GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), Vitaly Chikunovilt "Bazalt SPO". TLS-i sisseehitatud teostusele on lisatud AES128-CCM tugi. moodulisse crypto_simd on lisatud AEAD algoritmide tugi;
- Kconfigis on loodud eraldi jaotises "kernel hardening", milles on valikud kernelikaitse tugevdamiseks. Praegu on uues jaotises kogutud ainult seaded GCC pluginite tugevdamiseks;
- Kernelikood on peaaegu katkestamatute võrdluste kasutamine switch'is (ilma return või break'ita iga case ploki järel). Alles on parandada 32 2311 switch'i kasutamise juhtumit, pärast mida saab kernelite kogumine rakendada režiimi "-Wimplicit-fallthrough";
- PowerPC arhitektuuri jaoks on rakendatud riistvaratoe mehhanismid, mis piiravad kernelile soovimatut juurdepääsu kasutaja andmetele;
- Lisatud on blokeerimiskood MDS (Microarchitectural Data Sampling) klassi Intel'i protsessorites. Süsteemi haavatavuse kontrollimiseks saab kasutada SysFS muutuja "\/sys\/devices\/system\/cpu\/vulnerabilities\/mds". Kaks kaitserežiimi: täielik, mis nõuab värskendatud mikroprogrammi olemasolu, ja ümbersuunamine, mis ei garanteeri täielikult CPU vahemälu puhastamist juhtimise andmisel kasutaja või külalisüsteemi ruumi. Kaitse režiimide haldamiseks on tuumale lisatud parameeter «mds=», mis võib võtta väärtusi «full», «full,nosmt» (+ Hyper-Threads'i väljalülitamine) ja «off»;
- x86-64 süsteemides on IRQ, silumisemehanismide ja eranditöötlejate jaoks lisatud kaitse «stack guard-page», mille olemus seisneb mälulehe sisestamises, mille piiril on stekiga seoses tehtud päringud, mis toovad kaasa erandi genereerimise (page-fault);
- Lisatud sysctl-seade vm.unprivileged_userfaultfd, mis haldab võimalust kasutada system call userfaultfd() alandatud õigustega protsessides;
- Võrgusüsteem
- IPv6 väravate tugi IPv4 marsruutidele. Näiteks on nüüd võimalik määrata marsruutimisreegleid kujul «ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0»;
- ICMPv6 jaoks on realiseeritud ioctl-kutsed icmp_echo_ignore_anycast ja icmp_echo_ignore_multicast for ICMP ECHO ignoreerimiseks anycast ja
multicast aadresside suhtes. võimalus ICMPv6 paketitöötluse intensiivsuse piiramise tegemiseks; - B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking») mähiste protokoll, mis võimaldab luua detsentraliseeritud võrke, kus iga sõlme on seotud naabruses olevate sõlmedega, tugi multicast-tõlkele unicast'iks, samuti võimalus juhtida sysfs'i kaudu;
- Ethtoolis uus parameeter Fast Link Down, mis võimaldab vähendada teabe saamise aega, kui link katkeb 1000BaseT jaoks (tavaliselt ulatub viivitus kuni 750 ms);
- võimalik kasutada omadusi Foo-Over-UDP tunnelite sidumise teatud aadressile, võrgu liigile või soketile (ainult üldise maski alusel sidumine oli varem võimalik);
- Traadita tekkis võimalus realiseerida töötlejate
OWE (Opportunistic Wireless Encryption) kasutajaruumi; - Netfilteris on nat-ahelates lisatud toetust aadresside perekonnale inet (näiteks on nüüd võimalik kasutada ühte tõlkereeglit ipv4 ja ipv6 töötlemiseks, ilma reeglite jagamiseta ipv4 ja ipv6 vahel);
- Netlinkis strict, et rangelt kontrollida kõikide teadete ja atribuutide kehtivust, milles ei lubata oodatud atribuutide suuruse ületamist ning ei lubata lisanduvate andmete lisamist sõnumite lõppu;
- Mälu ja süsteemiteenused
- Süsteemikutsesse clone() on lisatud lipp CLONE_PIDFD, mille määramisel tagastatakse vanemprotsessile failide descriptor «pidfd», mis on seotud loodud alamprotsessiga. Seda failide descriptorit saab näiteks kasutada signaalide saatmiseks, kartmata, et esineb võistlusolukord (vahetult pärast signaali saatmist võib siht-PID olla vabastatud protsessi lõpetamise tõttu ja hõivatud teise protsessiga);
- Teise versiooni cgroups on lisatud külmkappi kontrolliva funktsionaalsuse, millega saab peatada cgroupi töö ja ajutiselt vabastada mõned ressursid (CPU, sisend/väljund ja potentsiaalselt isegi mälu) teiste ülesannete täitmiseks. Juhtimine toimub cgroup.freeze ja cgroup.events juhtfailide kaudu cgroupi puus. 1 kirjutamine cgroup.freeze külmutab protsessid praeguses cgroupis ja kõigis alamgruppides. Kuna külmutamine võtab aega, on täiendavalt pakutud faili cgroup.events, mille kaudu saab teada operatsiooni lõpetamisest;
- mälu atribuute, mis on seotud igas sõlmes sysfsis, eksportimine, mis võimaldab kasutajaruumi kaudu määrata mälupankade töötlemise olemust heterogeensetes mälu süsteemides;
- PSI (Pressure Stall Information) alamsüsteemi on täiustatud, mis võimaldab analüüsida teavet erinevate ressursside (CPU, mälu, sisend/väljund) ootamise aja kohta teatud ülesannete või protsessigruppide jaoks cgroupis. PSI abil saavad kasutajaruumi töötlejad täpsemalt hinnata süsteemi koormuse taset ja töö aeglustumise iseloomu võrreldes Load Average'iga. Uues versioonis on tagatud tundlikkuse piirangute seadistamise tugi ja võimalus kasutada poll() kutsumist, et saada teateid seatud piirmäärade saavutamise kohta teatud ajavahemikus. See võimalus võimaldab Androidis jälgida mälupuudust varajases staadiumis, määrata probleemide allika ja lõpetada tähtsusetud rakendused, vältides kasutajale nähtavate probleemide teket. Stressitestide käigus tõestas PSI põhine jälgimistarkvara mälupoolse tarbimise kontrollimiseks 10 korda vähem valehäireid võrreldes vmpressure statistikaande.
- Koodi optimeerimine BPF-programmide kontrollimiseks on tehtud, mis suurte programmide jaoks teeb kontrollimise kuni 20 korda kiiremini. Optimeerimine võimaldas tõsta BPF-programmide suuruse piiri 4096 instruktsioonilt miljoni instruktsiooni peale;
- BPF-programmidele juurdepääs globaalsetele andmetele, mis lubab määrata programmidis globaalsed muutujad ja konstantsed väärtused;
- Lisatud , mis võimaldab BPF-programmidest kontrollida sysctl parameetrite muutusi;
- MIPS32 arhitektuuri jaoks on rakendatud JIT-kompileerija eBPF virtuaalses masinas;
- 32-bitise PowerPC arhitektuuri jaoks on lisatud tuge KASani (Kernel Address Sanitizer) tõrkeotsimise tööriista, mis aitab tuvastada mäluhäireid;
- x86-64 süsteemides on eemaldatud piirang, et kernelikrahhi (crash-dump) olekud saaksid paikneda mälupiirkondades, mis on kõrgemad kui 896MB;
- s390 arhitektuuri jaoks on rakendatud tuumade aadressiruumi randomiseerimise (KASLR) tugi ja digitaalsete allkirjade kontrollimise võimalus kernelile kexec_file_load() kaudu laadimisel;
- PA-RISC arhitektuuri jaoks on lisatud tugivõimekused kernelide tõrkeotsimise (KGDB), harupunktide ja kprobes'i jaoks;
- Varustus
- Paketis on draiver Mali 400/450 GPU jaoks, mida kasutatakse paljudes vanemates ARM arhitektuuril põhinevates kiipides. Uuemate Mali GPU-de jaoks on lisatud Panfrost draiver, mis toetab Midgardi arhitektuuril põhinevaid kiipe (Mali-T6xx, Mali-T7xx, Mali-T8xx) ja Bifrost (Mali G3x, G5x, G7x);
- Lisatud tugi heliseadmete jaoks, mis kasutavad avatud püsivara; (). Hoolimata avatud draiverite olemasolust jäi helikiipide püsivara siiski suletuks ja tarniti binaarses vormis. Sound Open Firmware projekt on välja töötatud ettevõtte Intel poolt avatud püsivara loomiseks DSP-kiipidele, mis on seotud heli töötlemisega (hiljem liitus arendusega ka Google). Praegu on projekti raames juba ette valmistatud avatud püsivara Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake ja IceLake platvormide helikiipidele;
- Intel (i915) DRM-draiverisse on lisatud tugi kiipidele
Elkhartlake (Gen11). Lisatud PCI-identifikaatorid Comet Lake (Gen9) kiipidele. Icelake kiipide tugi on stabiliseeritud, mille jaoks on samuti lisatud täiendavad seadmete PCI-identifikaatorid.
asünkroonne lülitusrežiim kahe videomälu puhverserveri vahel (async flip) mmio kaudu kirjutamisoperatsioonide teostamisel, mis on võimaldanud paljude 3D-rakenduste jõudlust oluliselt tõsta (näiteks 3DMark Ice Stormi testis tõusis jõudlus 300–400%). Lisatud on toe (High-bandwidth Digital Content Protection) videovoo krüpteerimiseks, mis edastatakse HDMI kaudu; - amdgpu draiverisse GPU Vega20 lisatud RAS (Reliability, Availability, Serviceability) tugi ja eksperimentaalne SMU 11 alamsüsteemi tugi, mis on asendanud Powerplay tehnoloogia. GPU Vega12 jaoks lisatud BACO režiimi (Bus Active, Chip Off) tugi. Lisatud algne XGMI tugi, kõrge andmeedastuskiirus (PCIe 4.0) GPU ühendamiseks. amdkfd draiveris on lisatud puuduolevad id-d Polaris10 GPU-l põhinevatele kaartidele;
- Nouveau draiverisse on lisatud tugi NVIDIA Turing 117 (TU117, mida kasutatakse GeForce GTX 1650) põhiste kaartide jaoks. Kconfig
seadistus vananenud funktsioonide väljalülitamiseks, mis ei ole enam kasutusel libdrm uutes väljaannetes; DRM API-s ja amdgpu draiveris on lisatud "timeline" sünkroonimisobjektide tugi, mis võimaldab loobuda traditsioonilistest lukustustest. - Staging harust on põhi koostisse kantud vboxvideo draiver virtuaalse GPU VirtualBoxi jaoks;
- Lisatud aspeed draiver GFX SoC ASPEED kiibistikule;
- Lisatud ARM SoC ja Intel Agilex (SoCFPGA) platvormide tugi, 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).
täielikult vaba tuum 5.2
Samas Latiino-Ameerika Vaba Tarkvara Fond
variant — Sound Open Firmware. Draiverites on välja lülitatud blobide laadimine
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp ja ucsi_ccg. On uuendatud blobide puhastamise koodi draiverites ja alamsüsteemides ixp4xx, imx-sdma, amdgpu, nouveau ja goya, samuti mikrokoodi dokumentatsioonis. Blobide puhastamine draiveris r8822be on lõpetatud selle eemaldamise tõttu.
🥇Linuxi 5.2 tuuma väljaanne | ProHoster
Allikas: opennet.ru
