Linuxi tuuma versioon 5.19

PĂ€rast kahte kuud arendust tutvustas Linus Torvalds Linuxi tuuma versioon 5.19. Olulisemate muudatuste hulka kuuluvad: LoongArch arhitektuuri tugi, BIG TCP patĆĄide integreerimine, fscache 'on-demand' reĆŸiim, a.out formaadi toe eemaldamine, ZSTD kasutamise vĂ”imalus pĂŒsivara tihendamiseks, liides mĂ€lestuse vĂ€ljasurumise haldamiseks kasutaja ruumist, suurenenud usaldusvÀÀrsus ja tĂ”husus pseudojuhuslike arvude generaatori jaoks, ning Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) ja ARM SME (Scalable Matrix Extension) laienduste tugi.

Teates mÀrkis Linus, et jÀrgmine tuuma versioon saab tÔenÀoliselt numbriks 6.0, kuna 5.x haru on kogunud piisavalt vÀljaandeid, et versiooni numbri esimest numbrit muuta. Numbrite muutmine toimub esteetilistel kaalutlustel ja on formaalne samm, mis kÔrvaldab ebamugavust, mis tuleneb suurte vÀljaannete hulgast sarjas.

Samuti mainis Linus, et kasutas vĂ€ljalaske koostamiseks Apple'i ARM64 arhitektuuril pĂ”hinevat sĂŒlearvutit (Apple Silicon) koos Asahi Linuxi jaotusega. See ei ole Linuse pĂ”hitöö arvuti, kuid ta kasutas seda platvormi, et testida selle sobivust tuuma kallal töötamiseks ja olla kindel, et saab vĂ€ljas olles tuuma versioone koostada, olles kĂ€epĂ€rast kerge sĂŒlearvuti. Aastate eest oli Linusel kogemusi Apple'i seadmete kasutamisega arendamiseks — kunagi kasutas ta ppc970 protsessoriga arvutit ja Macbook Air sĂŒlearvutit.

Uude versiooni on lisatud 16401 parandust 2190 arendajalt (eelmises versioonis oli 16206 parandust 2127 arendajalt), plaastri suurus on 90 MB (muudatused puudutasid 13847 faili, lisatud on 1149456 rida koodi, kustutatud 349177 rida). Umbes 39% kĂ”igist 5.19 vĂ€ljaandes esitatud muudatustest on seotud seadme draiveritega, umbes 21% muudatustest on seotud riistvaraarhitektuurile spetsiifilise koodi vĂ€rskendamisega, 11% on seotud vĂ”rgupilviga, 4% — failisĂŒsteemidega ja 3% tuuma sisealamsĂŒsteemidega.

Peamised uuendused tuumas 5.19:

  • Disski alamsĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
    • EROFS (Enhanced Read-Only File System) failisĂŒsteem, mis on mĂ”eldud kasutamiseks ainult lugemise reĆŸiimis olevatel partitsioonidel, on muudetud kasutama fscache alam-sĂŒsteemi, mis tagab andmete vahemĂ€lastamise. Muudatus on vĂ”imaldanud mĂ€rkimisvÀÀrselt parandada sĂŒsteemide jĂ”udlust, kus palju konteinerite kĂ€ivitatakse EROFS-i pildilt.
    • Fscache alam-sĂŒsteemi on lisatud nĂ”udmise kaupa lugemise reĆŸiim („on-demand“), mis on aktiveeritud EROFS-i optimeerimiseks. Uus reĆŸiim vĂ”imaldab korraldada vahemĂ€lastamist lugemisel failisĂŒsteemi piltidest, mis asuvad kohalikus sĂŒsteemis. Erinevalt algselt saadaval olnud reĆŸiimist, mis keskendub andmete vahemĂ€lastamisele kohalike failisĂŒsteemide kaudu, delegeerib „on-demand“ reĆŸiim andmete hankimise ja vahemĂ€llu kirjutamise funktsioonid eraldi taustaprotsessile, mis töötab kasutaja ruumis.
    • XFS-iga on lisatud vĂ”imalus salvestada miljardeid laiendatud atribuute i-node'is. Ühe faili jaoks on ekstentide maksimaalne arv suurendatud 4 miljardilt 247-ni. KĂ€ivitatud on reĆŸiim, mis vĂ”imaldab mitme faili laiendatud atribuudi aatomaarset uuendamist.
    • FailisĂŒsteemis Btrfs on optimeeritud töötamine lukustustega, mis on vĂ”imaldanud saavutada umbes 7% suurema jĂ”udluse otse kirjutamisel nowait reĆŸiimis. NOCOW (ilma copy-on-write') reĆŸiimi tegevuste jĂ”udlus on suurenenud ligikaudu 3%. Lehe vahemĂ€lu koormus on vĂ€henenud kĂ€su 'send' töötamisel. Alahelvede minimaalne suurus on vĂ€henenud 64K-lt 4K-le (vĂ”ib kasutada lehti, mille suurus on vĂ€iksem kui tuuma lehtede suurus). Üleminek on tehtud baaspuidust (radix tree) algoritmilt XArrays-le.
    • NFS-serverisse on lisatud uus reĆŸiim, mis pikendab blokeeringu staatust, kui klient, kes enam pĂ€ringutele ei vasta, on lĂ”petanud. Uus reĆŸiim vĂ”imaldab blokeeringu vabastamist edasi lĂŒkata kuni 24 tunniks, kui teine klient ei soovi vastandlikku blokeeringut. Tavalistes tingimustes vabastatakse blokeering 90 sekundi pĂ€rast, kui klient enam ei vasta.
    • SĂŒndmuste jĂ€lgimise alamsĂŒsteemis on fanotify-s saadaval lipp FAN_MARK_EVICTABLE, millega saab vĂ€lja lĂŒlitada siht-i-node'i fikseerimise vahemĂ€lus, nĂ€iteks alampinkide ignoreerimiseks ilma nende osade vahemĂ€llesse kinnitamata.
    • FAT32 failisĂŒsteemi draiverisse on lisatud tugi failide loomise aja andmete saamiseks sĂŒsteemikutsest statx, mis rakendab efektiivsemat ja funktsionaalsemat versiooni stat() funktsioonist, tagastades laiendatud teabe faili kohta.
    • ExFAT draiverisse on sisse viidud mĂ€rkimisvÀÀrsed optimeerimised, mis vĂ”imaldavad sektorigruppide samaaegset puhastamist "dirsync" reĆŸiimis, selle asemel et puhastada sektoreid ĂŒkshaaval. Optimeerimise tĂ”ttu vĂ€henenud plokkide pĂ€ringute arvu tĂ”ttu on SD-kaardil arvukate kataloogide loomise jĂ”udlus suurenenud rohkem kui 73-85% sĂ”ltuvalt klastrite suurusest.
    • Tuumarakendusse on lisatud esimene parandav vĂ€rskendus ntfs3 draiverile. Alates ntfs3 lisamisest tuumasse 5.15 möödunud aasta oktoobris pole draiverit vĂ€rskendatud ning kontakt arendajatega on kadunud, kuid nĂŒĂŒd on arendajad taas muutuste avaldamisega edasi liikunud. Pakutud plaastrites on kĂ”rvaldatud vead, mis pĂ”hjustavad mĂ€lu leket ja Ă€kkseisakuid, lahendatud xfstestide tĂ€itmise probleemid, puhastatud on kasutamata kood ja parandatud trĂŒkivigu.
    • OverlayFS-is on rakendatud vĂ”imalus seotud failisĂŒsteemide kasutajate identifikaatorite kaardistamiseks, mis vĂ”imaldab seondada teatud kasutaja failid teisel jaotisel olevate failidega, mis on praeguses sĂŒsteemis teiste kasutajate all.
  • MĂ€lu ja sĂŒsteemiteenused
    • Lisatud esialgne tugi LoongArch kĂ€su kogumi arhitektuurile, mida kasutatakse Loongson 3 5000 protsessorites ja mis rakendab uut RISC ISA-d, mis on sarnane MIPS-ile ja RISC-V-le. LoongArch arhitektuur on saadaval kolmes variandis: kĂ€rbitud 32-bitine (LA32R), tavaline 32-bitine (LA32S) ja 64-bitine (LA64).
    • Eemaldatud kood a.out tĂ€idisablefailiformaadi toe jaoks, mis on saanud aegunuks versioonis 5.1. Formaat a.out pole pikka aega olnud kasutusel Linuxi sĂŒsteemides ning a.out failide genereerimine ei ole vaikimisi Linuxi konfiguratsioonides kaasaegsete tööriistadega toetatud. A.out failide laadija vĂ”ib olla tĂ€ielikult rakendatud kasutajaruumi.
    • LĂ”petatud x86 arhitektuuri jaoks spetsiifiliste kĂ€ivitusvalikute tugi: nosep, nosmap, nosmep, noexec ja noclflush).
    • LĂ”petatud toetamine aegunud CPU arhitektuurile h8300 (Renesas H8/300), mis on pikka aega olnud ilma hooldamiseta.
    • Laienenud vĂ”imalused, mis on seotud jagatud lukustuste («split lock») tuvastamise reageerimisega, mis tekivad, kui juurdepÀÀs ebaviidud andmetele mĂ€lus toimub selle tĂ”ttu, et aatomaarse kĂ€su tĂ€itmisel andmed ĂŒletavad kaks CPU vahemĂ€lu rida. Sellised lukustused pĂ”hjustavad mĂ€rkimisvÀÀrset jĂ”udluse langust. Kui varem tuvastas sĂŒsteem vaikimisi tuuma, andes hoiatusi lukustuse pĂ”hjustanud protsessist, siis nĂŒĂŒd lisaks aeglustatakse probleemset protsessi, et sĂ€ilitada ĂŒlejÀÀnud sĂŒsteemi jĂ”udlust.
    • Lisatud tugi Intel'i protsessorites rakendatud IFS (In-Field Scan) mehhanismile, mis vĂ”imaldab kĂ€ivitada madala taseme diagnostikakatseid CPU-de jaoks, suudab tuvastada probleeme, mida tavapĂ€rased ECC (vigade parandamise koodide) vĂ”i paaritusbitide pĂ”hised vahendid ei suuda tuvastada. Teostatavad testid on struktureeritud laaditava pĂŒsivara kujul, mis sarnaneb mikrokoode uuendustega. Testimise tulemused on kergesti kĂ€ttesaadavad sysfs kaudu.
    • Lisatud on vĂ”ime integreerida bootconfigi fail tuumasse, mis vĂ”imaldab lisaks kĂ€surea valikutele mÀÀrata tuuma tööparameetreid seadistusfailiga. Integreerimine toimub koostamisvaliku abil ‘CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»‘. Varasemalt mÀÀrati bootconfig initrd pildiga. Integreerimine tuumas vĂ”imaldab bootconfigi kasutada konfiguratsioonides ilma initrd-ta.
    • Tehtud on vĂ”imalikuks laadida Zstandard algoritmiga surutud pĂŒsivara. sysfs-sse on lisatud juhtfailide kogum /sys/class/firmware/*, mis vĂ”imaldab algatada pĂŒsivara laadimist kasutajaruumist.
    • AsĂŒnkroosse I/O io_uring liideses on pakutud uus lipp IORING_RECVSEND_POLL_FIRST, mille activeerimisel suunatakse vĂ”rguoperatsioon kĂ”igepealt töötlemiseks polling'ut kasutades. See vĂ”ib sÀÀsta ressursse olukordades, kus teatud viivitus on lubatud operatsiooni töötlemiseks. Io_uringisse on ka lisatud sokli() sĂŒsteemikutsumise tugi, uued lipud failidesse jaotamise haldamise lihtsustamiseks, lisatud on 'multi-shot' reĆŸiim accept() kutsel, mis vĂ”imaldab korraga vastu vĂ”tta mitu ĂŒhendust, ning lisatud on NVMe kĂ€skude otse seadmesse edastamise operatsioonid.
    • Xtensa arhitektuuri jaoks on tagatud KCSAN (Kernel Concurrency Sanitizer) silumine, mis on mĂ”eldud dĂŒnaamiliseks rivaalitsemisolekute tuvastamiseks tuumas. Samuti on lisatud toetav une reĆŸiim ja koopiateprotsessorite tugi.
    • m68k (Motorola 68000) arhitektuuri jaoks on realiseeritud virtuaalne masin (platvormi simulaator), mis pĂ”hineb Android Goldfish emulatoril.
    • AArch64 arhitektuuri jaoks on realiseeritud Armv9-A SME (Scalable Matrix Extension) laienduste tugi.
    • eBPF alamsĂŒsteemis on lubatud tĂŒĂŒpide nĂ€idikute salvestamine kaardistruktuurides ning lisatud on dĂŒnaamiliste nĂ€idikute tugi.
    • Uus ennetav mĂ€lu vĂ€ljavĂ”tmise mehhanism, mis toetab kasutaja ruumist juhtimist faili memory.reclaim abil, on vĂ€lja pakutud. Ning numbrite kirjutamine antud faili toob kaasa vastava arvu baitide vĂ€ljavĂ”tmise katse cgroup'i komplektist.
    • MĂ€lu kasutuse tĂ€psust on suurendatud andmete kokkusurutud olekus vahefaili all, kasutades zswap mehhanismi.
    • RISC-V arhitektuurile on tagatud 32-bitiste tĂ€ideviidavate failide kĂ€itamise tugi 64-bitistes sĂŒsteemides, lisatud on reĆŸiim, mis seob piiravat attribuuti mĂ€lulehekĂŒlgedele (nĂ€iteks, et keelata vahemĂ€lu kasutamine), ning on ellu kutsutud funktsioon kexec_file_load().
    • 32-bitiste Armv4T ja Armv5 sĂŒsteemide toe rakendus on kohandatud kasutamiseks universaalsetes mitme platvormi tuumade kogudes, mis sobivad erinevatele ARM-sĂŒsteemidele.
  • Virtualiseerimine ja turvalisus
    • EFI alamsĂŒsteemis on vĂ”imalik salajase teabe konfidentsiaalne edastamine kĂŒlg sĂŒsteemidele, ilma et see host-sĂŒsteemi paljastuks. Andmeid antakse lĂ€bi katalooge security/coco securityfs.
    • Lockdowni kaitsereĆŸiimis, mis piirab root-kasutaja juurdepÀÀsu kernelile ja blokeerib UEFI Secure Boot'i ĂŒmbersĂ”iduteed, on kĂ”rvaldatud vĂ”imalus, mis vĂ”imaldas kaitset vĂ€ltida kernelideebuggeri manipulatsioonide kaudu.
    • On aktiveeritud plaastrid, mis on suunatud pseudo-juhuslike arvu generaatori usaldusvÀÀrsuse ja jĂ”udluse parandamisele.
    • Clang 15 kasutamisel on rakendatud tuumikstruktuuride randomiseerimise mehhanismi tugi.
    • Landlocki mehhanismi, mis vĂ”imaldab piirata rĂŒhmade protsesside suhtlemist vĂ€liskeskkonnaga, on lisatud reeglite tugi failide ĂŒmbernimetamise toimingute kontrollimiseks.
    • IMA (Integrity Measurement Architecture) alamsĂŒsteem, mis on mĂ”eldud operatsioonisĂŒsteemi komponentide kontrollimiseks digitaalse allkirja ja hajutatud aluste poolt, on konfigureeritud kasutama fs-verity moodulit failide verifitseerimiseks.
    • Muudetud eBPF-alamhulga juurdepÀÀsu keelamise loogikat — varem keelati kĂ”ik bpf() sĂŒsteemi kĂ”nega seotud kĂ€sklused, kuid alates versioonist 5.19 on lubatud kĂ€sklused, mis ei loo objekte. Sellise kĂ€itumise korral on BPF-programmi laadimiseks vajalik privileegitud protsess, kuid seejĂ€rel saavad mitteprivilegeeritud protsessid selle programmiga suhelda.
    • Lisatud AMD SEV-SNP (Secure Nested Paging) laienduse tugi, mis tagab turvalise töötamise pesa mĂ€lu lehtede sisendisse ja kaitseb «undeSErVed» ja «SEVerity» rĂŒnnakute eest AMD EPYC protsessoritel, mis vĂ”imaldavad mööda minna AMD SEV (Secure Encrypted Virtualization) kaitse mehhanismist.
    • Lisatud Intel TDX (Trusted Domain Extensions) mehhanismi tugi, mis vĂ”imaldab blokkeerida katseid kolmanda osapoole juurdepÀÀsu krĂŒpteeritud mĂ€lule. virtuaalmasinad.
    • Virtio-blk draiverisse, mida kasutatakse plokkseadmeste emuleerimiseks, on lisatud polling-pĂ”hise sisendi/vĂ€ljundi tugi, mis testide pĂ”hjal on vĂ€hendanud latentsust ligikaudu 10%.
  • VĂ”rgu alamsĂŒsteem
    • Rikkas BIG TCP patĆĄide sarja vĂ”imaldab suurendada TCP-paketi maksimaalset suurust kuni 4 GB, et optimeerida andmekeskuste kiirete sisevĂ”rkude toimivust. Selle pakkemise suuruse suurendamine 16-bitise pealkirja vĂ€lja kaudu saavutatakse „jumbo” pakkide rakendamise kaudu, mille IP-pealkirja suurus on seatud 0 ja tegelik suurus edastatakse eraldi 32-bitises vĂ€ljas eraldi kinnitatud pealkirjas. Tulemuslikkuse testimisel vĂ”imaldas 185 KB suuruse pakendi mÀÀramine suurendada lĂ€bilaskevĂ”imet 50% ja oluliselt vĂ€hendada andmete edastamise latentsust.
    • Töö pakettide mahajĂ€tmise pĂ”hjuste jĂ€lgimise vahendite integreerimise kallal on jĂ€tkunud, et vĂ”rgu stĂ€kki lisada koodid (reason). PĂ”hjuse kood edastatakse mĂ€lu vabastamisel, mis on seotud paketiga, ja vĂ”imaldab arvestada selliste olukordadega nagu paketi mahajĂ€tmine, mille pĂ”hjuseks on vĂ€ljad pealkirjas, rp_filter'i spooking'u tuvastamine, vale kontrollsummad, mĂ€lu puudus, IPSec XFRM reeglite aktiveerimine, vale TCP jĂ€rjestuse number jne.
    • Lisatud tugi MPTCP (MultiPath TCP) ĂŒhenduste tagasivĂ”tmiseks tavalise TCP kasutamiseks olukordades, kus teatud MPTCP funktsioonid ei saa olla aktiivsed. MPTCP on TCP protokolli laiendus, et korraldada TCP-ĂŒhendust, mis edastab pakette samaaegselt mitme marsruudi kaudu erinevate vĂ”rguliideste kaudu, mis on seotud erinevate IP-aadressidega. Lisatud API MPTCP voogude haldamiseks kasutaja ruumis.
  • Seadmed
    • Amdgpu draiveriga seostatud rohkem kui 420 000 koodi rida on lisatud, millest umbes 400 000 rida koosneb automaatselt genereeritud pĂ€ised, mis sisaldavad andmeid AMD GPU ASIC registrite jaoks, ja veel 22,5 tuhat rida pakuvad esialgset toe rakendust AMD SoC21-le. AMD GPU draiveri kogusumma on ĂŒletanud 4 miljonit koodi rida. Lisaks SoC21 toetab AMD draiver SMU 13.x (SĂŒsteemi HaldusĂŒksus), on uuendatud USB-C ja GPUVM tuge ning on valmistatud ette jĂ€rgnevate RDNA3 (RX 7000) ja CDNA (AMD Instinct) platvormide toe toetamiseks.
    • Intel i915 draiveris on laiendatud energiatĂ”hususe haldamise vĂ”imalusi. Lisatud on Intel DG2 (Arc Alchemist) GPU identifikaatorid, mida kasutatakse sĂŒlearvutites, tagatud on Intel Raptor Lake-P (RPL-P) platvormi esialgne tugi, lisatud on teavet Arctic Sound-M graafikakaartide kohta, realiseeritud on arvutusmootorite ABI, DG2 kaartide jaoks on lisatud Tile4 formaadi tugi ning Haswell mikroarhitektuuril pĂ”hinevates sĂŒsteemides on rakendatud DisplayPort HDR tuge.
    • Nouveau juhendis on ĂŒlemineku kasutusele vĂ”etud drm_gem_plane_helper_prepare_fb töötleja, mĂ”nede struktuuride ja muutujate puhul on rakendatud staatilist mĂ€lu jaotust. Mis puutub ettevĂ”tte NVIDIA avaldatud avatud lĂ€htekoodiga kerneli moodulite kasutamisse Nouveau-s, siis töö on hetkel koondunud vigade tuvastamisele ja kĂ”rvaldamisele. Edaspidi plaanitakse avaldatud pĂŒsivara kasutada draiveri jĂ”udluse parandamiseks.
    • Lisatud on NVMe kontrolleri draiver, mida kasutatakse Apple'i M1 kiibil pĂ”hinevates arvutites.

Latiino-Ameerika Tasuta Tarkvara Fond on samal ajal vĂ€lja töötanud tĂ€iesti tasuta kernel'i versiooni 5.19 — Linux-libre 5.19-gnu, mis on puhastatud tootjate poolt piiratud kasutusala ja omavaheliste osade, sealhulgas mittetĂ€ielike tootetugide vĂ”i draiverite kahjustamata. Uues vĂ€ljaandes on puhastatud draiverid pureLiFi X/XL/XC ja TI AMx3 Wkup-M3 IPC jaoks. Draiverite ja alamsĂŒsteemide, sealhulgas Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu draiverite blobide puhastamise kood on uuendatud. Qualcomm AArch64 seadmepuu failide töötlemine on rakendatud. Lisatud on uus komponentide nimetamise skeem Sound Open Firmwarei jaoks. ATM Ambassador'i draiveri puhastamine, mis on kernel'ist eemaldatud, on lĂ”petatud. HDCP ja Mellanox Core blobide puhastamise juhtimine on viidud eraldi kconfig'i mĂ€rkmetesse.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster