Linuxi kärje 5.11 väljaanne

Pärast kahte kuu arendust tutvustas Linus Torvalds Linuxi tuuma versiooni 5.11. Mõned silmapaistvamad muudatused hõlmavad Intel SGX enclave'ide tuge, uut süsteemi kutsete püüdmise mehhanismi, täiendavat virtuaalbusse, MODULE_LICENSE() juurutamise keelamist, kiire filtreerimise režiimi seccomp's, ia64 arhitektuuri toe lõpetamist, WiMAX tehnoloogia üleviimist "staging" haru ja SCTP inkapseldamise võimalust UDP-s.

Uude versioon lõbustati 15480 parandusega 1991 arendajalt, plaastri suurus on 72 MB (muudatused hõlmasid 12090 faili, lisati 868025 koodirida ja eemaldati 261456 rida). Umbes 46% kõikidest 5.11 esitatud muudatustest on seotud seadme draiveritega, ligikaudu 16% muudatustest on seotud riistvara arhitektuurile spetsiifilise koodi värskendamisega, 13% on seotud võrgu stack'iga, 3% failisüsteemidega ja 4% tuuma siseste alamsüsteemidega.

Põhilised uuendused:

  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Btrfs-ile on lisatud mitmeid mountimisvalikuid, mida saab kasutada andmete taastamiseks rikutud failisüsteemilt: „rescue=ignorebadroots“, et mountida, hoolimata teatud juurtüvede (extent, uuid, andmete teisaldamine, seade, csum, vabade ruumide) kahjustustest; „rescue=ignoredatacsums“, et keelata andmete kontrollsummade kontrollimine ja „rescue=all“, et samaaegselt aktiveerida režiimid „ignorebadroots“, „ignoredatacsums“ ja „nologreplay“. Mountimisvalik „inode_cache“, mis oli varem deklareeritud vananenuks, enam ei toeta. Kood on valmistatud ette metainformatsiooni ja andmete plokkide toetuseks, mille suurus on väiksem leheküljest (PAGE_SIZE), ning ka tsoonitud ruumide eraldamise režiimi toetuseks. Puhverdamata (Direct IO) päringud on viidud iomap infrastruktuuri. Mitmete toimingute jõudlust on optimeeritud, mõnel juhul võib kiirus tõusta kümnete protsentide ulatuses.
    • XFS-is on rakendatud lipp „needsrepair“, mis märgib, et taastamine on vajalik. Kui see lipp on seatud, ei saa failisüsteemi mountida, kuni lipp on utiliidiga xfs_repair tagasi seadistatud.
    • Ext4 toob kindlasti ainult veaparandused ja optimeerimised, samuti on toimunud koodipuhastus.
    • Korduv eksportimine on lubatud failisüsteemidele, mis on mountitud NFS-i kaudu (st now kõigepealt monteeritud NFSi partitsioon saab samuti NFS-i kaudu eksportida ja kasutada vahemäluna).
    • Süsteemi kutse close_range() on lisatud võimalus CLOSE_RANGE_CLOEXEC, mis võimaldab protsessil sulgeda terve vahemiku avatud failikirjeid sulgemise režiimis close-on-exec.
    • F2FS failisüsteemi on lisatud uusi ioctl() kutseid, mis võimaldavad kasutajaruumi kaudu hallata, milliseid faile hoitakse tihendatud kujul. Lisatud on monteerimise valik «compress_mode=», et valida tihenduse halduri asukoht kas tuuma poolel või kasutajaruumi poolel.
    • Overlayfs'i montalduse võimalus on nüüd olemas mittepriviligeeritud protsesside jaoks, kasutades eraldi kasutaja identifikaatorite ruumi (user namespace). Turvamudeli rakenduse vastavuse kontrollimiseks viidi läbi täielik koodi audit. Overlayfs'is on ka võimalus käivitada, kasutades failisüsteemi piltide koopiaid koos UUID kontrollimise valikulise väljalülitamisega.
    • Ceph'i failisüsteemi on lisatud msgr2.1 protokolli tugi, mis võimaldab kasutada AES-GCM algoritmi andmete edastamisel kaitstud kujul.
    • dm-multipath moodulis on rakendatud võimalus arvestada CPU seotud ülesandeid („IO affinity”) sisend-/väljastussoe määramisel.
  • Mälu ja süsteemiteenused
    • Lisatud on uus süsteemikutsungite pealtkuulamise mehhanism, mis põhineb prctl() funktsioonil ja võimaldab kasutajaruumi kaudu genereerida erandeid, kui pöördutakse kindla süsteemikutsungi poole ja emuleerida selle täitmist. Antud funktsionaalsus on nõutud Wine'i ja Protoni puhul, et emuleerida Windowsi süsteemikutsungeid, mis on vajalik mängude ja programmide ühilduvuse tagamiseks, mis teevad süsteemikutsungeid otse Windows API-st mööda (näiteks volitamata kasutamise kaitsmiseks).
    • Süsteemikutsungi userfaultfd() puhul, mis on mõeldud lehekülgede veaparandamiseks (pöördumine eraldamata mälu lehekülgede poole) kasutajaruumis, on lisatud võimalus välja lülitada tuletatud erandite töötlemine kerneli tasemel, et keerulisemaks muuta teatud haavatavuste ärakasutamist.
    • BPF alamsüsteemi on lisatud toetus ülesande kohalike andmete salvestamisele (task-local storage), mis seob andmed konkreetse BPF-töötlejaga.
    • BPF programmide mälutarbimise arvestus on täielikult ümber kujundatud — BPF objektide mälukasutuse haldamiseks on pakutud cgroupi kontrollerit memlock rlimit'i asemel.
    • BTF (BPF Tüübi Vorming) mehhanismis, mis pakub teavet BPF pseudokoode tüüpide kontrollimiseks, on rakendatud tuumamoodulite tugi.
    • Asünkroonse I/O liidese io_uring toele on lisatud süsteemikutsed shutdown(), renameat2() ja unlinkat(). Funktsiooni io_uring_enter() kutsumisel on lisatud võimalus määrata ajavahemik (ajavahemiku määramise argumentide toetuse saab kontrollida lipu IORING_FEAT_EXT_ARG abil).
    • Intel Itanium protsessorites kasutatav ia64 arhitektuur on kantud hoolduseta ("orphaned") kategooriasse, mis tähendab testimise lõpetamist. Hewlett Packard Enterprise on lõpetanud Itaniumi uute seadmete tellimise, samas kui Intel tegi seda juba eelmisel aastal.
    • Tugi MicroBlaze arhitektuuri süsteemidele, mis ei ole varustatud mälu juhtimise plokiga (MMU), on lõpetatud. Sellised süsteemid on juba ammu päevakorrast välja jäänud.
    • MIPS arhitektuurile on lisatud koodi katvuse testimise tugi utiliidi gcov kaudu.
    • Lisatud tugi virtuaalsele bussile auxiliary, mis võimaldab suhtlemist multifunktsionaalsete seadmete vahel, mis ühendavad funktsioone, mis vajavad erinevaid draivereid (nt Etherneti ja RDMA tugiga võrkaartid). Bussi saab kasutada seadme peamise ja sekundaarse draiveri määramiseks, kui MFD (Multifunktsionaalsete seadmete) alamsüsteemi kasutamine on keeruline.
    • RISC-V arhitektuurile on lisatud CMA (Contiguous Memory Allocator) mälu jaotamise süsteemi tugi, mis on optimeeritud suurte järjestikuste mälu piirkondade eraldamiseks, kasutades mälu lehekülgede liigutamise tehnikat. RISC-V-le on rakendatud ka juurdepääsupiirangud /dev/mem ja katkestuste töötlemise aja arvestamine.
    • 32-bitiste ARM süsteemide jaoks on lisatud KASan (Kernel address sanitizer) silumise tööriista tugi, mis tagab mälu kasutamise vigade tuvastamise. 64-bitiste ARM süsteemide puhul on KASani rakendamine viidud üle MTE (MemTag) siltide kasutamisele.
    • Lisatud süsteemi kõne epoll_pwait2(), mis võimaldab kasutada nano-sekundilise täpsusega ajavahemikke (epoll_wait kõne manipuleerib millisekunditega).
    • Konstruktsioonis on tagatud vigade väljund, kui proovite kokku panna laaditud südamiku mooduleid, mille puhul ei ole makro MODULE_LICENSE() abil litsentsi määratud. Vigade genereerimine toimub nüüd ka siis, kui kasutatakse makrot EXPORT_SYMBOL() staatiliste funktsioonide jaoks.
    • Lisatud tugi GEM-objektide kaardistamiseks mälu kaudu, mis on seotud sisendi/väljastusega, mis kiirus töö freambufferiga mõnel arhitektuuril.
    • Kconfigis lõpetati Qt4 toe pakkumine (Qt5, GTK ja Ncurses jäävad alles).
  • Virtualiseerimine ja turvalisus
    • Süsteemikutsesse seccomp() on lisatud kiire reageerimise režiimi tugi, mis võimaldab väga kiiresti määrata, kas teatud süsteemikõnes on lubatud või keelatud protsessile kinnitatud volituste tabeli (constant-action bitmap) põhjal, ilma BPF-töötlejat käivitamata.
    • Integreeritud on südamiku komponendid Intel SGX (Software Guard eXtensions) tehnoloogia põhjal ankrajate loomiseks ja haldamiseks, mis võimaldab rakendustel täita koodi isoleeritud, krüpteeritud mälu piirkondades, millele ülejäänud süsteemi juurdepääs on piiratud.
    • Kasutajaruumi juurdepääsu piiramisalgatuse raames on keelatud kirjutada MSR_IA32_ENERGY_PERF_BIAS registrisse, mis võimaldab muuta protsessori energiaefektiivsuse režiimi („tavaline”, „päring”, „energia säästmine”).
    • Kernel-rt harust on reaalaegsetele süsteemidele üle kantud kõrge prioriteediga ülesannete rände keelamise võimalus CPU vahel.
    • ARM64 süsteemide jaoks on lisatud MTE (MemTag, mälu siltimise laiendus) siltide rakendamise võimalus signaalide töötlemise mäl addressi jaoks. MTE aktiveerimine toimub SA_EXPOSE_TAGBITS valiku määramise kaudu sigaction()-is ja see võimaldab korraldada näitajate kasutamise kontrollimist, et takistada haavatavuse ärakasutamist, mis tuleneb juba vabastatud mälu plokkide, puhverülekande, initsialiseerimiseni ette ostmise ja praeguse konteksti katsetamata kasutamisest.
    • Lisatud parameter «DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING», mis võimaldab dm-verity alamprogrammi kontrollida võtmehoidlas (keyring) talletatud sertifikaatide hällihäireid. Praktikas võimaldab seadistus verifitseerida mitte ainult tuumas sisalduvaid sertifikaate, vaid ka töö ajal laaditavaid sertifikaate, mis võimaldab sertifikaate uuendada ilma kogu tuuma uuendamiseta.
    • User-mode Linuxisse on lisatud suspend-to-idle režiimi tugi, mis võimaldab keskkonda külmutada ja kasutada SIGUSR1 signaali ärkamiseks.
    • Virtio-mem mehhanismi, mis võimaldab virtuaalmasinate jaoks mälu kuumühendust ja -välja lülitust, on lisatud suurt plokki (BBM, Big Block Mode) toetav režiim, mis võimaldab edastada või võtta mälu plokkidena, mis ületavad tuuma mälubloki suurust, mis on vajalik VFIO optimeerimiseks QEMU-s.
    • Tuuma tasemel TLS-i teostusele on lisatud CHACHA20-POLY1305 šifri tugi.
  • Võrgu alamsüsteem
    • 802.1Q (VLAN) jaoks on välja töötatud ühendusvigade haldamise mehhanism (CFM, Connectivity Fault Management), mis võimaldab tuvastada, kinnitada ja isoleerida vigu virtuaalsetes sillades toimuvates võrkudes (Virtual Bridged Networks). Näiteks saab CFM-i kasutada probleemide lokaliseerimiseks võrkudes, mis hõlmavad mitmeid sõltumatuid organisatsioone, kelle töötajatel on juurdepääs ainult oma seadmetele.
    • SCTP protokolli pakettide kapseldamise tugi UDP-pakettides (RFC 6951) on lisatud, mis võimaldab SCTP-d kasutada vanade aadressitõlketega võrkudes, mis ei toeta SCTP-d otse, ning rakendada SCTP-d süsteemides, mis ei paku otsest juurdepääsu IP tasemele.
    • WiMAX tehnoloogia rakendamine on viidud stagingusse ning tulevikus on plaanis see eemaldada, kui ei leita kasutajaid, kellel on WiMAX-i vajadus. WiMAX-i ei kasutata enam avalikes võrkudes ning üheski tuumasi, millega WiMAX-i kasutada, on jäänud ainult aegunud Intel 2400m draiver. NetworkManageri võrgukonfiguraatoris peatati WiMAX-i tugi 2015. aastal. Praegu on WiMAX praktiliselt täielikult asendatud selliste tehnoloogiatega nagu LTE, HSPA+ ja Wi-Fi 802.11n.
    • Optimeerimistööd on viidud läbi sissetuleva TCP-liikluse töötlemise tõhususe parandamiseks zerocopy-režiimis, st ilma täiendava kopeerimiseta uutele puhverdele. Keskmise suurusega liikluse jaoks, mis katab kümneid või sadu kilobaite andmeid, on zerocopy kasutamine võrreldes recvmsg()-iga oluliselt efektiivsem. Näiteks viidatud muudatuste tõttu on RPC-stiilis liikluse töötlemise efektiivsus 32 KB sõnumite puhul zerocopy kasutamisel suurenenud 60-70%.
    • Uued ioctl() kõned on lisatud mitme PPP kanali katmiseks loodud võrgu sildade jaoks. Esiteks pakub ettenähtud funktsioon raamide liikumist ühelt kanalilt teisele, näiteks PPPoE-lt PPPoL2TP sessioonile.
    • MPTCP (MultiPath TCP) tuumasse integreerimise jätkamine, TCP protokolli laiendused TCP-ühenduse töötamiseks pakettide saatmiseks samal ajal mitme marsruudi kaudu erinevate võrgu liidestega, mis on seotud erinevate IP-aadressidega. Uues versioonis on rakendatud ADD_ADDR valiku tugi, et kuulutada kättesaadavaid IP-aadresse ühendusi, millele on võimalik liituda olemasoleva MPTCP-ühenduse juurde uute voogude lisamisega.
    • Lisatud võimalus konfigureerida tegevusi, kui ületatakse ühenduste häiringute eelarve (busy-polling). Varem oli saadaval režiim SO_BUSY_POLL, mis tähendas üleminekut softirq peale eelarve ammendumist. Rakendustele, mis vajavad jätkuvat pollimist, on pakutud uut valikut SO_PREFER_BUSY_POLL.
    • IPv6-s on rakendatud SRv6 End.DT4 ja End.DT6 režiimide tuge, mida kasutatakse mitme kasutaja IPv4 L3 loomisel. VPN ning VRF (Virtuaalne suunamine ja edastamine) seadmete toetamiseks.
    • Netfilteris on ühtlustatud väljendite set rakendamine, mis võimaldas määrata mitu väljendit iga set-nimekirja elemendi jaoks.
    • Traadita 802.11 süsteemi on lisatud API-d SAR võimsuse piirangute seadistamiseks, samuti AE PWE ja HE MCS parameetritele. Intel iwlwifi draiverisse on lisatud 6GHz (Ultra High Band) sageduse tugi. Qualcomm Ath11k draiverisse on lisatud kiire ühenduse seadistamise tehnoloogia FILS (Fast Initial Link Setup, standardiseeritud kui IEEE 802.11ai), mis kõrvaldab viivitused rändamisel, kui liigelda ühe juurutuspunkti juurest teise.
  • Seadmed
    • Amdgpu draiveris on toe toetatud AMD «Green Sardine» (Ryzen 5000) APU-d ja «Dimgrey Cavefish» (Navi 2) GPU-d, samuti algne tugi AMD Van Gogh APU-le, millel on Zen 2 arhitektuur ja RDNA 2 (Navi 2) GPU. Uute identifikaatorite toetus APU Renoir (tuginedes CPU Zen 2 ja GPU Vega) on lisatud.
    • I915 draiveris Intel'i graafikakaartidele on toe toetatud IS (Integer scaling) tehnoloogia, mis rakendab lähenemist, et suurendada mõõtkava, võttes arvesse naaberpikselite olekut (Nearest-neighbor interpoleerimine) puuduvate pikslite värvi määramiseks. Toetust on laiendatud Intel'i eraldi DG1 kaartidele. Rakendatud on tehnoloogia «Big Joiner», mis on olemas alates Ice Lake / Gen11 kiipidest ja võimaldab kasutada ühte transkodeerijat kahe voolu töötlemiseks, näiteks 8K ekraani väljastamiseks läbi ühe DisplayPort'i. Lisatud on režiim, mis võimaldab asünkroonset vahetust kahe videomälu puutri vahel (async flip).
    • Nouveau draiverisse on lisatud algne toetus NVIDIA GPU-dele, mis põhinevad «Ampere» mikroarhitektuuril (GA100, GeForce RTX 30xx), praegu piiratud videorežii haldamise vahenditega.
    • KAdded to support for the 3WIRE protocol used in LCD panels. Support has been added for the Novatek NT36672A, TDO TL070WSH30, Innolux N125HCE-GN1, and ABT Y030XX067A 3.0 panels. Notably, support for the OnePlus 6 and 6T smartphone panels has been implemented, allowing for booting on devices with an unmodified kernel.
    • Support has been added for the first discrete Intel Maple Ridge USB4 host controller.
    • Support for the following audio codecs has been added: Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alder Lake-S, GMediatek MT8192, NXP i.MX HDMI and XCVR, Realtek RT715, and Qualcomm SM8250.
    • Support for ARM platforms, devices, and systems has been extended to include: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, Nuvoton NPCM730, Marvell Armada 382, Mikrotik based on Marvell Prestera 98DX3236, servers with Nuvoton NPCM750 BMC, Kontron i.MX8M Mini, Espressobin Ultra, ‘Trogdor’ Chromebook, Kobol Helios64, and Engicam PX30.Core.
    • Native support has been integrated for the Ouya gaming console based on the NVIDIA Tegra 3.

Samas moodustatud Ladina-Ameerika tasuta tarkvara fond on välja töötanud täiesti vaba tuuma versiooni 5.11 — Linux-libre 5.11-gnu, mis on puhastatud tootjate poolt piiratud tegevusala elementide, valikutest ja koodist, mis sisaldavad tasuta komponente või koodilõike. Uues väljaandes on puhastatud draivereid qat_4xxx (krüpto), lt9611uxcm (dsi/hdmi sild), ccs/smia++ (sensor), ath11k_pci, nxp audio transceiver ja mhi pci kontroller. Uuendatud on blobi puhastamise kood draiverites ja alamsüsteemides amdgpu, btqca, btrtl, btusb, i915 csr. Uued blobid on keelatud m3 rproc, idt82p33 ptp kell ja qualcomm arm64.

Allikas: opennet.ru

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