PĂ€rast kahte kuud arendust Linus Torvalds esitles kutsus vĂ€lja kernel Linux 5.14. Oluliste muudatuste seas: uued sĂŒsteemi kĂ”ned quotactl_fd() ja memfd_secret(), ide ja raw draiverite eemaldamine, uus sisendi/vĂ€ljundi prioriteedikontroller cgroup jaoks, graafikute plaanimisreĆŸiim SCHED_CORE ja infrastruktuur allkirjastatud BPF-programmide laadijate loomiseks.
Uude versiooni on aktsepteeritud 15883 parandust 2002 arendajalt, plaastri suurus â 69 MB (muudatused puudutasid 12580 faili, lisati 861501 koodirida, kustutati 321654 rida). Umbes 47% kĂ”igist 5.14 muudatustest on seotud seadme draiveritega, umbes 14% muudatustest on seotud arhitektuurispetsiifilise koodi uuendamisega, 13% on seotud vĂ”rgu kihiga, 3% â failisĂŒsteemidega ja 3% tuuma sisemiste alamsĂŒsteemidega.
- kettasĂŒsteem, sisendi/vĂ€ljundi ja failisĂŒsteemid:
- cgroup jaoks rakendatud uus sisendi/vĂ€ljundi prioriteedikontroller â rq-qos, mis suudab hallata blokiseadmest saadud pĂ€ringute töötlemise prioriteeti, mida genereerivad iga cgroup'i osalejad. Uue prioriteedi kontrolleri tugi on lisatud mq-deadline'i sisendi/vĂ€ljundi plaanijasse;
- failisĂŒsteemis ext4 rakendatud uus ioctl-kĂ€sk EXT4_IOC_CHECKPOINT, mis sunnib kirjutama kĂ”ik ootel tehingud ketta logisse ning nendega seotud bufrid vĂ€lja, samuti kirjutama ĂŒmber logimisalale eraldatud ala salvestusse. Muudatus on ette valmistatud algatuse raames, et vĂ€ltida teabe leket failisĂŒsteemidest;
- Btrfs's tehtud toimivuse optimeerimised: eemaldades ebaolulise ajakirjanemise laiendatud atribuutide töötlemise kĂ€igus fsync, tĂ”usis intensiivsete operatsioonide toimivus, mis hĂ”lmab laiendatud atribuute, kuni 17%. Lisaks on pooleliolevate operatsioonide korral, mis ei hĂ”lma ulatusi, vĂ€lja lĂŒlitatud tĂ€ieliku sĂŒnkroniseerimise tĂ€itmine, mis vĂ€hendas operatsiooni tĂ€itmise aega 12%. Sysfs'i on lisatud seadistus, et piirata sisendi/vĂ€ljundi lĂ€bilaskevĂ”imet FS-i kontrollimisel. Lisatud on ioctl-kĂ”ned seadmete suuruse muutmise ja eemaldamise toimingute tĂŒhistamiseks;
- XFS-is ĂŒmberehitatud puhvri vahemĂ€lu teostus, mis on ĂŒle viidud mĂ€lulehtede grupiviisi eraldamisele. Suurenenud vahemĂ€lu tĂ”husus;
- F2FS-i on lisatud vĂ”imalus töötada ainult lugemise reĆŸiimis ning rakendatud on ka kokkupressitud plokkide vahemĂ€lu reĆŸiim (compress_cache), et parandada juhuslike lugemiste sooritust. Toetatakse failide kokkupressimist, mis on kaardistatud mĂ€llu tehes mmap() operatsiooni. Failide kokkupressimise valikulise vĂ€ljalĂŒlitamise vĂ”imaldamiseks pakutakse uut mount'i valikut nocompress;
- exFAT draiveris on tehtud tööd, et parandada ĂŒhilduvust mĂ”nede digitaalsete kaamerate salvestusseadmetega;
- sĂŒsteemi kutsumine quotactl_fd(), mis vĂ”imaldab hallata kvotaid, kasutades mitte spetsiaalset seadme faili, vaid faili deskriptorit, mis on seotud failisĂŒsteemiga, millele kvota kehtib;
- Tuumast on eemaldatud vanad draiverid IDE liidese alusel olevatele plokiseadmetele, millele on juba ammu asenduseks tulnud libata koosseis. Vanade seadmete tugi on tÀielikult sÀilinud, muudatused puudutavad ainult vanade draiverite kasutamise vÔimalust, mille korral seadmed olid nimetatud /dev/hd*, mitte /dev/sd*;
- Tuumast on eemaldatud "raw" draiver, mis pakkus vahemÀluta juurdepÀÀsu plokiseadmetele liidese kaudu /dev/raw. Antud funktsionaalsus on juba ammu rakendatud rakendustes O_DIRECT flagi abil;
- mĂ€lu ja sĂŒsteemiteenused:
- ĂŒlesannete planeerijas on rakendatud uus planeerimisreĆŸiim SCHED_CORE, mis vĂ”imaldab hallata, millised protsessid vĂ”ivad töötada sama CPU tuumas koos. Iga protsessile vĂ”ib mÀÀrata kĂŒpsise identifikaatori, mis mÀÀrab usaldusala protsesside vahel (nĂ€iteks kuuluvuse sama kasutaja vĂ”i konteineri alla). Koodeksite tĂ€itmise korral vĂ”ib planeerija tagada sama CPU tuuma jagamise ainult ainult ĂŒhe omaniku seotud protsesside vahel, mis vĂ”ib aidata peatada mĂ”ningaid Spectre-tĂŒĂŒpi rĂŒnnakuid, takistades usaldusvÀÀrsete ja mitteusaldusvÀÀrsete ĂŒlesannete tĂ€itmist sama SMT (Hyper Threading) joone raames;
- cgroup mehhanismile on rakendatud kill operatsiooni tugi, mis vĂ”imaldab korraga lĂ”petada kĂ”ik rĂŒhmale seotud protsessid (saates SIGKILL), kirjutades virtuaalsesse faili cgroup.kill "1";
- laienevad vĂ”imekused, mis on seotud jagatud lukustuste («split lock») tuvastamisega, mis tekivad mitteĂŒhtlastesse andmetesse mĂ€lus juurdepÀÀsu korral, kuna aatomse instruktsiooni tĂ€itmisel andmed ĂŒletavad kahte CPU vahemĂ€lu rida. Sellised lukustused pĂ”hjustavad mĂ€rkimisvÀÀrset jĂ”udluse langust, seetĂ”ttu oli varasemalt vĂ”imalik sundida lĂ”petama aplikatsiooni, mis pĂ”hjustas lukustuse. Uues vĂ€ljaandes on lisatud kernelis kĂ€surea parameeter «split_lock_detect=ratelimit:N», mis vĂ”imaldab mÀÀrata sĂŒsteemiĂŒlese lukustamise intensiivsuse limiidi sekundis, mille ĂŒletamisel peatatakse iga protsess, mis pĂ”hjustas jagatud lukustuse, 20 ms ajaks selle lĂ”petamise asemel;
- CFS (CFS bandwidth controller) cgroup-kontrolleris, mis mÀÀrab, kui palju protsessoriaega iga cgroupile eraldatakse, on rakendatud vÔimalus mÀÀrata ajaliselt piiratud limiite, mis vÔimaldab paremini reguleerida hilinemiselt tundlikke koormusi. NÀiteks cpu.cfs_quota_us vÀÀrtuse seadmine 50000 ja cpu.cfs_period_us vÀÀrtuse seadmine 100000 annab protsesside gruppidele vÔimaluse kulutada igal 100 ms 50 ms CPU aega;
- lisatud algne infrastruktuur BPF-programmide laadimise loomiseks, mis tulevikus vÔimaldab laadida ainult usaldusvÀÀrse digitaalse vÔtmega allkirjastatud BPF-programme;
- lisatud uus futex-operatsioon FUTEX_LOCK_PI2, mis kasutab monotoonset taimerit ajakulu arvutamiseks, arvestades sĂŒsteemi magamise ajal veedetud aega;
- RISC-V arhitektuurile on rakendatud suurte mÀlulehtede toetamine (Transparent Huge-Pages) ja vÔimalus rakendada mehhanismi KFENCE mÀluhalduse vigade tuvastamiseks;
- sĂŒsteemi kĂ”ne madvise() kohta, mis pakub vahendeid protsessi mĂ€luhalduse optimeerimiseks, on lisatud lipud MADV_POPULATE_READ ja MADV_POPULATE_WRITE, et genereerida «page fault» kĂ”igis mĂ€lu lehtedes, mis on hĂ”ivatud lugemis- vĂ”i kirjutamisoperatsioonide jaoks, ilma et tegelikku lugemist vĂ”i kirjutamist teostataks (prefault). Lipu kasutamine vĂ”ib olla kasulik viivituste vĂ€hendamiseks programmi töö kĂ€igus, tĂ€nu «page fault» töötleja ennetavale tĂ€itmisele kĂ”igi eraldamata lehtede jaoks, ootamata nende tegelikku kasutamist;
- unit-testimise sĂŒsteem kunit lisatud testide kĂ€ivitamise tugi QEMU keskkonnas;
- uus jĂ€lgijad: âosnoiseâ rakenduste viivituste jĂ€lgimiseks, mida pĂ”hjustab katkestuste kĂ€sitlemine, ja âtimerlatâ, mis nĂ€itab ĂŒksikasjalikku teavet viivituste kohta, mis tekivad signaalidel, millega taimer Ă€ratab;
- virtualiseerimine ja turvalisus:
- on lisatud sĂŒsteemikĂ”ne memfd_secret(), mis vĂ”imaldab luua privaatse mĂ€lupiiri isoleeritud aadressiruumis, nĂ€htav ainult omanikprotsessile, mitte peegeldatav teistesse protsessidesse ning otse mittejuurdepÀÀsetav tuumale;
- sĂŒsteemikĂ”nede filtreerimissĂŒsteemis seccomp, kui lukustuse töötlejad viidakse kasutajaruumi, on antud vĂ”imalus kasutada ĂŒhte aatomset toimingut failideskirjeldaja loomiseks isoleeritavaks ĂŒlesandeks ja selle tagastamiseks, kui töötlus toimub sĂŒsteemikĂ”nes. Pakutav toiming lahendab probleem katkestuse töötlejaga kasutajaruumi, kui signaal jĂ”uab;
- on lisatud uue mehhanismi ressursside piirangute haldamiseks kasutaja-ID ruumi, mis seondub eraldi rlimit loenduritega kasutajale âuser namespaceâ. Muutus lahendab probleemi, mis tekib ĂŒhiste ressursside loendurite rakendamisel ĂŒhe kasutaja kĂ€ivitamisel erinevates konteinerites;
- KVM hĂŒperviisoris ARM64 sĂŒsteemide jaoks on lisatud tugi kĂŒlalisĂŒsteemide MTE (MemTag, MĂ€lu sildimise tĂ€iendamise) kasutamiseks, mis vĂ”imaldab igale mĂ€lukasutuse tehingule seondada sildid ja korraldada pointeride Ă”iguse kontrollimise, et blokeerida haavatavusi, mis tulenevad juba vabastatud mĂ€lupindadele, puhvrivigadele, varajastele juurdepÀÀsudele ja konteksti ĂŒletamisele;
- ARM64 platvormi pakutavad pointerite autentimise vahendid vĂ”ivad nĂŒĂŒd olla eraldi seadistatud tuuma ja kasutajaruumiga. Tehnoloogia vĂ”imaldab kasutada spetsialiseeritud ARM64 kĂ€ske tagastusadresste kontrollimiseks digitaalse allkirjade abil, mis on salvestatud kasutamata ĂŒlemmĂ€gedesse ise aadressi;
- User-mode Linuxis lisatud toetatakse PCI-seadmete draiverite kasutamist virtuaalses PCI-bussis, mida rakendab PCI-over-virtio draiver;
- x86 sĂŒsteemide jaoks on lisatud virtio-iommu parajituletatud seadme tugi, mis vĂ”imaldab edastada IOMMU-pĂ€ringuid, nagu ATTACH, DETACH, MAP ja UNMAP, virtio transportimise kaudu ilma mĂ€lulehtede tabelite emuleerimiseta;
- Intel CPU-dele, alates Skylake'i perekonnast kuni Coffee Lake'ini, on vaikimisi keelatud Intel TSX (Transactional Synchronization Extensions) laiendite kasutamine, mis pakuvad vahendeid mitme keermega rakenduste jĂ”udluse suurendamiseks dĂŒnaamilise liigsete sĂŒnkroniseerimisoperatsioonide kĂ”rvaldamise kaudu. Laiendid on keelatud rĂŒnnakute vĂ”imaluse tĂ”ttu, Zombieload, mis manipuleerivad teabe lekkeid kĂ”rvaliste kanalite kaudu, mis tekivad asĂŒnkroonsete katkestuste töömehhanismide (TAA, TSX Asynchronous Abort) korral;
- vĂ”rgusĂŒsteem:
- MPTCP (MultiPath TCP) tuuma integreerimine on jĂ€tkunud, see on TCP protokolli laiendus, mis vĂ”imaldab TCP-ĂŒhenduse toimimist, edastades pakette samaaegselt mitmete marsruutide kaudu erinevate vĂ”rgu liideste kaudu, mis on seotud erinevate IP-aadressidega. Uues vĂ€ljaandes on lisatud on rakendatud mehhanism, mis mÀÀratleb omaenda liikluse rĂ€simis poliitika IPv4 ja IPv6 jaoks (multipath hash policy), mis vĂ”imaldab kasutajaruumi mÀÀrata, milliseid vĂ€lju pakettides, sealhulgas kapseldatud, kasutatakse rĂ€simiste mÀÀramiseks, et valida paketi marsruut;
- virtio transpordisse on lisatud soklite tugi SOCK_SEQPACKET (jÀrjekindel ja usaldusvÀÀrne datagrammide edastamine);
- sokli mehhanismi SO_REUSEPORT vĂ”imalusi on laiendatud, mis vĂ”imaldab mitmel kuulaval sokkil ĂŒhineda ĂŒhele pordile, et vastu vĂ”tta ĂŒhendusi, jaotades sissetulevaid pĂ€ringud samaaegselt kĂ”ikide SO_REUSEPORT soklite vahel, mis lihtsustab mitme keermega serveri rakenduste loomist. Uues versioonis on lisatud on rakendatud vahendid juhtimise edastamiseks teisele soklile, kui algne sokkel ei suuda pĂ€ringut töödelda (lahendab probleemi ĂŒksikute ĂŒhenduste kadumisega teenuste taaskĂ€ivitamisel);
- riistvara:
- amdgpu draiveris rakendatud toetatakse uusi AMD Radeon RX 6000 GPU seeriaid, mis arenevad koodnimede «Beige Goby» (Navi 24) ja «Yellow Carp» all, ning on paranenud GPU Aldebarani (gfx90a) ja APU Van Gosti tugi. Lisatud on vĂ”imalus töötada samaaegselt mitme eDP paneeliga. APU Renoir jaoks on realiseeritud toimetulek tugiga krĂŒpteeritud puhverdate kasutamiseks videomĂ€lus (TMZ, Trusted Memory Zone). Lisatud on sooja eemaldamise toetus graafikakaartide jaoks (hot-unplug). Radeon RX 6000 GPU-de (Navi 2x) ja vanemate AMD GPU-de jaoks on vaikimisi sisse lĂŒlitatud energiasÀÀstumehhanismi ASPM (Active State Power Management) toetus, mis varem oli aktiveeritud ainult Navi 1x, Vega ja Polaris GPU-de jaoks;
- AMD kiipide jaoks on lisatud jagatud virtuaalse mĂ€lu (SVM, shared virtual memory) tugi HMM (Heterogeneous memory management) alusel, mis vĂ”imaldab kasutada seadmeid omaette mĂ€lu haldamise asjadega (MMU, memory management unit), millel on juurdepÀÀs peamisele mĂ€lule. HMM abil saab samuti korraldada ĂŒhist aadressiruumi GPU ja CPU vahel, kus GPU saab juurde pÀÀseda protsessi pĂ”hiraamatule;
- lisatud algne tugi tehnoloogiale AMD Smart Shift, mis dĂŒnaamiliselt muudab CPU ja GPU energiatarbimise parameetreid AMD kiibistiku ja graafika kaardiga sĂŒlearvutites, et tagada jĂ”udlus mĂ€ngude, videote redigeerimise ja 3D-renderdamise ajal;
- intel i915 draiveris on aktiveeritud toetatakse Intel Alderlake P kiipe;
- lisatud drm/hyperv draiver Hyper-V virtuaalse graafika adapteri jaoks;
- on lisatud grafikadraiver simpledrm, mis kasutab EFI-GOP vÔi VESA raami, mida pakub UEFI firmware vÔi BIOS. Draiveri peamine eesmÀrk on vÔimaldada graafilise vÀljundi kasutamist kÀivitamise algstaadiumis, enne kui on vÔimalik tÀielikult kasutada DRM-draiverit. Draiverit saab kasutada ka ajutise lahendusena seadmetele, mille jaoks pole veel kohandatud DRM-draivereid;
- lisatud toetatakse All-in-One arvutit Raspberry Pi 400;
- lisatud dell-wmi-privacy draiver toele Dell sĂŒlearvutites tarnitud kaamera ja mikrofonide riistvaraliste lĂŒlitite toetamine;
- Lenovo sĂŒlearvutite jaoks on lisatud WMI liides BIOS-i seadete muutmiseks sysfs /sys/class/firmware-attributes/ kaudu;
- laiendatud toetatakse USB4 liidese seadmeid;
- lisatud toetab kaartide ja kodeerijate AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ja Texas Instruments TAS2505. Parandatud helitugi HP ja ASUS sĂŒlearvutites. Lisatud karkassid helide esitamise viivituse vĂ€hendamiseks USB-liidestega seadmetel.
Allikas â opennet.ru.
Allikas: linux.org.ru
