Linuxi tuuma 5.12 väljaanne

Pärast kahte kuud arendust esitles Linus Torvalds Linuxi tuuma versiooni 5.12. Kõige märgatavamad muutused on: Btrfs-iga liitunud tsoonitud plokkseadmete toetus, kasutajaidentifikaatorite kaardistamise võimalus failisüsteemis, vananenud ARM-architektuuride puhastamine, "ooterežiimi" kirjutamise mehanism NFS-is, LOOKUP_CACHED mehhanism failiteede määramiseks vahemälust, aatomilised käsud BPF-is, KFENCE tõrkeotsingu süsteem mäluhäirete tuvastamiseks, eraldi tuumas töötav NAPI polling režiim võrgu-ökosüsteemis, ACRN hüperviisor, tööülesande ajakava sisemise preempt mudeli dünaamiline muutmine ja LTO-optimeerimise toetus Clangis.

Uue versiooniga on kaasas 14170 (eelmine väljaanne 15480) parandust 1946 (1991) arendajalt, patši suurus on 38 MB (muudatused puudutasid 12102 (12090) faili, lisatud on 538599 (868025) koodireadet, eemaldatud 333377 (261456) rida). Umbes 43% kõigist 5.12 versionis esitatud muudatustest on seotud seadme draiveritega, umbes 17% muudatusi puudutavad riistvaraarhitektuuride spetsiifilise koodi värskendust, 12% on seotud võrgustikku puudutava kuhjaga, 5% -ga failisüsteemidest ja 4% sisemiste kerneli alamsüsteemidega.

Põhilised uuendused:

  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Kasutajate identifikaatorite kaardistamise funktsionaalsus on sisse viidud mountitud failisüsteemide jaoks (võimaldab seostada ühe kasutaja faile teise kasutaja praeguses süsteemis montitud jagamisel). Kaardistamine on toetatud failisüsteemide FAT, ext4 ja XFS puhul. Pakutud funktsionaalsus lihtsustab failide jagamist erinevate kasutajate ja arvutite vahel; kaardistamine rakendub systemd-homed'i kantavate kodukataloogide mehhanismis, võimaldades kasutajatel oma kodukatalooge välistele andmeholduritele viia ja neid erinevates arvutites kasutada, kus kasutaja identifikaatorite paigutus ei ühti. Teine kasulik rakendus on failide jagamise korraldamine välisest hostist ilma failide omanike andmete tegelikku muutmata failisüsteemis.
    • Yderekavasse on vastu võetud LOOKUP_CACHED plaastrid, mis võimaldavad kasutaja ruumist failitee määrangu operatsioone teostada ilma lukustamiseta, tuginedes ainult olemasolevatele vahemälu andmetele. LOOKUP_CACHED režiim aktiveeritakse openat2() süsteemikõnes, edastades RESOLVE_CACHED lipu, mille puhul andmed antakse välja ainult vahemälust, ja kui tee määramine nõuab salvestusseadmele pöördumist, tagastatakse tõrge EAGAIN.
    • Failisüsteemis Btrfs on lisatud algne tugi tsoonitud plokiseadmetele (seadmed, mis kasutavad kõvakettasid või NVMe SSD-sid, mille salvestusruum on jagatud tsoonideks, mis koosnevad plokkide või sektorite rühmadest, kuhu on lubatud ainult järjestikune andmete lisamine kogu plokkrühma uuendamisega). Üksnes lugemisrežiimis on rakendatud tugi metainformatsiooni ja andmete plokkidele, mille suurus on väiksem kui lehekülje suurus (subpage).
    • Failisüsteemis F2FS on lisatud võimalus valida tihendusalgoritm ja -tase. Lisatud on kõrge tihendustaseme tugi LZ4 algoritmi jaoks. Toetatakse checkpoint_merge montaaži võimalust.
    • Uus ioctl-käsk FS_IOC_READ_VERITY_METADATA on rakendatud failide metadata lugemiseks, mis on kaitstud fs-verity abil.
    • NFS-klient sisaldab režiimi 'kiire' kirjutamine (writes=eager), mille aktiveerimisel edastatakse failikirjutamise toimingud koheselt serverile, mööda leheküljekäivitus, vähendades mälutarvet, tagades kohese teabe vaba ruumi lõpuleviimise kohta failisüsteemis ja mõningatel juhtudel võimaldades saavutada paremat jõudlust.
    • CIFS (SMB) on lisatud uusi mountimise valikuid: acregmax failide vahemälu haldamiseks ja acdirmax kataloogide metadata vahemälu haldamiseks.
    • XFS-is on aktiveeritud mitme niidi kvota kontrollimise režiim, kiirendatud fsync-i täitmine ning growfs-kood on ette valmistatud failisüsteemi suuruse vähendamise funktsiooni rakendamiseks.
  • Mälu ja süsteemiteenused
    • Lisatud on DTMP (Dünaamiline Soojusvõimsuse Halduse) alam süsteem, mis võimaldab dünaamiliselt reguleerida erinevate seadmete energia tarbimist, lähtudes seadistatud temperatuuripiirangutest.
    • Clang kompilaatori abil on nüüd realiseeritud võimalus koostada kernelit, hõlmates linkimise ajal optimeerimist (LTO, Link Time Optimization). LTO optimeerimised arvestavad kõigi koostamise protsessis osalevate failide seisundit, samas kui traditsioonilised optimeerimise režiimid optimeerivad iga faili eraldi, ignoreerides teiste failide funktsioonide väljakutsumise tingimusi. Näiteks võimaldab LTO teistest failidest pärinevate funktsioonide puhul inline-lahtimõtestamist, mitteaktiivne kood jäetakse täitmise failist välja, toimub tüüpide kontroll ja üldine optimeerimine projekti tasandil. LTO tugi on hetkel piiratud arhitektuuride x86 ja ARM64 puhul.
    • Võimalus valida eelväljamise (PREEMPT) režiime ülesande planeerijas laadimise etapis (preempt=none/voluntary/full) või töö käigus läbi debugfs (/debug/sched_debug), juhul kui südamiku ehitamisel on määratud PREEMPT_DYNAMIC seadistus. Varem sai eelväljamise režiimi määrata ainult ehitamise parameetrite tasemel. Muudatus võimaldab jaotustel pakkuda südamikke, kus on sisse lülitatud PREEMPT režiim, mis tagab minimaalset latentsust töölauade jaoks väikese läbilaskevõime vähenemise hindadega, ja vajadusel tagastuda režiimidele PREEMPT_VOLUNTARY (vahepealse režiim töölauale) või PREEMPT_NONE (tagab maksimaalse läbilaskevõime jaoks serverite).
    • BPF alamsüsteemi on lisatud tugi aatomaarvutustele BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG ja BPF_CMPXCHG.
    • BPF-programmidele on antud võimalus pääseda andmetele steekis muutuva offsetiga näidikute kaudu. Näiteks, kui varem sai steeki massiivile juurde pääseda ainult püsiva elemendi indikaatoriga, siis nüüd on võimalik kasutada ka muutuvaid. Juurdepääsu kontroll toimub ainult olemasolevate piiride raames BPF-verifikaatori kaudu. See võimalus on saadaval ainult privileegitud programmidele, kuna kartusi haavatavuste ära kasutamise osas, mis on seotud spekuliivse koodi tegevusega.
    • Lisatud on võimalus kinnitada BPF-programme 'alasti' jälgimispunktidele (bare tracepoints), mis ei ole seotud kasutaja ruumis nähtavate jälgimist sündmustega (selliste jälgimispunktide puhul ei garanteerita ABI säilimist).
    • Rakendatud on CXL 2.0 (Compute Express Link) bussi tugi, mis on mõeldud CPU ja mäluseadmete vaheliseks kõrge kiirusliku suhtlemiseks (võimaldab kasutada välist mäluseadet RAM-ina või püsivana, just nagu kui see mälu oleks ühendatud CPU tavapärase mälu kontrolleri kaudu).
    • Lisatud nvmem draiver, et saada andmeid püsivara poolt reserveeritud mälupiirkondadest, mis ei ole Linuxile otse kergesti ligipääsetavad (nt EEPROM-mälu, mis on füüsiliselt kergesti ligipääsetav ainult püsivara jaoks, või andmed, mis on kergesti ligipääsetavad ainult alglaadimise varajases etapis).
    • Eemaldatud on profiliseerimissüsteemi «oprofile» tugi, mis ei saavutanud laialdast levikut ja on asendatud kaasaegse mehhanismiga perf.
    • Asünkroonse sisendi/väljundi io_uring liideses on tagatud integreerimine cgroupidega, mis kontrollivad mälu kasutamist.
    • Arhitektuurile RISC-V on lisatud tugi NUMA süsteemidele ning mehhanismidele kprobes ja uprobes.
    • Lisatud on võimalus kasutada süsteemi kõnet kcmp() sõltumatult protsesside oleku kopeerimise (checkpoint/restore) funktsionaalsusest.
    • Eemaldatud on makrod EXPORT_UNUSED_SYMBOL() ja EXPORT_SYMBOL_GPL_FUTURE(), mida ei ole praktikas juba aastaid kasutatud.
  • Virtualiseerimine ja turvalisus
    • Lisatud on KFence (Kernel Electric Fence) kaitsesüsteem, mis tuvastab mäluhaldusega seotud vead, nagu mälupoolest väljumine ja mälu vabastamise järgne pääs. Erinevalt KASAN-i silumismehhanismist on KFence-alane alamsüsteem kõrge töökiirus ja madalad kulud, mis võimaldavad tuvastada mäluhalduse vigu, mis ilmnevad ainult töötingimustes või pikaajalise töö korral.
    • Lisatud tugi ACRN hüperviisorile, mis on kirjutatud silmas pidades reaalajas ülesannete täitmise valmidust ja sobivust kriitilistes süsteemides kasutamiseks. ACRN tagab madalad kulud, garanteerib madala latentsuse ja adekvaatse reageerimise seadmetega suhtlemisel. Toetatakse CPU, sisendi/ väljundi, võrgu, graafika ja heli ressursside virtualiseerimist. ACRN-i saab kasutada mitme isoleeritud süsteemi käitamiseks. virtuaalmasinad elektroonikakontrollerites, armatuurlaudades, autoinformatsioonisüsteemides, tarbijate IoT-seadmetes ja muudes sisseehitatud seadmetes. ACRN toetab kahte tüüpi külalissüsteeme — privileegitud Service VM, mida kasutatakse süsteemi ressursside (CPU, mälu, sisend/väljund jne) haldamiseks, ning kasutajate User VM, kus saab käivitada Linuxi jaotusi, Androidi ja Windowsi.
    • IMA (Integrity Measurement Architecture) alamsüsteemis, mis tagab hashide andmebaasi, mis kontrollib failide ja nendega seotud Metaandmete terviklikkust, on nüüd võimalik kontrollida ka kernel'i andmete terviklikkust, näiteks SELinuxi reeglite muutmise jälgimiseks.
    • KVM hüpervisori on lisatud võimalus salvestada Xen-i hüperkõnesid ja edastada need kasutajaruumis töötavale emulaatorile.
    • Lisatud on võimalus kasutada Linuxi Hyper-V hüpervisiitori põhikeskkonnana. Põhikeskkonnal on otsepääs riistvarale ja seda kasutatakse külg-süsteemide käitamiseks (sarnane Dom0-le Xen-is). Siiani on Hyper-V (Microsoft Hypervisor) toetanud Linuxit vaid külg-esindustes, kuid hüperviisor ise juhiti Windowsi põhikeskkonnast.
    • Lisatud inline-krüpteerimise tugi eMMC kaartidele, mis võimaldab kasutada salvestusseadmest kontrollereid, mis teostavad läbipaistvat krüpteerimist ja dekrüpteerimist sisend-/väljundandmete jaoks.
    • Kryptosüsteemist on eemaldatud alatoetused mittekasutatavatele RIPE-MD 128/256/320 ja Tiger 128/160/192 hašidele, samuti voogkrüptogrammile Salsa20, mille asendamiseks tuli algoritm ChaCha20. Algoritm blake2 on uuendatud blake2s rakenduseks.
  • Võrgu alamsüsteem
    • Lisatud võimalus viia NAPI polling töötleja eraldi tuuma lõime, mis võimaldab parendada jõudlust teatud tüüpi koormuste korral. Varem tehti polling softirq kontekstis ja ei olnud plaanijate poolt hõlmatud, mis raskendas peenhäälestuse teostamist maksimaalse jõudluse saavutamiseks. Eraldi tuumas lõimes töötlemine võimaldab jälgida polling töötlejat kasutajaruumi all, kinnitada see eraldi CPU tuumadele ja arvestada ülesannete vahetamisel. Uue režiimi aktiveerimiseks on sysfs'is ette nähtud parameeter /sys/class/net//threaded.
    • Jätkusuutlik integratsioon MPTCP (MultiPath TCP) tuuma, TCP protokolli laiendus, et korraldada TCP-ühenduse toimimist pakettide saatmisel samaaegselt mitme marsruudi kaudu, kasutades erinevaid võrgu liideseid, mis on seotud erinevate IP-aadressidega. Uues väljaandes on lisatud võimalus seondada prioriteeti teatud voogudele, mis võimaldab näiteks korraldada varuvoolude tööd, mis aktiveeruvad vaid peamise voolu probleemide korral.
    • IGMPv3-s on lisatud EHT (Explicit Host Tracking) mehhanismi tugi.
    • Netfilteri pakettide filtreerimise mehhanismiga on rakendatud teatud tabelite omamise võimalus, et saavutada eksklusiivne kontroll (näiteks võib tulemüür taustprotsess kinnitada endale teatud tabeleid ja keelata teistel sekkuda).
  • Seadmed
    • Puhastatud on vananenud ja hoolduseta ARM-platvorme. Eemaldatud on efm32, picoxcell, prima2, tango, u300, zx ja c6x platvormide kood ning seotud draiverid.
    • amdgpu draiverisse on rakendatud GPU Sienna Cichlid (Navi 22, Radeon RX 6xxx) kaartide ülekiiruse (OverDrive) võimalus. Lisatud on FP16 piksliformaadi tugi DCE (display controller engine) jaoks 8. kuni 11. põlvkonnas. GPU Navy Flounder (Navi 21) ja APU Van Gogh jaoks on rakendatud GPU lähtestamise võimalus.
    • Intel i915 draiveris sisaldab parameetrit i915.mitigations, mis võimaldab välja lülitada isoleerimise ja kaitsemehanismide funktsioone, et suurendada jõudlust. Alates Tiger Lake'i kiipidest on aktiivne VRR (Variable Rate Refresh) toe tugi, mis võimaldab monitori värskendussagedust adapteerida, et tagada sujuv mängukogemus ilma lag-deta. Aktiviseeritud on ka Intel Clear Color tehnoloogia, et parandada värvide täpsust. Lisatud on DP-HDMI 2.1 tugi. EDP-paneelide valgustuse juhtimise võimalus on rakendatud. Gen9 GPU-de jaoks, mis toetavad LSPCON (Level Shifter and Protocol Converter), on HDR-toe tugi sisse lülitatud.
    • Nouveau draiverisse on lisatud algne tugi NVIDIA GA100 (Ampere) arhitektuuril põhinevatele GPU-dele.
    • MSM draiverisse on lisatud tugi Adreno 508, 509 ja 512 GPU-dele, mida kasutatakse SDM (Snapdragon) 630, 636 ning 660 kiipides.
    • Lisatud on tugi helikaartidele Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s ja Pioneer DJM-750. Samuti on lisatud Intel Alder Lake PCH-P helisüsteemi tugi. Rakendatud on tarkvaraline simulatsioon audioühenduse ja -lahutuse jaoks, et testida kasutaja ruumi töötlejaid.
    • Lisatud tugi Nintendo 64 mänguplatvormidele, mis olid tootmisest 1996–2003. Ajavahemikul tehtud varasemad katsed portida Linux Nintendo 64-le ei olnud lõpule viidud ja olid tuntud kui Vaporware. Uue porta loomise motiiviks on soov stimuleerida emulaatorite arengut ja mängude lihtsamat ülekandmist.
    • Lisatud draiver Sony PlayStation 5 DualSense mängu mängijale.
    • Lisatud tugi ARM-põhistele platvormidele, seadmetele ja süsteemidele: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Lisatud tugi nutitelefonidele Purism Librem5 Evergreen, Xperia Z3+ / Z4 / Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070.
    • Lisatud bcm-vk draiver Broadcom VK kiirusplaatide (nt PCIe plaanid Valkyrie ja Viper) toetamiseks, mida saab kasutada helitöötluse, video- ja pilditöötluse ning krüpteerimise seotud toimingute hajutamiseks eraldi seadmele.
    • Lenovo IdeaPad platvormi toe lisamine, mis võimaldab pideva laadimise ja klaviatuuri taustvalgustuse juhtimist. Samuti on lisatud ThinkPad platvormi ACPI-profiili tugi, mis võimaldab energia tarbimise režiimide haldamist. Lisatud on juhtmega seadme draiver Lenovo ThinkPad X1 Tablet Gen 2 jaoks.
    • Lisatud ov5647 draiver Raspberry Pi kaameramoodulile.
    • Toetuse lisamine RISC-V SoC FU740 ja HiFive Unleashed platvormidele. Samuti on lisatud uus draiver Kendryte K210 kiibi jaoks.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster