Linuxi kernel 5.15 väljaanne

Pärast kaht kuud arendust esitles Linus Torvalds Linuxi kernel 5.15 väljaannet. Kõige silmapaistvamad muudatused hõlmavad uut NTFS draiverit, mis toetab kirjutamist, ksmbd moodulit SMB-serveri rakendamiseks, DAMON alamsüsteemi mälule juurdepääsu jälgimiseks, reaalajas režiimi lukustusprimitve, fs-verity toe Btrfs'is, process_mrelease süsteem kutsungit mälu puuduse reageerimise süsteemidele ning kaugatesteerimise dm-ima mooduli.

Uude versiooni on lisatud 13499 parandust 1888 arendajalt, plaastri suurus on 42 MB (muudatused puudutasid 10895 faili, lisatud on 632522 koodirea, eemaldatud 299966 rida). Umbes 45% kõigist 5.15 esitatud muudatustest on seotud seadme draiveritega, umbes 14% muudatusi on seotud riistvaraarhitektuurile spetsiifilise koodi värskendamisega, 14% on seotud võrguprotokolli, 6% -ga failisüsteemide ja 3% -ga kernelisisesed alamsüsteemid.

Peamised uuendused:

  • Diskisüsteem, sisend/väljund ja failisüsteemid
    • Kernelisse on vastu võetud uus NTFS failisüsteemi rakendus, mille on avanud Paragon Software. Uus draiver suudab töötada kirjutamisrežiimis ja toetab kõiki praeguse NTFS 3.1 versiooni võimalusi, sealhulgas failide laiendatud atribuutide, ligipääsu loendite (ACL), andmete kokkusurumise, tõhusat tühikute töötlemist failides (sparse) ja muudatuste taastamise žurnaalist, et taastada järjepidevust tõrgete korral.
    • Btrfs failisüsteemis on rakendatud fs-verity mehhanismi tugi, mida kasutatakse üksikute failide läbipaistvaks terviklikkuse ja originaalsuse kontrollimiseks, kasutades failidega seotud krüptograafilisi räsi või võtmeid, mis on salvestatud metaandmete valdkonda. Varem oli fs-verity saadaval ainult Ext4 ja F2fs failisüsteemide jaoks.

      Btrfs-s on lisatud ka kasutaja identifikaatorite tõlke tugi mountitud failisüsteemide jaoks (varem toetas see FAT, ext4 ja XFS failisüsteeme). Antud võimalus võimaldab siduda teatud kasutajafailid mountitud võõrsüsteemi jagamisega teise kasutajaga praeguses süsteemis.

      Btrfs'is toimunud muudatused: kiiremad klahvide lisamisprotsessid katalooge indeksi, et parandada failide loomise jõudlust; raid0 töövõime ühe seadmega ja raid10 kahe seadmega (nt massiivi ümberkonfigureerimise protsessis); suvand "rescue=ibadroots" vigaste ulatuspuudega puu ignoreerimiseks; "send" operatsiooni kiirus; lukustamiskonfliktide vähenemine nimetamise operatsioonide ajal; 4K sektorite kasutamise võimalus 64K mälu lehekeskkonna süsteemides.

    • XFS'is on stabiliseeritud aastat pärast 2038. aastat failisüsteemis kuupäevade kasutamine. Tehtud on iframe'i viivitusega deaktiveerimise mehhanism ja failiattribuutide viivitusega seadmine ja eemaldamine. Probleemide vältimiseks on eemaldatud diskikvootide keelamise võimalus juba mountitud partitsioonide jaoks (kuigi sundkvootide katkestamine on võimalik, jätkub seonduv arvutamine, seega on täielikuks katkestamiseks vajalik uuesti mountimine).
    • EXT4'is on tehtud töö delalloc-puhvrite kirjutamise tulemuslikkuse suurendamiseks ja orvufailide töötlemise parandamiseks, mis jätkuvad, kuna need jäävad avatuks, kuid kaotavad kaudse seose kataloogiga. Trükkimisoperatsioonide töötlemine on eraldatud jbd2-kthreadi voost, et vältida metaandmete töötlemise lukustamist.
    • F2FS'is on lisatud suvand "discard_unit=block|segment|section", et siduda discard-operatsioonid (vabade blokkide märkimine, mida ei pea enam füüsiliselt säilitama) vastavalt blokki, sektori, segmenti või jaotuse joondamisega. Lisatud on toetus viivitusmuutuste jälgimiseks sisse-/väljundprotsessides.
    • EROFS (Extendable Read-Only File System) failisüsteemis on lisatud otse sisendi/väljundi toetus võrdse sagedusega failidele, mis on salvestatud ilma kompressioonita, samuti fiemap'i toetus.
    • OverlayFS'is on teostatud korrektne monteerimislipu "immutable", "append-only", "sync" ja "noatime" töötlemine.
    • NFS'is on parendatud olukordade töötlemist, kus NFS-server lõpetab päringutele vastamise. Lisatud on võimalus montaaž kui see on juba kasutuses, serverid, kuid on kergesti saadaval teise võrgu aadressi kaudu.
    • Alustati FSCACHE süsteemi ümberkirjutamise ettevalmistusi.
    • Lisatud on EFI-partitsioonide toetus, millel on ebatavaline GPT-tabelite paigutus.
    • Fanotify mehhanismis on rakendatud uus lipp FAN_REPORT_PIDFD, mis viib ippfd määramise tagastatud metaandmete hulka. Pidfd aitab hallata PID taaskasutamise olukordi, et täpsemalt tuvastada protsesse, mis suhtlevad jälgitavate failidega (pidfd on seotud konkreetse protsessiga ja ei muutu, samas kui PID võib pärast jooksva protsessi, mis on seotud selle PID-ga, lõpetamist olla seotud teise protsessiga).
    • Süsteemikutsesse move_mount() on lisatud võimalus lisada mount-punkte olemasolevatesse ühiste gruppidesse, mis lahendab protsesside olekute säilitamise ja taastamise probleemid CRIU tööriistakomplekti puhul, kui on olemas mitu mount-keskkonda, mida kasutatakse isoleeritud konteinerites.
    • Lisatud kaitse varjatud võistlusolukordade vastu, mis võivad potentsiaalselt põhjustada failide kahjustamist, kui lugeda vahemälust ajal, kui failis on tühikuid.
    • Kohustuslike (mandatory) faililukkude tugi, mis on rakendatud failide muutmisele viivate süsteemikutsungi kaudu, on lõpetatud. Võimalike võistlusolukordade tõttu peeti neid lukke ebausaldusväärseteks ja nad kuulutati aastaid tagasi vananenuks.
    • Eemaldatud on LightNVM alamsüsteem, mis võimaldas pääseda SSD-kettale otse, mööda emulatsioonikihti. LightNVM kaotas mõtte pärast NVMe standardite ilmumist, mis võimaldavad tsoonimise (ZNS, Zoned Namespace) kasutamist.
  • Mälu ja süsteemiteenused
    • Realiseeritud on DAMON (Data Access MONitor) alamsüsteem, mis võimaldab jälgida andmete juurdepääsu tegevust mälus, seotuna valitud protsessiga, mis töötab kasutajaruumis. Alamsüsteem võimaldab analüüsida, millistele mälupiirkondadele protsess on kogu oma töö aja jooksul juurdepääsu saanud, ja millised mälupiirkonnad on jäänud kasutamata. DAMON-i eripära hulka kuulub madal koormus CPU-le, väike mälutarbimine, kõrge täpsus ja ettearvatavad pidevad kulud, mis ei sõltu suurusest. Alamsüsteemi saab kasutada nii tuumana mäluhalduse optimeerimiseks kui ka kasutajaruumis olevate tööriistade jaoks, et mõista, mida protsess teeb ja optimeerida mälutaseme kasutamist, näiteks vabastades süsteemile liigset mälu.
    • Rakendatud on süsteemikõne process_mrelease, mis võimaldab kiirendada mälurikkumise protsessi, mis lõpetab oma töö. Tavalistes tingimustes toimub ressursside vabastamine ja protsessi lõpetamine mitte kohe ning erinevatel põhjustel võib see viibida, mis takistab kasutaja ruumis töötavate varajase reageerimise süsteemide, nagu oomd (sisaldub systemd-s) ja lmkd (kasutatakse Androidis), (töötamist). Process_mrelease'i kõne abil saavad sellised süsteemid ennustatavamalt algatada mälu tagastamise sundlõpetatud protsessidelt.
    • PREEMPT_RT tuumaklassist on üle viidud reaalajas töötamise toe variandid lukustamise primitiividest, nagu mutex, ww_mutex, rw_semaphore, spinlock ja rwlock, mis põhinevad RT-Mutexi alamsüsteemil. SLUB slab allocatorisse on lisatud muudatusi, mis parandavad koostööd PREEMPT_RT režiimis ja vähendavad katkestuste mõju.
    • Cgroupi on lisatud toetus ülesande planeerimise atribuudi SCHED_IDLE jaoks, mis võimaldab varustada kõiki rühma kuuluvaid protsesse selle tunnusega. St. need protsessid käivitatakse ainult siis, kui süsteemis ei ole teisi ülesandeid, mis ootavad täitmist. Erinevalt SCHED_IDLE atribuudi määramisest igale protsessile eraldi, arvestatakse SCHED_IDLE sidumise puhul cgroupile ülesande valimisel rühma sees olevate ülesannete suhtelist kaalu.
    • Cgroupi mälu tarbimise jälgimise mehhanismi on laiendatud täiendavate tuumandmete struktuuride jälgimise võimekusega, sealhulgas nende, mis on loodud pollimise, signaalide töötlemise ja nimede ruumide jaoks.
    • Suurendatud on asümmeetrilise planeerimise tuge ülesannete sidumisel protsessorite tuumadele arhitektuuridel, kus mõned CPU-d võimaldavad 32-bitiste ülesannete täitmist, samas kui mõned töötavad ainult 64-bitises režiimis (nt ARM). Uus režiim võimaldab 32-bitiste ülesannete planeerimisel arvesse võtta ainult CPU-sid, mis toetavad 32-bitiseid ülesandeid.
    • Asünkroosse io_uring liidese sees lisandus tugi failide avamiseks otse fikseeritud failide indeksitabelis, ilma failideskriptorit kasutamata, mis võimaldab oluliselt kiirendada teatud tüüpi operatsioone, kuid see on vastuolus Unix'i traditsioonilise protsessiga failide avamiseks failideskriptorite kaudu.

      io_uring'is BIO (Block I/O Layer) alamsüsteemis rakendati uus mehaanika BIO taaskasutamiseks, mis vähendab sisemise mälu haldamise kulusid ja suurendab umbes 10% töötavate I/O operatsioonide arvu sekundis. Samuti lisati toetust süsteemi kutsungitele mkdirat(), symlinkat() ja linkat().

    • BPF-programmide jaoks on rakendatud võimalus nõuda ja töödelda taimeri sündmusi. Lisatud on iteraator UNIX-sokettide jaoks ning samuti on rakendatud sokettide valikute saamise ja seadistamise võimalus setsockopt. BTF dumperisse on lisatud tükeldatud andmete tugi.
    • NUMA-süsteemides, kus on erinevat tüüpi mälu, millel on erinevad jõudlused, on madala vabade vastupidavate lehtede olukorras rakendatud välja tõukuvate mälu lehtede üleviimist dünaamilisest mälust (DRAM) aeglasemasse püsivasse mällu (Persistent Memory) lehtede kustutamise asemel. Testide läbiviimine näitas, et selline taktika parandab tavaliselt jõudlust sellistes süsteemides. NUMA-le on ka rakendatud mälu lehtede eraldamise võimalus protsessidele valitud NUMA sõlmede hulgast.
    • ARC-arkitektuuri jaoks on rakendatud kolme- ja neljatase mälu lehtede tabelite tugi, mis tulevikus võimaldab rakendada 64-bitiste ARC-protsessorite tuge.
    • S390-arkitektuuri jaoks on rakendatud KFENCE mehhanismi kasutamise võimalus mälu töötamise vigade tuvastamiseks ning lisatud on KCSAN häiretestektori tugi.
    • Lisatud on tugi sõnumite loendi indekseerimiseks, mis kuvatakse läbi printk(), mis võimaldab korraga välja tõmmata kõik sellised sõnumid ja jälgida muudatusi kasutaja ruumis.
    • mmap() funktsioonist on eemaldatud VM_DENYWRITE valiku tugi ning tuuma kood on vabastatud MAP_DENYWRITE režiimi kasutamisest, mis vähendab olukordade arvu, mis põhjustavad faili kirjutamise blokeerimist ETXTBSY veaga.
    • Jälgimisse süsteemi on lisatud uus kontrollide tüüp „Event probes”, mida saab kinnitada olemasolevatele jälgimise sündmustele, määrates nende väljundiformaadi.
    • Kerneli koostamisel, kasutades Clangi kompilaatorit, on vaikimisi nüüd aktiveeritud LLVM projekti sisseehitatud assembler.
    • Kerneli vabastamise raames, et eemaldada kodeering, mis põhjustab kompilaatori hoiatuste tekkimist, viidi läbi eksperiment, mille käigus aktiveeriti vaikimisi režiim „-Werror“, kus kompilaatori hoiatused käsitletakse vigadena. 5.15 väljaandmise ettevalmistamisel hakkas Linus aktsepteerima ainult muudatusi, mis ei põhjusta hoiatuste tekkimist kerneli koostamisel ja aktiveeris koostamise „-Werror“ režiimis, kuid nõustus seejärel arvamusega, et see otsus on enneaegne ja lükkas „-Werror“ vaikimisi sisselülitamise edasi. -Werror lipu sisselülitamine koostamisel toimub WERROR parameetri kaudu, mis on vaikimisi seadistatud väärtusele COMPILE_TEST, st see aktiveeritakse ainult katsetamiseks.
  • Virtualiseerimine ja turvalisus
    • Seadme kaardistusse (DM) on lisatud uus dm-ima töötleja, mis rakendab kaugatestaatorimehhanismi, mis põhineb IMA (Integrity Measurement Architecture) süsteemil, võimaldades välist teenusel tuvastada kerneli süsteemide olek, et kinnitada nende autentsust. Praktiliselt võimaldab dm-ima luua seadme kaardistuse kaudu salvestusi, mis on seotud välistes pilvesüsteemides, kus IMA abil kontrollitakse DM sihtkoha käivitatud konfigureerimise tõelisust.
    • prctl() on rakendatud uus valik PR_SPEC_L1D_FLUSH, mille aktiveerimisel hakkab kerneli iga kord konteksti vahetamisel tühjendama esimese taseme (L1D) vahemälu sisu. See režiim võimaldab valida kõrgeima prioriteediga protsesside jaoks lisakaitse, et vältida ründetegevusi, mis on suunatud andmete määratlemiseks, mis on jäänud vahemälu, põhjustades spetsiifilisi haavatavusi, mis tulenevad CPU spekulatiivsest täitmisest. PR_SPEC_L1D_FLUSH'i aktiveerimise hind (vaikimisi deaktiveeritud) on märkimisväärne jõudluse langus.
    • Kooti on rakendatud võimalus koostada kernel GCC-flaagi "-fzero-call-used-regs=used-gpr" lisamisega, mis tagab kõigi registrite nullimise funktsiooni tagasiandmise eel. Antud valik kaitseb funktsioonidest lekkeinfo eest ning vähendab 20% ROP-gadgetite (Return-Oriented Programming) ehitamiseks sobivate plokkide arvu exploitides.
    • Kooti on rakendatud võimalus koostada kerneli ARM64 arhitektuuri jaoks Hyper-V hüpervisiitori klientide kujul.
    • Pakutud on uus raamistiku "VDUSE" arendamiseks, mis võimaldab virtuaalsete plokiseadmete rakendamist kasutajaruumi ja Virtio kasutamist transpordina külalissüsteemide juurdepääsuks.
    • Lisatud on Virtio-draiver I2C bussiks, mis võimaldab emuleerida I2C kontrollerite paravirtuaalses režiimis, kasutades eraldi tagapindu.
    • Lisatud on Virtio-draiver gpio-virtio, mis võimaldab külalissüsteemidel pääseda juurde GPIO ridadele, mida pakub host-süsteem.
    • Lisatud on võimalus piirata mälu lehtede juurdepääsu seadme draiveritele DMA toega süsteemides, kus puudub I/O MMU (mälu haldamise üksus).
    • KVM hüpervisiitorisse on rakendatud statistika väljund võimalusega lineaarsete ja logaritmiliste histogrammide kujul.
  • Võrgusüsteem
    • Kernelisse on lisatud ksmbd moodul, mis rakendab failiserverit, kasutades SMB3 protokolli. Moodul täiendab juba kernelis olemasolevat SMB kliendi rakendust ja on efektiivsem jõudluse, mälutarbimise ja integreerimise osas võrreldes kasutajaruumi töötava SMB-serveriga ning arenenud kernelifunktsioonidega. Ksmbd esitatakse kui kõrge jõudlusega ja rakendamiseks valmis lahi aparaadi täiendus Sambale, mis vajadusel on integreeritav Samba tööriistade ja raamatukogudega. Ksmbd omaduseks on paranenud jagatud failide vahemälutehnoloogia (SMB leases) tugi kohalikes süsteemides, mis vähendab oluliselt liiklust. Edaspidi kavatsetakse lisada RDMA („smbdirect") ja protokolli laienduste tuge, mis on seotud krüpteerimise usaldusväärsuse tugevdamise ja digitaalsete allkirjade kontrollimisega.
    • CIFS kliendis on lõpetatud NTLM ja vähem usaldusväärsete autentimise algoritmide tugi, mis põhinevad DES algoritmil ja mida kasutatakse SMB1 protokollis.
    • VLAN-i võrgusildade rakenduses on lisatud multicast-i tugi.
    • Bonding draiverisse, mida kasutatakse võrgu‐liidestes aggregatsiooniks, on lisatud XDP (eXpress Data Path) alamsüsteemi tugi, mis võimaldab võrgu pakettide töötlemist enne nende töötlemist Linuxi tuuma võrgu virnas.
    • Mac80211 juhtmevaba virnas on lisatud 6GHz STA (Special Temporary Authorization) tugi režiimides LPI, SP ja VLP, samuti võimalus seada eraldi TWT (Target Wake Time) juurdepääsupunkti režiimis.
    • Lisatud MCTP (Management Component Transport Protocol) protokolli tugi, mis on mõeldud halduskontrollerite ja nende seotud seadmete (host-protsessorid, perifeerseadmed jt) vaheliseks suhtlemiseks.
    • MPTCP (MultiPath TCP) jätkuvat integreerimist põhituuma on laiendatud TCP-protokolli jaoks, et võimaldada TCP-ühenduse tööd, edastades pakette samaaegselt mitme marsruudi kaudu erinevate võrgu liideste kaudu, mis on seotud erinevate IP-aadressidega. Uus väljaanne toetab fullmesh režiimi adresse.
    • Netfilterisse on lisatud SRv6 (Segment Routing IPv6) protokolli sissepakitud võrguvoogude töötlejad.
    • Lisatud sockmap tsooni toetamine voolavate Unix-sokettide jaoks.
  • Varustus
    • Amdgpu draiveris on lisatud APU Cyan Skillfish (varustatud GPU Navi 1x) tugi. APU Yellow Carpi jaoks on rakendatud videokodekite tugi. GPU Aldebarani tugi on paranenud. Uued GPU Navi 24 «Beige Goby» ja RDNA2 alusel põhinevad kaardid on lisatud. Parandatud virtuaalsete ekraanide (VKMS) rakendust. AMD Zen 3 kiipide temperatuuri jälgimise tugi on rakendatud.
    • Amdkfd draiveris (diskreetsete GPU-de jaoks nagu Polaris) on rakendatud jagatud virtuaalse mälu (SVM, shared virtual memory) halduri rakendamine HMM (Heterogeneous memory management) alamsüsteemi baasil, mis võimaldab kasutada seadmeid oma mäluhaldusblokkidega (MMU, memory management unit), mis saavad juurdepääsu peamisele mälule. HMM-i kaudu on võimalik korraldada GPU ja CPU vahel ühist aadressiruumit, kus GPU võib pääseda protsessi peamisele mälule.
    • I915 draiveris, mis on mõeldud Intel GPU-dele, on laiendatud videomälu haldusmenedžeri TTM rakendust ja lisatud energiatõhususe haldamise tugi GuC (Graphics micro Controller) baasil. Alustatud ettevalmistusi Intel ARC Alchemist ja Intel Xe-HP graafikakaardi toe rakendamiseks.
    • Nouveau draiveris on rakendatud eDP paneelide taustvalguse juhtimine DPCD (DisplayPort Configuration Data) abil.
    • MSM draiverisse on lisatud toetus GPU Adreno 7c Gen 3 ja Adreno 680 jaoks.
    • Apple M1 kiibile on rakendatud IOMMU draiver.
    • AMD Van Gogh APU baasil töötavatele süsteemidele on lisatud helidraiver.
    • Staging haru on lisatud Realtek R8188EU draiver, mis asendas vana draiveri (rtl8188eu) Realtek RTL8188EU 802.11 b/g/n traadita kiipide jaoks.
    • Meta (Facebook) arendatavale PCIe-plaatide draiverile on lisatud ocp_pt, millel on miniatuurseid aatomikellasid ja GNSS vastuvõtjat, mida saab kasutada isoleeritud täpsete ajasilumite korraldamiseks. serverid täpsete ajasilumite sünkroniseerimise jaoks.
    • Lisatud on tugi Sony Xperia 10II (Snapdragon 665), Xiaomi Redmi 2 (Snapdragon MSM8916), Samsung Galaxy S3 (Snapdragon MSM8226), Samsung Gavini/Codina/Kyle nutitelefonidele.
    • ARM SoC-de ja NVIDIA Jetson TX2 NX arenduskihi, Sancloud BBE Lite, PicoITX, DRC02, SolidRun SolidSense, SKOV i.MX6, Nitrogen8, Traverse Ten64, GW7902, Microchip SAMA7, Qualcomm Snapdragon SDM636/SM8150, Renesas R-Car H3e-2G/M3e-2G, Marvell CN913x, ASpeed AST2600 (Facebook Cloudripper, Elbert ja Fuji serveri plaadid) on lisatud tugi 4KOpen STiH418-b2264 jaoks.
    • LCD-paneelide, nagu Gopher 2b, EDT ETM0350G0DH6/ETMV570G2DHU, LOGIC Technologies LTTD800480070-L6WH-RT, Multi-Innotechnology MI1010AIT-1CP1, Innolux EJ030NA 3.0, ilitek ili9341, E Ink VB3300-KCA, Samsung ATNA33XC20, Samsung DB7430, WideChips WS2401, toetus on lisatud.
    • LiteETH draiver on lisatud toega Etherneti kontrolleritele, mida kasutatakse LiteX (FPGA) tarkvaralistes SoC-des.
    • USB-audio draiverisse on lisatud lowlatency valik minimaalsete viivituste režiimi aktiveerimiseks. Samuti on lisatud quirk_flags valik seadmeülesannete seadete edastamiseks.

Sama ajal edendas Ladina-Ameerika Tasuta Tarkvara Sihtasutus täiesti vabalt kasutatavat Linuxi tuuma versiooni 5.15 – Linux-libre 5.15-gnu, mis on puhastatud tootjate poolt piiratud komponentide või koodilõikude, sealhulgas tarkvara ja draiverite elementide, osas. Uues väljaandes on rakendatud logifailide kirjutamine puhastamise lõpetamisest. Lahendatud on probleemid pakettide loomisel mkspec'i kasutamisel ning täiustatud on snap-pakettide tuge. Eemaldatud on mõned hoiatavad sõnumid, mis sisendfaili firmware.h töötlemisel kuvatakse. Lubatud on teatud hoiatustüüpide väljund ("format-extra-args", kommentaarid, kasutamata funktsioonid ja muutujad) ehitamisel režiimis "-Werror". Lisa on saanud draiveri gehc-achc puhastamine. Uuendatud on draiverite ja alamsüsteemide blobide puhastamise koodi adreno, btusb, btintel, brcmfmac, aarch64 qcom. Draiverite prism54 puhastamine on lõpetatud (eemaldatud) ja rtl8188eu (asendatud r8188eu-ga).

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster