Linuxi 5.19 kerneli väljalase

Pärast kahekuulist arendustööd esitles Linus Torvalds Linuxi kerneli 5.19 väljalaset. Märkimisväärsemate muudatuste hulgas: tugi LoongArchi protsessori arhitektuurile, "BIG TCP" plaastrite integreerimine, fscache nõudmisel režiim, koodi eemaldamine a.out-vormingu toetamiseks, võimalus kasutada püsivara tihendamiseks ZSTD-d, liides mälu kasutajaruumist väljatõstmise haldamine, pseudojuhuslike numbrite generaatori töökindluse ja jõudluse suurendamine, Inteli IFS-i (in-Field Scan), AMD SEV-SNP (turvaline pesaotsimine), Intel TDX-i (usaldusväärse domeenilaiendite) ja ARM tugi. SME (Scalable Matrix Extension) laiendused.

Linus ütles teadaandes, et tõenäoliselt kannab järgmine kerneli väljalase numbrit 6.0, kuna 5.x harus on kogunenud piisavalt väljalaseid, et muuta versiooninumbri esimest numbrit. Nummerduse muutmine toimub esteetilistel põhjustel ja see on formaalne samm, mis leevendab ebamugavust, mis on tingitud sarja paljude probleemide kuhjumisest.

Linus mainis ka, et kasutas väljalase loomiseks ARM64 arhitektuuril (Apple Silicon) põhinevat Apple’i sülearvutit koos Asahi Linuxi distributsioonil põhineva Linuxi keskkonnaga. See ei ole Linuse peamine tööjaam, kuid ta kasutas platvormi, et testida selle sobivust tuumaga töötamiseks ja tagada, et ta suudab kerneli väljalaseid toota ka reisides kerge sülearvutiga. Varem, aastaid tagasi, oli Linusel kogemusi Apple’i seadmete kasutamisega arenduseks – kunagi kasutas ta ppc970 protsessoril põhinevat arvutit ja Macbook Airi sülearvutit.

Uus versioon sisaldab 16401 2190 parandust 16206 arendajalt (viimases versioonis oli 2127 90 parandust 13847 arendajalt), paiga suurus on 1149456 MB (muudatused puudutasid 349177 39 faili, lisati 5.19 21 11 koodirida, kustutati 4, 3 rida). Umbes XNUMX% kõigist versioonis XNUMX 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 kernelis 5.19:

  • Ketta alamsüsteem, I/O ja failisüsteemid
    • EROFS (Enhanced Read-Only File System) failisüsteem, mis on mõeldud kasutamiseks kirjutuskaitstud partitsioonidel, on teisendatud kasutama alamsüsteemi fscache, mis pakub andmete vahemällu. Muudatus parandas oluliselt nende süsteemide jõudlust, milles EROFS-põhiselt pildilt käivitatakse suur hulk konteinereid.
    • Fscache alamsüsteemi on lisatud nõudmisel lugemisrežiim, mida kasutatakse EROFS-i optimeerimiseks. Uus režiim võimaldab korraldada lugemise vahemällu FS-piltidelt, mis asuvad kohalikus süsteemis. Erinevalt algselt saadaolevast töörežiimist, mis on keskendunud võrgufailisüsteemide kaudu edastatavate andmete vahemällu salvestamisele kohalikus failisüsteemis, delegeerib nõudmisel andmete allalaadimise ja vahemällu kirjutamise funktsioonid eraldi üksusesse. kasutajaruumis töötav taustprotsess.
    • XFS annab võimaluse salvestada miljardeid laiendatud atribuute i-sõlmes. Ühe faili maksimaalset ulatuste arvu on suurendatud 4 miljardilt 247-le. Rakendatud on režiim mitme laiendatud faili atribuudi aatomiliseks värskendamiseks korraga.
    • Btrfs-failisüsteem on optimeerinud töö lukkudega, mis võimaldas umbes 7% jõudluse kasvu, kui kirjutate otse nowait-režiimis. Toimingute jõudlus NOCOW-režiimis (ilma kopeerimiseta kirjutamisel) suureneb ligikaudu 3%. Lehe vahemälu koormus käsu "saada" käivitamisel on vähenenud. Alamlehtede minimaalne suurus on vähendatud 64K-lt 4K-le (kasutada saab kerneli lehtedest väiksemaid alamlehti). Radiksipuu kasutamiselt on tehtud üleminek XArrays algoritmile.
    • NFS-serverisse on lisatud režiim, mis pikendab päringutele vastamise lõpetanud kliendi seatud lukustusoleku säilimist. Uus režiim võimaldab teil luku kustutamist kuni päeva edasi lükata, kui mõni teine ​​klient ei taotle konkureerivat lukku. Tavarežiimis kustutatakse blokeering 90 sekundit pärast kliendi reageerimise lõpetamist.
    • Fanotify FS-i sündmuste jälgimise alamsüsteem rakendab lipu FAN_MARK_EVICTABLE, mille abil saate keelata näiteks siht-i-sõlmede kinnitamise vahemällu, et ignoreerida alamharusid ilma nende osi vahemällu kinnitamata.
    • FAT32 failisüsteemi draiver on lisanud toe faili loomise aja kohta teabe hankimiseks statx-süsteemikutse kaudu, rakendades stat(i) tõhusamat ja funktsionaalsemat versiooni, mis tagastab faili kohta laiendatud teabe.
    • ExFAT-draiverit on oluliselt optimeeritud, et võimaldada sektorite rühma üheaegset tühjendamist, kui dirsync-režiim on aktiivne, mitte järjestikuse sektoripõhise tühjendamise asemel. Vähendades plokipäringute arvu pärast optimeerimist, suurenes SD-kaardil suure hulga kataloogide loomise jõudlus olenevalt klastri suurusest rohkem kui 73–85%.
    • Kernel sisaldab ntfs3 draiveri esimest parandavat värskendust. Alates ntfs3 lisamisest 5.15 kernelisse mullu oktoobris ei ole draiverit uuendatud ja side arendajatega on katkenud, kuid nüüd on arendajad jätkanud muudatuste avaldamist. Pakutud paigad kõrvaldasid vead, mis viisid mälulekkeni ja krahhideni, lahendasid xfstestide käivitamisega seotud probleemid, puhastasid kasutamata koodi ja parandasid kirjavead.
    • OverlayFS-i jaoks on rakendatud ühendatud failisüsteemide kasutajatunnuste kaardistamise võimalus, mida kasutatakse ühendatud välispartitsioonil oleva konkreetse kasutaja failide sobitamiseks praeguse süsteemi teise kasutajaga.
  • Mälu- ja süsteemiteenused
    • Lisatud esialgne tugi Loongson 3 5000 protsessorites kasutatavale LoongArchi käsukomplekti arhitektuurile, mis rakendab uut RISC ISA-t, sarnaselt MIPS-i ja RISC-V-ga. LoongArchi arhitektuur on saadaval kolmes versioonis: 32-bitine (LA32R), tavaline 32-bitine (LA32S) ja 64-bitine (LA64).
    • Eemaldatud kood a.out käivitatava failivormingu toetamiseks, mis versioonis 5.1 aegunud. A.out-vorming on Linuxi süsteemides juba ammu aegunud ja Linuxi vaikekonfiguratsioonides kaasaegsed tööriistad ei toeta a.out-failide genereerimist. A.out-failide laadijat saab täielikult rakendada kasutajaruumis.
    • x86-spetsiifiliste alglaadimisvalikute tugi on lõpetatud: nosp, nosmap, nosmep, noexec ja noclflush).
    • Aegunud CPU h8300 arhitektuuri (Renesas H8/300) tugi, mis on pikka aega toeta seisnud, on lõpetatud.
    • Laiendatud võimalused, mis on seotud reageerimisega jagatud lukkude ("lõigatud lukud") tuvastamisele, mis ilmnevad mälus joondamata andmetele juurdepääsul, kuna aatomikäsu täitmisel läbivad andmed kaks protsessori vahemälu rida. Sellised ummistused põhjustavad jõudluse märkimisväärset langust. Kui varem andis kernel vaikimisi hoiatuse koos teabega blokeerimise põhjustanud protsessi kohta, siis nüüd aeglustatakse probleemset protsessi veelgi, et ülejäänud süsteemi jõudlust säilitada.
    • Lisatud on Inteli protsessorites juurutatud IFS-i (In-Field Scan) mehhanismi tugi, mis võimaldab käivitada madala tasemega CPU diagnostikateste, mis suudavad veaparanduskoodide (ECC) või paarsusbittide põhjal tuvastada probleeme, mida standardtööriistad ei tuvasta. . Teostatud testid on allalaaditava püsivara kujul, mis on loodud sarnaselt mikrokoodide värskendustele. Testi tulemused on saadaval sysfsi kaudu.
    • Lisatud on võimalus manustada kernelisse bootconfig fail, mis võimaldab lisaks käsurea suvanditele määrata ka kerneli parameetreid seadete faili kaudu. Manustamine toimub koostevaliku 'CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE» abil. Varem määrati bootconfig initrd-pildile manustamise teel. Kernelisse integreerimine võimaldab bootconfigi kasutada konfiguratsioonides ilma initrdita.
    • Rakendatud on Zstandardi algoritmi abil tihendatud püsivara allalaadimise võimalus. Süsteemile sysf on lisatud juhtfailide komplekt /sys/class/firmware/*, mis võimaldab teil käivitada püsivara laadimise kasutajaruumist.
    • Asünkroonne I/O liides io_uring pakub uut lippu IORING_RECVSEND_POLL_FIRST, mis seadistamisel saadab esmalt pollimise abil töötlemiseks võrgutoimingu, mis võib säästa ressursse olukordades, kus toimingu töötlemine teatud viivitusega on vastuvõetav. io_uring lisas ka socket() süsteemikutse toe, pakkus välja uued lipud failideskriptorite haldamise lihtsustamiseks, lisas "mitme pildi" režiimi mitme ühenduse korraga aktsepteerimiseks aktsepteerimise() kutses ja lisas toimingud NVMe edastamiseks. käsud otse seadmesse.
    • Xtensa arhitektuur toetab KCSAN-i (Kernel Concurrency Sanitizer) silumistööriista, mis on loodud kerneli võistlustingimuste dünaamiliseks tuvastamiseks. Lisatud on ka puhkerežiimi ja kaasprotsessorite tugi.
    • M68k arhitektuuri (Motorola 68000) jaoks on rakendatud Android Goldfish emulaatoril põhinev virtuaalmasin (platvormi simulaator).
    • AArch64 arhitektuuri jaoks on rakendatud Armv9-A SME (Scalable Matrix Extension) laienduste tugi.
    • eBPF-i alamsüsteem võimaldab salvestada trükitud viiteid kaardistruktuuridesse ja lisab ka dünaamiliste osutite toe.
    • Pakutakse välja uus ennetav mälu taastamise mehhanism, mis toetab kasutajaruumi juhtimist faili memory.reclaim abil. Määratud faili numbri kirjutamisel üritatakse cgroupiga seotud komplektist välja tõsta vastav arv baite.
    • Täiustatud mälukasutuse täpsus vahetuspartitsioonis olevate andmete tihendamisel zswap-mehhanismi abil.
    • RISC-V arhitektuuri jaoks pakutakse 32-bitiste käivitatavate failide käitamist 64-bitistes süsteemides, lisatakse režiim piiravate atribuutide sidumiseks mälulehtedega (näiteks vahemällu salvestamise keelamiseks) ja funktsioon kexec_file_load() .
    • 32-bitiste Armv4T ja Armv5 süsteemide toe rakendamine on kohandatud kasutamiseks universaalsetes mitmeplatvormilistes kerneli ehitustes, mis sobivad erinevatele ARM-süsteemidele.
  • Virtualiseerimine ja turvalisus
    • EFI alamsüsteem rakendab võimalust edastada konfidentsiaalselt salajast teavet külalissüsteemidesse ilma seda hostsüsteemile avaldamata. Andmed edastatakse turvalisuse/coco kataloogi kaudu securityfsis.
    • Lukustuskaitserežiim, mis piirab juurkasutajate juurdepääsu kernelile ja blokeerib UEFI Secure Boot möödasõiduteed, on kõrvaldanud lünga, mis võimaldas kaitsest mööda minna kerneli siluriga manipuleerides.
    • Kaasas on plaastrid, mille eesmärk on parandada pseudojuhuslike numbrite generaatori töökindlust ja jõudlust.
    • Clang 15 abil ehitamisel rakendatakse tuumastruktuuride randomiseerimise mehhanismi tuge.
    • Landlock mehhanism, mis võimaldab piirata protsesside rühma interaktsiooni väliskeskkonnaga, pakub tuge reeglitele, mis võimaldavad kontrollida failide ümbernimetamise toimingute täitmist.
    • IMA (Integrity Measurement Architecture) alamsüsteem, mis on loodud opsüsteemi komponentide terviklikkuse kontrollimiseks digitaalallkirjade ja räside abil, on üle viidud failide kontrollimiseks mooduli fs-verity kasutamisele.
    • Toimingute loogikat privilegeerimata juurdepääsu keelamisel eBPF alamsüsteemile on muudetud - varem olid kõik süsteemikutsega bpf() seotud käsud keelatud ja alates versioonist 5.19 jäetakse juurdepääs käskudele, mis ei vii objektide loomiseni. . See käitumine nõuab BPF-programmi laadimiseks privilegeeritud protsessi, kuid siis saavad privilegeerimata protsessid programmiga suhelda.
    • Lisatud on tugi AMD SEV-SNP (Secure Neted Paging) laiendusele, mis pakub turvalist tööd pesastatud mälu lehtede tabelitega ning kaitseb AMD EPYC protsessorite "undeSErVed" ja "SEVerity" rünnakute eest, mis võimaldavad mööda minna AMD SEV-st (Secure Encrypted Virtualization). ) kaitsemehhanism.
    • Lisatud on Inteli TDX (usaldusväärse domeenilaienduse) mehhanismi tugi, mis võimaldab blokeerida kolmandate osapoolte katsed pääseda juurde virtuaalmasinate krüptitud mälule.
    • Plokkseadmete emuleerimiseks kasutatav virtio-blk draiver on lisanud pollimise abil I/O toe, mis on testide kohaselt vähendanud latentsust umbes 10%.
  • Võrgu alamsüsteem
    • Pakett sisaldab rida BIG TCP plaastreid, mis võimaldavad teil suurendada TCP-paketi maksimaalset paketi suurust 4 GB-ni, et optimeerida kiirete sisemiste andmekeskuste võrkude tööd. Sarnane paketi suuruse suurenemine 16-bitise päisevälja suurusega saavutatakse "jumbo" pakettide rakendamisega, mille IP päises on suuruseks seatud 0 ja tegelik suurus edastatakse eraldi 32-bitisena. eraldi lisatud päises. Jõudlustestimisel suurendas paketi suuruse 185 KB määramine läbilaskevõimet 50% ja vähendas oluliselt andmeedastuse latentsust.
    • Jätkati tööd tööriistade integreerimisel võrgupinu, et jälgida pakettide väljalangemise põhjuseid (põhjuskoodid). Põhjuskood saadetakse, kui paketiga seotud mälu vabastatakse ja see võimaldab selliseid olukordi nagu päisevigade tõttu pakettidest loobumine, rp_filter võltsimise tuvastamine, kehtetu kontrollsumma, mälu on otsas, IPSec XFRM reeglid käivituvad, vale järjekorranumber TCP jne.
    • Lisatud tugi MPTCP (MultiPath TCP) ühenduste tagasilükkamiseks, et kasutada tavalist TCP-d olukordades, kus teatud MPTCP funktsioone ei saa kasutada. MPTCP on TCP-protokolli laiendus TCP-ühenduse toimimise korraldamiseks koos pakettide samaaegse edastamisega mitmel marsruudil erinevate IP-aadressidega seotud erinevate võrguliideste kaudu. Lisatud API MPTCP-voogude juhtimiseks kasutajaruumist.
  • Оборудование
    • Lisatud on üle 420 400 amdgpu draiveriga seotud koodirea, millest umbes 22.5 21 rida on automaatselt genereeritud päisefailid ASIC-registriandmete jaoks AMD GPU draiveris, ja veel 4 21 rida pakuvad AMD SoC13 toe esmast juurutamist. AMD GPU-de draiverite kogumaht ületas 3 miljonit koodirida. Lisaks SoC7000-le sisaldab AMD draiver SMU XNUMX.x (System Management Unit) tuge, USB-C ja GPUVM värskendatud tuge ning on valmis toetama järgmise põlvkonna RDNAXNUMX (RX XNUMX) ja CDNA (AMD Instinct) platvormid.
    • I915 draiveril (Intel) on laiendatud toitehaldusega seotud võimalused. Lisati identifikaatorid sülearvutites kasutatavatele Intel DG2 (Arc Alchemist) GPU-dele, pakkus esialgset tuge platvormile Intel Raptor Lake-P (RPL-P), lisati teave Arctic Sound-M graafikakaartide kohta, rakendatud ABI arvutusmootoritele, lisatud DG2 kaartide tugi Tile4 vormingule; Haswelli mikroarhitektuuril põhinevate süsteemide jaoks on rakendatud DisplayPort HDR tugi.
    • Nouveau draiver on lülitunud drm_gem_plane_helper_prepare_fb töötleja kasutamisele; mõnele struktuurile ja muutujale on rakendatud staatilist mälujaotust. Mis puudutab NVIDIA avatud lähtekoodiga tuumamoodulite kasutamist Nouveau's, siis senine töö taandub vigade tuvastamisele ja kõrvaldamisele. Tulevikus plaanitakse avaldatud püsivara kasutada draiveri jõudluse parandamiseks.
    • Lisatud M1 kiibil põhineva Apple'i arvutites kasutatava NVMe kontrolleri draiver.

Samal ajal moodustas Ladina-Ameerika Vaba Tarkvara Sihtasutus täiesti tasuta kerneli 5.19 versiooni - Linux-libre 5.19-gnu, mis on puhastatud püsivara elementidest ja draiveritest, mis sisaldavad mittevabu komponente või koodilõike, mille ulatus on tootja poolt piiratud. Uus versioon puhastab pureLiFi X/XL/XC ja TI AMx3 Wkup-M3 IPC draiverid. Värskendatud blob-puhastuskood Silicon Labs WFX-s, AMD amdgpu-s, Qualcomm WCNSS perifeerses pildilaaduris, Realtek Bluetoothis, Mellanox Spectrumis, Marvell WiFi-Exis, Intel AVS-is, IFS-is, pu3-imgu draiverites ja alamsüsteemides. Rakendatud on Qualcomm AArch64 seadmepuu failide töötlemine. Lisati tugi uuele Sound Open Firmware komponentide nimetamisskeemile. Lõpetas ATM Ambassadori draiveri puhastamise, mis eemaldati tuumast. Plekkide puhastamise haldamine HDCP-s ja Mellanox Core'is on viidud eraldi kconfigi siltidele.

Allikas: opennet.ru

Lisa kommentaar