Linuxi 5.11 kerneli väljalase

Pärast kahekuulist arendustööd esitles Linus Torvalds Linuxi kerneli 5.11 väljalaset. Märkimisväärsemate muudatuste hulgas on Intel SGX enklaavide tugi, uus mehhanism süsteemikõnede pealtkuulamiseks, virtuaalne abisiin, moodulite kokkupanemise keeld ilma MODULE_LICENSE(), süsteemikõnede kiire filtreerimisrežiim seccomp-is, toe lõpetamine ia64 arhitektuur, WiMAX-tehnoloogia ülekandmine "lavastamise" harusse, võimalus kapseldada SCTP UDP-sse.

Uus versioon sisaldab 15480 1991 parandust 72 arendajalt, paiga suurus on 12090 MB (muudatused puudutasid 868025 261456 faili, lisati 46 5.11 koodirida, 16 13 rida kustutati). Umbes 3% kõigist versioonis 4 tehtud 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:

  • Ketta alamsüsteem, I/O ja failisüsteemid
    • Btrfs-i on lisatud mitu paigaldusvõimalust, mida saab kasutada kahjustatud failisüsteemist andmete taastamisel: "rescue=ignorebadroots" paigaldamiseks, hoolimata mõne juurpuu kahjustusest (maht, uuid, andmete ümberpaiknemine, seade, csum, vaba ruum), " Rescue=ignoredatacsums” andmete kontrollsummade kontrollimise keelamiseks ja „rescue=all”, et lubada samaaegselt režiimid „ignorebadroots”, „ignoredatacsums” ja „nologreplay”. Ühendusvalik "inode_cache", mis varem oli aegunud, on lõpetatud. Kood on ette valmistatud metaandmete ja lehe suurusest (PAGE_SIZE) väiksemate andmetega plokkide toetamiseks, samuti tsoneeritud ruumi eraldamise režiimi toetamiseks. Puhverdamata (Direct IO) päringud on teisaldatud iomapi infrastruktuuri. Mitmete toimingute jõudlust on optimeeritud, mõnel juhul võib kiirendus ulatuda kümnete protsendini.
    • XFS rakendab "needsrepair" lippu, mis annab märku remondi vajadusest. Kui see lipp on määratud, ei saa failisüsteemi ühendada enne, kui utiliit xfs_repair on lipu lähtestanud.
    • Ext4 pakub ainult veaparandusi ja optimeerimisi ning koodi puhastamist.
    • NFS-i kaudu ühendatud failisüsteemide reeksport on lubatud (st NFS-i kaudu ühendatud partitsiooni saab nüüd eksportida NFS-i kaudu ja kasutada vahemäluna).
    • Süsteemikõne close_range(), mis võimaldab protsessil sulgeda korraga terve hulga avatud failideskriptoreid, on lisanud suvandi CLOSE_RANGE_CLOEXEC, et sulgeda deskriptorid sulgemisrežiimis.
    • F2FS-failisüsteem lisab uued ioctl()-kutsed, et võimaldada kasutajaruumis kontrollida, milliseid faile tihendatud kujul salvestatakse. Lisatud "compress_mode=" mount variant, et valida, kas paigutada tihendustöötleja kerneli poolele või kasutajaruumi.
    • Võimalus ühendada ülekatteid privilegeerimata protsesside abil, kasutades eraldi kasutajanimeruumi. Turvamudeli rakendamisele vastavuse kontrollimiseks viidi läbi täielik koodiaudit. Overlayfs lisab ka võimaluse käitada failisüsteemi kujutiste koopiaid kasutades, keelates valikuliselt UUID-kontrolli.
    • Failisüsteemis Ceph on lisatud msgr2.1 protokolli tugi, mis võimaldab andmete krüpteeritud kujul edastamisel kasutada AES-GCM algoritmi.
    • Dm-multipath moodul rakendab võimalust I/O päringute marsruudi valimisel arvestada protsessori afiinsusega ("IO afiinsus").
  • Mälu- ja süsteemiteenused
    • Lisatud on uus süsteemikõne pealtkuulamise mehhanism, mis põhineb prctl()-l, mis võimaldab genereerida kasutajaruumist erandeid konkreetsele süsteemikõnele juurdepääsul ja emuleerida selle täitmist. See funktsioon on Wine'is ja Protonis vajalik Windowsi süsteemikutsete emuleerimiseks, mis on vajalik ühilduvuse tagamiseks mängude ja programmidega, mis sooritavad otse Windows API-st mööda minnes süsteemikutseid (näiteks kaitseks volitamata kasutamise eest).
    • Süsteemikutsel userfaultfd(), mis on loodud käsitlema lehetõrkeid (juurdepääs jaotamata mälulehtedele) kasutajaruumis, on nüüd võimalik keelata erandite käsitlemine, mis toimub kerneli tasemel, et muuta teatud haavatavuste ärakasutamine keerulisemaks.
    • BPF-i alamsüsteem on lisanud ülesande-kohaliku salvestusruumi toe, mis pakub andmete sidumist konkreetse BPF-i töötlejaga.
    • BPF-programmide mälutarbimise arvestus on täielikult ümber kujundatud – BPF-objektide mälukasutuse haldamiseks on pakutud memlocki rlimiti asemel cgroup-kontroller.
    • BTF (BPF Type Format) mehhanism, mis pakub tüübikontrolli teavet BPF-i pseudokoodis, toetab tuumamooduleid.
    • Lisatud on shutdown(), renameat2() ja unlinkat() süsteemikutsete tugi io_uring asünkroonsele I/O liidesele. Funktsiooni io_uring_enter() kutsumisel on lisatud võimalus määrata ajalõpu (saate kontrollida argumendi tuge ajalõpu määramiseks lipu IORING_FEAT_EXT_ARG abil).
    • Intel Itaniumi protsessorites kasutatav ia64 arhitektuur on viidud orvude kategooriasse, mis tähendab, et testimine on lõppenud. Hewlett Packard Enterprise lõpetas uute Itaniumi seadmete tellimuste vastuvõtmise ja Intel tegi seda eelmisel aastal.
    • MicroBlaze'i arhitektuuril põhinevate süsteemide tugi, mis ei sisalda mäluhaldusüksust (MMU), on lõpetatud. Selliseid süsteeme pole igapäevaelus ammu nähtud.
    • MIPS-arhitektuuri jaoks on utiliidi gcov abil lisatud koodi katvuse testimise tugi.
    • Lisatud on virtuaalse abisiini tugi liidestamiseks multifunktsionaalsete seadmetega, mis ühendavad erinevaid draivereid nõudvaid funktsioone (näiteks Etherneti ja RDMA toega võrgukaardid). Siini saab kasutada seadmele primaarse ja sekundaarse draiveri määramiseks olukordades, kus MFD (Multi-Function Devices) alamsüsteemi kasutamine on problemaatiline.
    • RISC-V arhitektuuri jaoks on lisatud tugi CMA (Contiguous Memory Allocator) mälujaotussüsteemile, mis on optimeeritud suurte külgnevate mälualade jaotamiseks mälulehtede liikumise tehnikate abil. RISC-V jaoks on juurutatud ka tööriistad, mis piiravad juurdepääsu /dev/mem ja võtavad arvesse katkestuste töötlemise aega.
    • 32-bitiste ARM-süsteemide jaoks on lisatud KASani (Kernel address Sanitizer) silumistööriista tugi, mis aitab tuvastada vigu mäluga töötamisel. 64-bitise ARM-i jaoks on KASani teostus teisendatud kasutama MTE-silte (MemTag).
    • Lisatud on süsteemikutse epoll_pwait2(), et lubada ajalõppusid nanosekundi täpsusega (epoll_wait kõne manipuleerib millisekunditega).
    • Koostamissüsteem kuvab nüüd veateate, kui üritatakse ehitada laaditavaid kerneli mooduleid, mille koodilitsents ei ole makro MODULE_LICENSE() abil määratletud. Nüüdsest põhjustab makro EXPORT_SYMBOL() kasutamine staatiliste funktsioonide jaoks ka koostamise vea.
    • Lisatud tugi GEM-objektide kaardistamiseks sisend-väljundi jaoks kasutatavast mälust, mis võimaldas mõnel arhitektuuril kaadripuhvriga tööd kiirendada.
    • Kconfig on loobunud Qt4 toetamisest (säilitades samal ajal Qt5, GTK ja Ncursesi toe).
  • Virtualiseerimine ja turvalisus
    • Seccomp() süsteemikutsele on lisatud kiirreageerimisrežiimi tugi, mis võimaldab protsessile lisatud pideva toiminguga bitmapi põhjal väga kiiresti kindlaks teha, kas teatud süsteemikutse on lubatud või keelatud, mis ei nõua jooksmist. BPF käitleja.
    • Integreeritud kerneli komponendid Intel SGX (Software Guard eXtensions) tehnoloogial põhinevate enklaavide loomiseks ja haldamiseks, mis võimaldab rakendustel käivitada koodi eraldatud krüpteeritud mälupiirkondades, millele ülejäänud süsteemil on piiratud juurdepääs.
    • Osana algatusest piirata juurdepääsu kasutajaruumist MSR-ile (mudelispetsiifiline register) kirjutamine registrisse MSR_IA32_ENERGY_PERF_BIAS, mis võimaldab muuta protsessori energiatõhususe režiimi (“normaalne”, “jõudlus”, “energiasääst”). , on keelatud.
    • Võimalus keelata kõrge prioriteediga ülesannete migratsioon protsessorite vahel on reaalajas süsteemide kernel-rt harust teisaldatud.
    • ARM64 süsteemide jaoks on lisatud võimalus kasutada signaalikäitleja mäluaadresside jaoks MTE silte (MemTag, Memory Tagging Extension). MTE kasutamine on lubatud, määrates sigaction() suvandi SA_EXPOSE_TAGBITS ja see võimaldab teil kontrollida osutite õiget kasutamist, et blokeerida haavatavuste ärakasutamine, mis on põhjustatud juba vabastatud mäluplokkidele juurdepääsust, puhvri ületäitumisest, initsialiseerimiseelsetest juurdepääsudest ja kasutamisest väljaspool. praegune kontekst.
    • Lisati parameeter "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING", mis võimaldab dm-verity alamsüsteemil kontrollida teisesesse võtmerõngasse paigutatud sertifikaatide räsiallkirju. Praktikas võimaldab seadistus kontrollida mitte ainult kernelisse sisseehitatud, vaid ka töö käigus laaditud sertifikaate, mis võimaldab sertifikaate värskendada ilma kogu kerneli uuendamata.
    • Kasutajarežiim Linux on lisanud toe peatamisest kuni jõudeolekuni, mis võimaldab teil keskkonda külmutada ja kasutada SIGUSR1 signaali puhkerežiimist ärkamiseks.
    • Virto-mem mehhanism, mis võimaldab teil virtuaalmasinate mälu kuumühenda ja lahti ühendada, on lisanud Big Block Mode (BBM) toe, mis võimaldab üle kanda või võtta mälu tuumamälu suurusest suuremates plokkides. plokk, mis on vajalik VFIO optimeerimiseks QEMU-s.
    • TLS-i kerneli juurutusse on lisatud šifri CHACHA20-POLY1305 tugi.
  • Võrgu alamsüsteem
    • 802.1Q (VLAN) jaoks on rakendatud ühenduse tõrkehaldusmehhanism (CFM, Connectivity Fault Management), mis võimaldab tuvastada, kontrollida ja isoleerida tõrkeid võrkudes, millel on virtuaalsed sillad (Virtual Bridged Networks). Näiteks saab CFM-i kasutada probleemide eraldamiseks võrkudes, mis hõlmavad mitut sõltumatut organisatsiooni, mille töötajatel on juurdepääs ainult oma seadmetele.
    • Lisatud tugi SCTP-protokolli pakettide UDP-pakettidesse kapseldamiseks (RFC 6951), mis võimaldab kasutada SCTP-d võrkudes vanemate aadressi tõlkijatega, mis otseselt SCTP-d ei toeta, samuti rakendada SCTP-d süsteemides, mis ei paku otsest juurdepääsu IP-le. kiht.
    • WiMAX-tehnoloogia rakendamine on viidud etapiviisiliselt ja see eemaldatakse tulevikus, kui WiMAX-i vajavaid kasutajaid pole. WiMAXi ei kasutata enam avalikes võrkudes ja kernelis on ainus draiver, millega WiMAXi saab kasutada, vananenud Intel 2400m draiver. WiMAX-i tugi lõpetati NetworkManageri võrgukonfiguraatoris 2015. aastal. Praegu on WiMax peaaegu täielikult asendatud selliste tehnoloogiatega nagu LTE, HSPA+ ja Wi-Fi 802.11n.
    • Tööd on tehtud sissetuleva TCP liikluse töötlemise jõudluse optimeerimiseks nullkoopia režiimis, st. ilma täiendava kopeerimiseta uutesse puhvritesse. Keskmise suurusega liikluse puhul, mis hõlmab kümneid või mitusada kilobaiti andmeid, on zerocopy kasutamine recvmsg() asemel märgatavalt tõhusam. Näiteks võimaldasid juurutatud muudatused tõsta nullkoopia kasutamisel 32 KB suuruste sõnumitega RPC-stiilis liikluse töötlemise efektiivsust 60-70%.
    • Lisatud uued ioctl() kutsed, et luua mitut PPP linki hõlmavaid võrgusildu. Kavandatav võimalus võimaldab kaadritel liikuda ühest kanalist teise, näiteks PPPoE-st PPPoL2TP seansile.
    • Integratsioon MPTCP (MultiPath TCP) tuuma, mis on TCP-protokolli laiendus TCP-ühenduse toimimise korraldamiseks koos pakettide samaaegse edastamisega mitmel marsruudil erinevate IP-aadressidega seotud erinevate võrguliideste kaudu. Uus versioon tutvustab ADD_ADDR suvandi tuge, et reklaamida saadaolevaid IP-aadresse, millega saab olemasolevale MPTCP-ühendusele uute voogude lisamisel ühenduse luua.
    • Lisatud on võimalus seadistada toiminguid, kui ühenduse pollimise eelarve on ületatud (busy-polling). Varem saadaval olnud SO_BUSY_POLL-režiim tähendas eelarve ammendumisel lülitumist softirq-ile. Rakenduste jaoks, mis peavad jätkama küsitluse kasutamist, pakutakse välja uus valik SO_PREFER_BUSY_POLL.
    • IPv6 toetab SRv6 End.DT4 ja End.DT6 režiime, mida kasutatakse mitme kasutajaga IPv4 L3 VPN-ide ja VRF-i (virtuaalne marsruutimine ja edastamine) loomiseks.
    • Netfilter ühendas komplekti avaldiste rakendamise, mis võimaldas määrata mitu avaldist iga komplekti loendi elemendi jaoks.
    • 802.11 juhtmevabale pinule on lisatud API-d, et konfigureerida SAR-i võimsuspiiranguid, samuti AE PWE ja HE MCS parameetreid. Inteli iwlwifi draiver on lisanud toe sagedusalale 6 GHz (ülikõrgsagedus). Qualcomm Ath11k draiver on lisanud FILS-i (Fast Initial Link Setup, standardiseeritud kui IEEE 802.11ai) tehnoloogia, mis võimaldab teil vabaneda rändlusviivitustest migratsiooni ajal ühest pääsupunktist teise.
  • Оборудование
    • Amdgpu draiver toetab AMD "Green Sardine" APU (Ryzen 5000) ja "Dimgrey Cavefish" GPU (Navi 2), samuti esialgset tuge AMD Van Gogh APU-le Zen 2 tuumaga ja RDNA 2 GPU-ga (Navi 2). Lisatud on uute Renoir APU identifikaatorite tugi (Zen 2 CPU ja Vega GPU baasil).
    • Inteli videokaartide draiver i915 toetab IS-i (Integer scaling) tehnoloogiat koos skaala suurendamise filtriga, võttes arvesse naaberpikslite olekut (lähima naabri interpolatsioon), et määrata puuduvate pikslite värv. Laiendatud on diskreetsete Intel DG1 kaartide tugi. Rakendatud on “Big Joiner” tehnoloogia tugi, mis on olnud olemas alates Ice Lake / Gen11 kiipidest ja võimaldab kasutada ühte transkooderit kahe voo töötlemiseks, näiteks ühe DisplayPorti kaudu 8K ekraanile väljastamiseks. Lisatud on režiim asünkroonseks vahetamiseks kahe videomälus oleva puhvri vahel (asünkroonne flip).
    • Uus draiver on lisanud esialgse toe NVIDIA GPU-dele, mis põhinevad Ampere mikroarhitektuuril (GA100, GeForce RTX 30xx), mis on seni piirdunud videorežiimide juhtimise tööriistadega.
    • Lisatud on LCD-paneelides kasutatava 3WIRE-protokolli tugi. Lisatud tugi novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 ja ABT Y030XX067A 3.0 paneelidele. Eraldi võime märkida OnePlus 6 ja 6T nutitelefonide paneeli toe, mis võimaldas korraldada seadmetes muutmata tuuma laadimist.
    • Lisatud tugi Inteli esimesele diskreetsele USB4 hostkontrollerile Maple Ridge.
    • Lisatud on tugi Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI ja XCVR, Realtek RT715 ja Qualcomm SM8250 helikodekitele.
    • Lisatud tugi ARM-plaatidele, seadmetele ja platvormidele: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity​2CM, Nu730 Arvotonda ​Mikrotik põhineb Marvell Prestera 382DX98-l, serverid Nuvoton NPCM3236 BMC-ga, Kontron i.MX750M Mini, Espressobin Ultra, "Trogdor" Chromebook, Kobol Helios8, Engicam PX64.Core.
    • Sisseehitatud tugi Ouya mängukonsoolile, mis põhineb NVIDIA Tegra 3-l.

Samal ajal moodustas Ladina-Ameerika Vaba Tarkvara Sihtasutus täiesti tasuta 5.11 tuuma versiooni - Linux-libre 5.11-gnu, mis on puhastatud püsivara elementidest ja draiveritest, mis sisaldavad mittevabu komponente või koodilõike, mille ulatus on piiratud. tootja poolt. Uus väljalase puhastab draiverid qat_4xxx (krüpto), lt9611uxcm (dsi/hdmi sild), ccs/smia++ (sensor), ath11k_pci, nxp helitransiiveri ja mhi pci kontrolleri jaoks. Värskendatud blobipuhastuskood draiverites ja alamsüsteemides amdgpu, btqca, btrtl, btusb, i915 csr. Keelatud uued plekid m3 rproc, idt82p33 ptp kellas ja qualcomm arm64-s.

Allikas: opennet.ru

Lisa kommentaar