Linuxi 5.17 kerneli väljalase

Pärast kahekuulist arendustööd esitles Linus Torvalds Linuxi kerneli 5.17 väljalaset. Märkimisväärsemate muudatuste hulgas: uus jõudlushaldussüsteem AMD protsessorite jaoks, võimalus failisüsteemides kasutajatunnuseid rekursiivselt kaardistada, kaasaskantavate kompileeritud BPF-programmide tugi, pseudojuhuslike arvude generaatori üleminek BLAKE2s algoritmile, RTLA utiliit. reaalajas täitmise analüüsiks, uus fscache taustaprogramm võrgu failisüsteemide vahemällu salvestamiseks, võimalus anonüümsetele mmap-toimingutele nimesid lisada.

Uus versioon sisaldab 14203 1995 parandust 37 arendajalt, plaastri suurus on 11366 MB (muudatused puudutasid 506043 250954 faili, lisati 44 5.17 koodirida, 16 15 rida kustutati). Umbes 4% kõigist versioonis 4 sisse viidud muudatustest on seotud seadme draiveritega, ligikaudu XNUMX% muudatustest on seotud riistvaraarhitektuurile omase koodi uuendamisega, XNUMX% on seotud võrgupinuga, XNUMX% on seotud failisüsteemidega ja XNUMX% on seotud sisemiste tuuma alamsüsteemidega.

Peamised uuendused kernelis 5.17:

  • Ketta alamsüsteem, I/O ja failisüsteemid
    • Rakendatud on ühendatud failisüsteemide kasutajatunnuste pesastatud kaardistamise võimalus, mida kasutatakse ühendatud välispartitsioonil oleva konkreetse kasutaja failide võrdlemiseks praeguse süsteemi teise kasutajaga. Lisatud funktsioon võimaldab teil rekursiivselt kasutada vastendamist failisüsteemide peal, mille jaoks vastendus on juba rakendatud.
    • Fscache alamsüsteem, mida kasutatakse võrgufailisüsteemide kaudu edastatavate andmete vahemällu salvestamiseks kohalikus failisüsteemis, on täielikult ümber kirjutatud. Uus teostus eristub koodi olulise lihtsustumise ning objekti olekute planeerimise ja jälgimise keerukate toimingute asendamisega lihtsamate mehhanismidega. Uue fscache tugi on rakendatud CIFS-failisüsteemis.
    • Fanotify FS-i sündmuste jälgimise alamsüsteem rakendab uut sündmusetüüpi FAN_RENAME, mis võimaldab teil koheselt katkestada failide või kataloogide ümbernimetamise toimingud (varem kasutati ümbernimetamise töötlemiseks kahte eraldi sündmust FAN_MOVED_FROM ja FAN_MOVED_TO).
    • Btrfs-failisüsteem on optimeerinud suurte kataloogide logimise ja fsynci toimingud, mida rakendatakse ainult indeksivõtmete kopeerimise ja logitud metaandmete hulga vähendamisega. Tugi on vaba ruumi kirjete indekseerimiseks ja suuruse järgi otsimiseks, mis on vähendanud latentsust ligikaudu 30% ja otsinguaega. Lubatud katkestada defragmentimistoimingud. Seadmete lisamise võimalus draivide vahel tasakaalustamisel on keelatud, st. kui ühendate failisüsteemi valikuga skip_balance.
    • Ceph failisüsteemi paigaldamiseks on pakutud välja uus süntaks, mis lahendab olemasolevad probleemid, mis on seotud IP-aadressidega sidumisega. Lisaks IP-aadressidele saate nüüd serveri tuvastamiseks kasutada klastri identifikaatorit (FSID): mount -t ceph [meiliga kaitstud]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4-failisüsteem on kolinud uuele paigaldus-API-le, mis eraldab ühendamisvalikute sõelumise ja superploki konfiguratsioonietapid. Oleme loobunud toest lazytime'i ja nolazytime'i ühendamisvalikutele, mis lisati ajutise muudatusena, et hõlbustada util-linuxi üleminekut lipu MS_LAZYTIME kasutamisele. Lisatud tugi siltide seadistamiseks ja lugemiseks FS-is (ioctl FS_IOC_GETFSLABEL ja FS_IOC_SETFSLABEL).
    • NFSv4 lisas faili- ja katalooginimedes toe töötamiseks tõstutundlikes failisüsteemides. NFSv4.1+ lisab koondseansside (magistraalvõrgu) määratlemise toe.
  • Mälu- ja süsteemiteenused
    • Lisatud amd-pstate draiver, mis tagab optimaalse jõudluse dünaamilise sageduse juhtimise. Draiver toetab AMD protsessoreid ja APU-sid alates Zen 2 põlvkonnast, mis on välja töötatud koostöös Valve'iga ja mille eesmärk on parandada energiahalduse tõhusust. Adaptiivsete sagedusmuutuste jaoks kasutatakse CPPC (Collaborative Processor Performance Control) mehhanismi, mis võimaldab muuta indikaatoreid täpsemalt (mitte piiratud kolme jõudlustasemega) ja reageerida olekumuutustele kiiremini kui varem kasutatud ACPI-põhine P-olek. draiverid (CPUFreq).
    • eBPF-i alamsüsteem pakub töötlejat bpf_loop(), mis pakub alternatiivset võimalust eBPF-programmides silmuste korraldamiseks, mida on kontrollija poolt kiirem ja lihtsam kontrollida.
    • Kerneli tasemel on juurutatud mehhanism CO-RE (Compile Once - Run Everywhere), mis võimaldab eBPF programmide koodi ainult ühe korra kompileerida ja kasutada spetsiaalset universaalset laadijat, mis kohandab laaditud programmi praeguste kerneli ja BTF tüüpidega. (BPF tüüpi vorming).
    • Privaatse anonüümse (malloci kaudu eraldatud) mälu piirkondadele on võimalik määrata nimesid, mis võib lihtsustada silumist ja rakendustes mälutarbimise optimeerimist. Nimed määratakse prctl-i kaudu lipuga PR_SET_VMA_ANON_NAME ja need kuvatakse kaustades /proc/pid/maps ja /proc/pid/smaps kujul "[anon: ]".
    • Tööülesannete ajakava jälgib ja kuvab failis /proc/PID/sched protsesside sunnitud jõudeolekus kuluvat aega, mida kasutatakse näiteks koormuse vähendamiseks protsessori ülekuumenemisel.
    • Lisatud gpio-sim moodul, mis on loodud GPIO kiipide testimiseks simuleerimiseks.
    • Käsule "perf ftrace" lisati alamkäsk "latency", et genereerida latentsusaja teabega histogramme.
    • Lisatud on komplekt “RTLA” utiliite töö reaalajas analüüsimiseks. See sisaldab utiliite, nagu osnoise (määrab operatsioonisüsteemi mõju ülesande täitmisele) ja timerlat (muudab taimeriga seotud viivitusi).
    • Teine plaastrite seeria on integreeritud lehefooliode kontseptsiooni juurutamisega, mis meenutavad liitlehti, kuid millel on täiustatud semantika ja selgem töökorraldus. Tomesi kasutamine võimaldab kiirendada mälu haldamist mõnes kerneli alamsüsteemis. Pakutud paigad viisid lõpule lehe vahemälu teisendamise tomeside kasutamiseks ja lisasid XFS-failisüsteemis tome'ide esialgse toe.
    • Lisatud "make mod2noconfig" ehitusrežiim, mis genereerib konfiguratsiooni, mis kogub kõik keelatud alamsüsteemid kerneli moodulite kujul.
    • Tõstetud on nõudeid LLVM/Clangi versioonile, mida saab tuuma ehitamiseks kasutada. Ehitamiseks on nüüd vaja vähemalt LLVM 11 versiooni.
  • Virtualiseerimine ja turvalisus
    • Pakutakse välja pseudojuhuslike arvude generaatori RDRAND uuendatud juurutamine, mis vastutab /dev/random ja /dev/urandom seadmete töötamise eest, mis on märkimisväärne üleminek BLAKE2s räsifunktsioonile SHA1 asemel entroopia segamise toimingute jaoks. Muudatus parandas pseudojuhuslike arvude generaatori turvalisust, kõrvaldades probleemse SHA1 algoritmi ja kõrvaldades RNG initsialiseerimisvektori ülekirjutamise. Kuna BLAKE2s algoritm on jõudluses SHA1-st parem, mõjutas selle kasutamine jõudlust positiivselt.
    • Lisatud kaitse protsessorite haavatavuste eest, mis on põhjustatud käskude spekulatiivsest täitmisest pärast tingimusteta edasiliikumise toiminguid. Probleem ilmneb käskude ennetava töötlemise tõttu, mis järgneb vahetult mälus olevale harukäsule (SLS, Straight Line Speculation). Kaitse lubamiseks on vaja luua praegu testitava GCC 12 versiooniga.
    • Lisatud on mehhanism viidete loendamise (refcount, referent-count) jälgimiseks, mille eesmärk on vähendada viidete loendamisel tekkivate vigade arvu, mis viivad juurdepääsuni mälule pärast selle vabastamist. Mehhanism on praegu piiratud võrgu alamsüsteemiga, kuid tulevikus saab seda kohandada tuuma muudele osadele.
    • Rakendatud on protsessimälu lehe tabeli uute kirjete laiendatud kontrollid, mis võimaldavad tuvastada teatud tüüpi kahjustusi ja peatada süsteemi, blokeerides rünnakud varajases staadiumis.
    • Lisati võimalus kerneli mooduleid lahti pakkida otse kerneli enda, mitte kasutajaruumis oleva käitleja poolt, mis võimaldab kasutada LoadPin LSM moodulit, et tagada tuumamoodulite mällu laadimine kinnitatud salvestusseadmest.
    • Komplektis on lipp "-Wcast-function-type", mis võimaldab hoiatada funktsiooniosutite ülekandmise kohta ühildumatule tüübile.
    • Xeni hüperviisori jaoks on lisatud virtuaalne hosti draiver pvUSB, mis pakub juurdepääsu külalissüsteemidele edastatud USB-seadmetele (võimaldab külalissüsteemidel pääseda juurde külalissüsteemile määratud füüsilistele USB-seadmetele).
    • Lisatud on moodul, mis võimaldab Wi-Fi kaudu suhelda IME (Intel Management Engine) alamsüsteemiga, mis on enamikes kaasaegsetes Inteli protsessoritega emaplaatides ja on realiseeritud eraldi mikroprotsessorina, mis töötab CPU-st sõltumatult.
    • ARM64 arhitektuuri jaoks on juurutatud KCSAN-i (Kernel Concurrency Sanitizer) silumistööriista tugi, mis on loodud kerneli võistlustingimuste dünaamiliseks tuvastamiseks.
    • 32-bitiste ARM-süsteemide jaoks on lisatud võimalus kasutada mäluga töötamisel vigade tuvastamiseks KFENCE mehhanismi.
    • KVM-i hüperviisor lisab toe AMX-i (Advanced Matrix Extensions) juhistele, mida rakendatakse tulevastes Intel Xeon Scalable serveriprotsessorites.
  • Võrgu alamsüsteem
    • Lisatud võrguseadmete poolele liikluskorraldusega seotud toimingute mahalaadimise tugi.
    • Lisati võimalus kasutada MCTP-d (Management Component Transport Protocol) üle jadaseadmete. MCTP-d saab kasutada halduskontrollerite ja nendega seotud seadmete (hostprotsessorid, välisseadmed jne) vaheliseks suhtlemiseks.
    • TCP pinu on optimeeritud, näiteks recvmsg-kõnede jõudluse parandamiseks on rakendatud pesapuhvrite viivitatud vabastamist.
    • CAP_NET_RAW volituse tasemel on režiimide SO_PRIORITY ja SO_MARK seadistamine funktsiooni setsockopt kaudu lubatud.
    • IPv4 puhul on toorpistikupesad lubatud siduda mittekohalike IP-aadressidega, kasutades suvandeid IP_FREEBIND ja IP_TRANSPARENT.
    • Lisatud on sysctl arp_missed_max, et konfigureerida ARP-monitori kontrollimise ajal esinevate rikete läviarvu, mille järel lülitatakse võrguliides keelatud olekusse.
    • Võimalus konfigureerida võrgu nimeruumide jaoks eraldi sysctl min_pmtu ja mtu_expires väärtused.
    • Lisati ethtool API-le sissetulevate ja väljaminevate pakettide puhvrite määramise ja suuruse määramise võimalus.
    • Netfilter on lisanud toe transiidi pppoe liikluse filtreerimiseks võrgusillas.
    • Moodul ksmbd, mis rakendab SMB3 protokolli kasutavat failiserverit, on lisanud võtmevahetuse toe, lubanud smbdirecti jaoks võrgupordi 445 ja lisanud toe parameetrile “smb2 max credit”.
  • Оборудование
    • Drm (Direct Rendering Manager) alamsüsteemile ja i915 draiverile on lisatud konfidentsiaalse teabe kuvamise ekraanide tugi, näiteks mõned sülearvutid on varustatud ekraanidega, millel on sisseehitatud konfidentsiaalne vaatamise režiim, mis muudab selle väljast vaatamise keeruliseks. . Lisatud muudatused võimaldavad ühendada selliste ekraanide jaoks spetsiaalseid draivereid ja juhtida konfidentsiaalseid sirvimisrežiime, määrates atribuudid tavalistes KMS-draiverites.
    • Amdgpu draiver sisaldab STB (Smart Trace Buffer) silumistehnoloogia tuge kõigi seda toetavate AMD GPU-de jaoks. STB muudab rikete analüüsimise ja probleemide allika tuvastamise lihtsamaks, salvestades spetsiaalsesse puhvrisse informatsiooni enne viimast riket sooritatud funktsioonide kohta.
    • Draiver i915 lisab toe Intel Raptor Lake S kiipidele ja võimaldab vaikimisi toetada Intel Alder Lake P kiipide graafika alamsüsteemi. Ekraani taustvalgustust on võimalik juhtida VESA DPCD liidese kaudu.
    • Fbcon/fbdev draiverites on konsooli riistvaralise kerimise kiirenduse tugi tagastatud.
    • Muudatuste jätkuv integreerimine Apple M1 kiipide toetamiseks. Rakendatud on võimalus kasutada simpledrm-draiverit Apple M1-kiibiga süsteemides püsivara pakutava kaadripuhvri kaudu väljastamiseks.
    • Lisatud on tugi ARM SoС-le, seadmetele ja plaatidele Snapdragon 7c, 845 ja 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183) Acer Chromebook 314), Mediatek MT7986a/b (kasutatakse WiFi-ruuterites), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320LP8i, NMX8 ULP2500. , Aspeed AST2600/AST32, Engicam i.Core STM1MP6, Allwinner Tanix TX6000, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6001/t14 MacBook Pro 16/XNUMX.
    • Lisatud on ARM Cortex-M55 ja Cortex-M33 protsessorite tugi.
    • Lisatud on CPU MIPS-il põhinevate seadmete tugi: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Lisatud on RISC-V arhitektuuril põhineva StarFive JH7100 SoC tugi.
    • Lisatud lenovo-yogabook-wmi draiver, et juhtida klaviatuuri taustvalgustust ja pääseda juurde Lenovo Yoga Booki erinevatele anduritele.
    • Lisatud asus_wmi_sensors draiver, et pääseda juurde anduritele, mida kasutatakse Asus X370, X470, B450, B550 ja X399 emaplaatidel, mis põhinevad AMD Ryzen protsessoritel.
    • Lisatud x86-android-tahvelarvuti draiver x86-põhistele tahvelarvutitele, mis tarnitakse koos Androidi platvormiga.
    • Lisatud on TrekStor SurfTab duo W1 puuteekraanide tugi ja Chuwi Hi10 Plus ja Pro tahvelarvutite elektrooniline pliiats.
    • SoC Tegra 20/30 draiverid on lisanud toite- ja pingehalduse toe. Võimaldab alglaadimist vanematel 32-bitistel Tegra SoC seadmetel, nagu ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 ja Pad TF300TG.
    • Lisatud draiverid Siemensi tööstusarvutitele.
    • Lisatud on tugi Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA ja Team Source043015 LCD paneelideleXNUMX TCMXNUMXTXNUMXSTXNUMX.
    • Lisatud tugi helisüsteemidele ja koodekitele AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Inteli süsteemid, mis kasutavad NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320x3ADC. Probleemid Tegra194 HD-audioga on lahendatud. Lisatud HDA tugi CS35L41 koodekitele. Täiustatud tugi helisüsteemidele Lenovo ja HP ​​sülearvutitele, samuti Gigabyte emaplaatidele.

Allikas: opennet.ru

Lisa kommentaar