Linuxi tuuma väljalase 5.14

Pärast kaht kuud arendust esitles Linus Torvalds Linuxi tuuma väljalaset 5.14. Olulisemate muudatuste seas on: uued süsteemi kutsed quotactl_fd() ja memfd_secret(), ide ja raw draiverite eemaldamine, uue sisendi/väljundi prioriteetide juhtimisseadme rakendamine cgroupile, SCHED_CORE tööde ajakava ning infrastruktuur allkirjastatud BPF-programmide laadijate loomiseks.

Uude versioonis on kokku 15883 parandust 2002 arendajalt, plaastri suurus on 69 MB (muudatused puudutasid 12580 faili, lisati 861501 rida koodi, eemaldati 321654 rida). Umbes 47% kõikidest 5.14 muudatustest on seotud seadme draiveritega, umbes 14% muudatusi on seotud riistvaraarhitektuuri spetsiifilise koodi uuendamisega, 13% on seotud võrgustiku kihtidega, 3% -ga failisüsteemidest ja 3% -ga tuuma sisemistest alamsüsteemidest.

Peamised uuendused:

  • Diskisüsteem, sisend/väljund ja failisüsteemid
    • Cgroupile on rakendatud uus sisendi/väljundi prioriteetide juhtimisseade - rq-qos, mis suudab hallata blokeerivate seadmete päringute töötlemise prioriteeti, mille genereerivad iga cgroupi liikmed. Uue prioriteedi juhtimise tugi on lisatud mq-deadline sisendi/väljundi ajakavalisse.
    • Ext4 failisüsteemis on rakendatud uus ioctl-käsk EXT4_IOC_CHECKPOINT, mis sunnib kõik ootel tehingud žurnaalist ja seotud puhvrid kettale kirjutama ning üle kirjutama žurnaali poolt kasutatava ala salvestusse. Muudatus on ette valmistatud teabelekete vältimise algatuse raames failisüsteemidest.
    • Btrfs-is on toimunud jõudluse optimeerimised: tänu liigse žurnaalimise välistamisele pikendatud atribuutide täitmise ajal on intensiivsete pikendatud atribuutide tehingute jõudlus paranenud kuni 17%. Lisaks on katkestuste teostamisel, mis ei mõjuta ulatusi, täieliku sünkroniseerimise sooritamine välja lülitatud, vähendades operatsiooni kestust 12%. Sysfs-is on lisatud seade sisendi/väljundi läbilaskevõime piiramiseks failisüsteemi kontrollimisel. Lisatud on ioctl-kutsed suurendamis- ja seadme eemaldamise toimingute tühistamiseks.
    • XFS-is on ümber kujundatud puhvrikihi rakendamine, mis on muudetud mälulehtede eraldamise režiimile. Kihi töö efektiivsus on paranenud.
    • F2FS on lisatud valik, mis võimaldab töötada ainult lugemisrežiimis ja on rakendatud kokkusurutud plokkide vahemälu režiim (compress_cache), et parandada juhusliku lugemise jõudlust. On rakendatud toetust failide kokkusurumiseks, mis kajastuvad mällu operatsiooni mmap() abil. Failide kokkusurutuse üldiseks keelamiseks maske kaupa on ette nähtud uus monteerimise valik nocompress.
    • exFAT draiveris on tehtud tööd, et parandada ühilduvust teatud digitaalsete kaamerate salvestusseadmetega.
    • Lisatud on süsteemi kutsung quotactl_fd(), mis võimaldab hallata kvoote mitte spetsiaalse seadme faili kaudu, vaid failikirjelduse näitamisega, mis on seotud failisüsteemiga, millele kvoot kehtib.
    • Kernist on eemaldatud vanad draiverid plokkseadmete jaoks IDE liidese kaudu, millele on juba ammu asenduseks tulnud libata alamsüsteem.
    • Kernist on eemaldatud draiver 'raw', mis pakub buframata juurdepääsu plokkseadmetele liidese kaudu /dev/raw. Antud funktsionaalsus on juba ammu rakendustes realiseeritud O_DIRECT lipu kaudu.
  • Mälu ja süsteemiteenused
    • Ülesannete ajastajas on rakendatud uus ajastamisrežiim SCHED_CORE, mis võimaldab hallata, millised protsessid saavad sama CPU tuuma peal koos töötada. Iga protsessile saab määrata küpsise identifikaatori, mis määrab usaldusala protsesside vahel (näiteks kuuluvus ühele kasutajale või konteinerile). Koodi täitmise korral saab ajastaja tagada, et sama CPU tuuma jagamine on võimalik ainult sama omanikuga seotud protsesside jaoks, mis võib aidata blokeerida mõningaid Spectre klassi rünnakuid, takistades usaldusväärsete ja mitteusaldusväärsete ülesannete täitmist samas SMT (Hyper Threading) voos.
    • Cgroup'i jaoks on rakendatud kill toimingu tugi, mis võimaldab üheaegselt lõpetada kõik rühmale seotud protsessid (saata SIGKILL), kirjutades '1' virtuaalsesse faili cgroup.kill.
    • Lai laiendatud on võimalused, mis on seotud killustatud lukustuste tuvastamise reageerimisega („split lock“), mis tekivad, kui juurdepääs on ebaühtlastele andmetele mälus, kuna aatomilise käsu täitmise käigus andmed katavad kaks CPU vahemälu rida. Sellised lukustused põhjustavad märkimisväärset jõudluse langust, mistõttu varem anti võimalus rakenduse, mis lukustuse põhjustas, sundlõpetamiseks. Uues väljaandes on lisatud kernelikoha käsurea parameeter „split_lock_detect=ratelimit:N“, mis võimaldab määrata süsteemi tasemel lukustamise operatsioonide intensiivsuse limiidi sekundis, mille ületamisel peatatakse iga protsess, mis on muutunud killustatud lukustuse allikaks, 20 ms ajaks, selle asemel et lõpetada.
    • CFS (Completely Fair Scheduler) ressursigruppide (cgroup) kontrollis on määratud, kui palju protsessoriaega saab igale cgroupile eraldada, rakendatud võimalus määrata ajaga piiratud limiite, mis võimaldab paremini reguleerida viivitustele tundlike koormuste töötlemist. Näiteks kui seada cpu.cfs_quota_us väärtuseks 50000 ja cpu.cfs_period_us väärtuseks 100000, siis saavad protsessigrupp kulutada igal 100 ms 50 ms CPU aega.
    • Lisatud on esialgne infrastruktuur BPF-programmide loaderite loomiseks, mis võimaldab tulevikus lubada laadimist ainult õiget digitaalset võtmega allkirjastatud BPF-programmide osas.
    • Lisatud on uus futex-operatsioon FUTEX_LOCK_PI2, mis kasutab monotoneeritud taimerit ajapiirangute arvutamiseks, arvestades süsteemi magamise ajal veedetud aega.
    • RISC-V arhitektuuris on rakendatud toe suurtele mälu lehtedele (Transparent Huge-Pages) ja KFENCE mehhanismi rakendamise võimalust mälu kaudu töötamisel vigade tuvastamiseks.
    • Süsteemi süsteemikõne madvise(), mis pakub vahendeid protsessi mälu haldamise optimeerimiseks, on lisatud lipud MADV_POPULATE_READ ja MADV_POPULATE_WRITE, et genereerida "page fault" kõigis mälu lehtedes, mis on peegeldatud lugemis- või kirjutamisoperatsioonide jaoks, ilma et tegelikku lugemist või kirjutamist teostataks (prefault). Lipu kasutamine võib olla kasulik, et vähendada viivitusi programmi töö käigus, tänu sellele, et "page fault" töötlejat teostatakse ette kõigi mitteteostatute lehtede jaoks, ootamata tegelikku nendele pöördumist.
    • Unit-testimise süsteemi kunit on lisatud tugi testide käivitamiseks QEMU keskkonnas.
    • Lisatud on uued jälgimisriistad: "osnoise" rakenduste viivituste jälgimiseks, mis on põhjustatud katkestuste töötlemisest, ja "timerlat", et anda detailset teavet ajastusviivituste kohta, mis on tingitud taimerisignaali põhjal äratamisest.
  • Virtualiseerimine ja turvalisus
    • Lisatud süsteemikõne memfd_secret(), mis võimaldab luua privaatse mäluala isoleeritud aadressiruumis, mis on nähtav ainult omaniku protsessile, mitte teistele protsessidele ja millele südamik ei pääse otse.
    • Süsteemikõnede filtreerimise süsteemis seccomp, lukustamise töötlejate viimisega kasutajaruumi, on antud võimalus kasutada ühte atomaarset operatsiooni isoleeritava ülesande jaoks faili deskriptsiooni loomiseks ja selle tagastamiseks süsteemikõne töötlemise käigus. Pakutud operatsioon lahendab probleemi, mis on seotud töötleja katkestamisega kasutajaruumi, kui signaal jõuab.
    • Uus mehhanism on lisatud, et hallata ressursipiiranguid kasutajate ID nimede ruumis, mis seob üksikud rlimit loendurid kasutajaga "user namespace". Muudatus lahendab probleemi, mis on seotud ühiste ressursside loentajate rakendamisega, kui ühe kasutaja alusel käivitada protsesse erinevates konteinerites.
    • Hüpervisor KVM ARM64 süsteemide jaoks on lisatud võimalus kasutada külalissüsteemides MTE (MemTag, Memory Tagging Extension) laiendust, mis võimaldab siduda sildid iga mälu eraldamise operatsiooniga ja korraldada näitajate korrektse kasutamise kontrollimist, et blokeerida haavatavuste ärakasutamist, mis on põhjustatud juba vabastatud mälublokkide, mälupuhvrite ületäitumise, initsialiseerimise eelsete pöördumiste ja kontekstitest väljas kasutamise tõttu.
    • ARM64 platvormi pakutavad viidikute autentimise vahendid (Pointer Authentication) on nüüd eraldi seadistatavad tuuma ja kasutaja ruumi jaoks. Tehnoloogia võimaldab kasutada spetsialiseeritud ARM64 käske tagastusaadresside kontrollimiseks, kasutades digitaalallkirju, mis on salvestatud viidiku änkkadude ülemistes bittides.
    • User-mode Linuxisse on lisatud tugi PCI-seadmestike draiverite kasutamiseks virtuaalses PCI-bussis, mida rakendab PCI-over-virtio draiver.
    • X86 süsteemide jaoks on lisatud tugi virtio-iommu paravirtualiseeritud seadme jaoks, mis võimaldab edastada IOMMU-päringuid, nagu ATTACH, DETACH, MAP ja UNMAP, virtio transpordi kaudu ilma mälulehtede tabelite emuleerimiseta.
    • Intel CPU-de jaoks, alates Skylake'i perekonnast kuni Coffee Lake'ini, on vaikimisi keelatud Intel TSX (Transactional Synchronization Extensions) laienduste kasutamine, mis pakuvad vahendeid mitme lõime rakenduste jõudluse suurendamiseks dünaamilise üleliigsete sünkroonimisoperatsioonide välistamisega. Laiendused on keelatud Zombieload'i rünnakute võimaluse tõttu, mis manipuleerib teabe lekkimisega kõrvalkanalite kaudu, mis tekib asünkroonsete katkestuste toimingute mehhanismi (TAA, TSX Asynchronous Abort) toimimisel.
  • Võrgusüsteem
    • MPTCP (MultiPath TCP) tuuma integreerimist on jätkatud; see on TCP protokolli laiendus, mis korraldab TCP-ühenduse töö pakettide edastamiseks mitme marsruudi kaudu, kasutades erinevaid võrguinterfääre, mis on seotud erinevate IP-aadresside. Uues väljaandes on lisatud mehhanism võimalike trafiku hash-poliitikate määratlemiseks IPv4 ja IPv6 jaoks (multipath hash policy), mis annab kasutajaruumi kaudu võimaluse määrata, milliseid välju pakettides, sealhulgas kapseldatud, kasutatakse hash'i arvutamisel, mis määrab paketi marsruudi valiku.
    • Virtuaalsesse virtio transpordi on lisatud tugi SOCK_SEQPACKET sokkidele (järjekindel ja usaldusväärne datagrammide edastamine).
    • SO_REUSEPORT soket mekanismi için olanaklar genişletildi; bu, birden fazla dinleyen soketin tek bir porta bağlanarak gelen bağlantıları almasını ve gelen isteklerin tüm bağlı SO_REUSEPORT soketleri arasında dağıtılmasını sağlar. Bu, çok iş parçacıklı sunucu uygulamalarının oluşturulmasını kolaylaştırır. Yeni sürümde, başlangıçta seçilen soketin isteği işlerken bir hata durumunda kontrolü başka bir sokete geçirme araçları eklendi (bu, hizmetlerin yeniden başlatılması sırasında bireysel bağlantıların kaybolması sorununu çözer).
  • Varustus
    • amdgpu sürücüsünde, kod adlarıyla geliştirilen yeni AMD Radeon RX 6000 GPU serilerinin desteği eklendi: "Beige Goby" (Navi 24) ve "Yellow Carp", ayrıca Aldebaran (gfx90a) ve APU Van Gogh GPU'ları için destek geliştirilmiştir. Birden fazla eDP paneli ile aynı anda çalışma yeteneği eklendi. APU Renoir için şifreli bellek alanları (TMZ, Trusted Memory Zone) ile çalışmak için destek sağlandı. Grafik kartlarının sıcak çıkarılması (hot-unplug) desteği de eklendi. Radeon RX 6000 GPU'ları (Navi 2x) ve eski AMD GPU'ları için, daha önce yalnızca Navi 1x, Vega ve Polaris GPU'ları için etkin olan ASPM (Active State Power Management) enerji tasarrufu mekanizmasının varsayılan olarak desteği aktif hale getirildi.
    • AMD yongaları için, ana belleğe erişebilen belleği yönetim birimlerine (MMU, memory management unit) sahip cihazların kullanılmasına olanak tanıyan Heterogeneous memory management (HMM) alt sistemine dayalı paylaşımlı sanal bellek (SVM, shared virtual memory) desteği eklendi. HMM sayesinde, GPU ve CPU arasında bir ortak adres alanı oluşturmak mümkündür ve GPU, bir süreçteki ana belleğe erişim sağlayabilir.
    • AMD Smart Shift teknolojisi için başlangıç desteği eklendi; bu, AMD yongasetleri ve grafik kartlarına sahip dizüstü bilgisayarlarda, oyunlar, video düzenleme ve 3D renderleme sırasında performansı artırmak için CPU ve GPU'nun enerji tüketim parametrelerini dinamik olarak değiştiren bir çözümdür.
    • Intel grafik kartları için i915 sürücüsünde Intel Alderlake P yongalarının desteği eklendi.
    • Hyper-V sanal grafik adaptörü için drm/hyperv sürücüsü eklendi.
    • Raspberry Pi 400 tek kartlı bilgisayar desteği eklendi.
    • Dell dizüstü bilgisayarlarda verilen kamera ve mikrofon donanım anahtarlarının desteği için dell-wmi-privacy sürücüsü eklendi.
    • Lenovo dizüstü bilgisayarlar için sysfs /sys/class/firmware-attributes/ aracılığıyla BIOS parametrelerini değiştirmek için WMI arayüzü eklendi.
    • USB4-liidese to поддержavad seadmeid on laiendatud.
    • Lisatud toetus helikaartidele ja koodekite jaoks: AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ja Texas Instruments TAS2505. Kõlarite toetus on paranenud HP ja ASUS sülearvutites. Lisatud patšid, et vähendada heli esitamise viiviseid USB-liidesega seadmetes.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster