Pēc diviem izstrādes mēnešiem Linuss Torvaldss paziņoja par Linux 5.11 kodola izlaišanu. Starp visizteiktākajām izmaiņām: Intel SGX enkla atbalsts, jauns sistēmas izsaukumu pārtveršanas mehānisms, papildu virtuālā autobuss, aizliegums veidot moduļus bez MODULE_LICENSE(), ātrās sistēmas izsaukumu filtrēšanas režīms seccomp, ia64 arhitektūras uzturēšanas pārtraukšana, WiMAX tehnoloģijas pārvietošana uz „staging” filiāli, spalvu SCTP enkapsulācijas iespējas UDP.
Jaunajā versijā ir pieņemti 15480 labojumi no 1991 izstrādātājiem, plākstera lielums — 72 MB (izmaiņas ietekmējušas 12090 failus, pievienotas 868025 koda rindas, 261456 rindas izdzēstas). Apmēram 46% no visām izmaiņām 5.11 versijā ir saistītas ar ierīču draiveriem, aptuveni 16% izmaiņu attiecas uz aparatūras arhitektūrām specifiskā koda atjaunināšanu, 13% saistītas ar tīkla kaudzi, 3% — ar failu sistēmām un 4% — ar iekštelpu kodola apakšsistēmām.
Galvenās jauninājumi:
- Disku apakšsistēma, I/O un failu sistēmas
- Btrfs pievienotas vairākas montēšanas opcijas datu atgūšanai no bojātas FS: «rescue=ignorebadroots» montēšanai, neskatoties uz dažiem bojātiem sakņu kokiem (extent, uuid, data reloc, device, csum, free space), «rescue=ignoredatacsums» datu kontroles summu pārbaudes atslēgšanai un «rescue=all» vienlaikus aktivizējot ‘ignorebadroots’, ‘ignoredatacsums’ un ‘nologreplay’ režīmus. Montēšanas opcija «inode_cache», kas iepriekš bija atzīta par novecojušu, vairs netiek atbalstīta. Ir veikta koda sagatavošana metadatu un datu bloku atbalsta īstenošanai, kuru izmērs ir mazāks par lapu (PAGE_SIZE), kā arī zoniņu piešķiršanas režīma atbalsta nodrošināšanai. Nebufferzētie (Direct IO) pieprasījumi pārvērsti iomap infrastruktūrā. Tika optimizēta dažu operāciju veiktspēja, dažos gadījumos paātrinājums var sasniegt desmitus procentu.
- XFS ir ieviesta zīme «needsrepair», kas signalizē par atjaunošanas nepieciešamību. Kad šī zīme ir iestatīta, FS nav iespējams montēt, kamēr zīme nav atiestatīta ar rīku xfs_repair.
- Ext4 piedāvāti tikai kļūdu labojumi un optimizācijas, kā arī veikta koda tīrīšana.
- Atļauts atkārtots failu sistēmu eksportēšana, kas montētas virs NFS (t.i., NFS caur montēto daļu tagad var eksportēt caur NFS un izmantot kā pagaidu kešatmiņu).
- Sistema zvana close_range() ir pievienota iespēja CLOSE_RANGE_CLOEXEC, lai procesu varētu vienlaikus aizvērt visu atvērtu failu descriptoru diapazonu, izmantojot close-on-exec režīmu.
- Failu sistēmā F2FS ir pievienoti jauni zvani ioctl(), kas ļauj lietotāja telpā pārvaldīt failus, kas tiek saglabāti saspiešanas formātā. Ir pievienota montāžas opcija «compress_mode=», lai izvēlētos saspiešanas pārvaldības apstrādātāju izvietojumu, vai nu kodola pusē, vai lietotāja telpā.
- Tika nodrošināta Overlayfs montēšanas iespēja nepiederošiem procesiem, izmantojot atsevišķu lietotāju identifikatoru telpu (user namespace). Lai verificētu drošības modeļa īstenošanas atbilstību, tika veikts pilnīgs koda audits. Overlayfs ir pievienota arī iespēja palaist to ar failu sistēmas attēlu kopijām, opcionalizējot UUID pārbaudes atslēgšanu.
- Failu sistēmā Ceph ir pievienota protokola msgr2.1 atbalsts, kas ļauj izmantot AES-GCM algoritmu, nosūtot datus šifrētā veidā.
- Modulī dm-multipath ir ieviesta IO afinitātes opcija, ņemot vērā saistības ar CPU, izvēloties I/O pieprasījumu maršrutu.
- Atmiņa un sistēmas pakalpojumi
- Pievienots jauns sistēmu zvanu izsistīšanas mehānisms, balstoties uz prctl(), kas ļauj lietotāja telpā ģenerēt izņēmumus, pieprasot noteiktu sistēmu zvanu un emulēt tā izpildi. Šī funkcionalitāte ir ļoti pieprasīta Wine un Proton, lai emulētu Windows sistēmu zvanus, kas ir nepieciešama, lai nodrošinātu saderību ar spēlēm un programmām, kas tieši veic sistēmu zvanus, apdarot Windows API (piemēram, lai aizsargātu pret nesankcionētu izmantošanu).
- Sistēmu zvana userfaultfd() funkcijai, kas paredzēta lapas kļūdu (pieprasījumi uz nenosūtītām atmiņas lapām) apstrādei lietotāja telpā, ir pieejama iespēja atslēgt izņēmumu apstrādi, kas rodas kodola līmenī, lai sarežģītu dažu ievainojamību izmantošanu.
- BPF apakškodā ir pievienots paša uzdevuma datu krātuves (task-local storage) atbalsts, kas nodrošina datu piesaisti konkrētam BPF apstrādātājam.
- Pilnībā pārveidota atmiņas patēriņa uzskaite programmās BPF — lai pārvaldītu atmiņas lietojumu BPF objektos, vietā memlock rlimit ieviests cgroup kontrolieris.
- BTF (BPF Type Format) mehānismā, kas sniedz informāciju tipa pārbaudei BPF pseudokodā, ieviesta atbalsts kodola moduļiem.
- Ievadas io_uring saskarnē, kas nodrošina asinkronā ievades / izvadē, iekļauts atbalsts sistēmas izsaukumiem shutdown(), renameat2() un unlinkat(). Izsaucot io_uring_enter(), pievienota iespēja norādīt laika ierobežojumu (pārbaudīt atbalstu argumentam laika ierobežojuma norādīšanai var, izmantojot IORING_FEAT_EXT_ARG karogu).
- Intel Itanium procesoros lietotā ia64 arhitektūra pārcelta uz atbalsta pārtraukšanas kategoriju («orphaned»), kas nozīmē testēšanas pārtraukšanu. Hewlett Packard Enterprise pārtraukusi jaunu Itanium ierīču pasūtījumu pieņemšanu, savukārt Intel to izdarījusi jau pagājušajā gadā.
- Pārtraukta atbalsta sniegšana MicroBlaze arhitektūrai, ja tajā nav iekļauts atmiņas kontroles bloks (MMU). Šādi sistēmas sen vairs netiek izmantotas.
- MIPS arhitektūrai pievienots atbalsts kodu pārklājuma testēšanai (coverage testing) ar gcov utilītu.
- Pievienota atbalsta virtuālajai autobusu auxiliary, lai mijiedarbotos ar daudzfunkcionālām ierīcēm, kas apvieno funkcionalitāti, kas prasa dažādus draiverus (piemēram, tīkla kartes ar Ethernet un RDMA atbalstu). Autobuss var tikt izmantots primārā un sekundārā draivera piešķiršanai ierīcei, ja MFD (Multi-Function Devices) apakšsistēmas izmantošana ir problemātiska.
- RISC-V arhitektūrai pievienots CMA (Contiguous Memory Allocator) atmiņas sadales sistēmas atbalsts, kas optimizēta lielu nepārtrauktu atmiņas jomu piešķiršanai, izmantojot atmiņas lapu pārvietošanas tehniku. RISC-V arī īstenoti līdzekļi piekļuves ierobežošanai uz /dev/mem un traucējumu apstrādes laika uzskaites nodrošināšanai.
- ARM 32 bitu sistēmām pievienots KASan (Kernel address sanitizer) atdebugēšanas rīka atbalsts, kas nodrošina kļūdu noteikšanu atmiņas darbībā. ARM 64 bitu ieviešana KASan pārveidota, lai izmantotu MTE (MemTag) tagus.
- Pievienots sistēmas izsaukums epoll_pwait2(), kas ļauj izmantot laika ierobežojumus ar nanosekundi precizitāti (epoll_wait izsaukums manipulē ar milisekundēm).
- Būvniecības sistēmā tiek nodrošināta kļūdas ziņojuma parādīšana, mēģinot salikt ielādētos kodola moduļus, kuros, izmantojot makro MODULE_LICENSE(), nav noteikta koda licence. Kļūda būvniecībā tagad tiks izsaukta arī tad, ja statiskajām funkcijām tiks izmantots makro EXPORT_SYMBOL().
- Pievienota atbalsta funkcionalitāte GEM objektu kartēšanai no atmiņas, kas tiek izmantota ievadei/izvadei, ļaujot paātrināt darbību ar framebuffer dažādās arhitektūrās.
- Kconfig ir izbeigta Qt4 atbalsta nodrošināšana (paliek Qt5, GTK un Ncurses atbalsts).
- Virtualizācija un drošība
- Sistēmas izsaukumā seccomp() pievienots atbalsts ātras reaģēšanas režīmam, kas ļauj ļoti ātri noteikt, vai noteikts sistēmas izsaukums ir atļauts vai liegts, pamatojoties uz procesam pievienoto tiesību tabulu (constant-action bitmap), kurai nav nepieciešama BPF apstrādātāja palaišana.
- Ir integrēti kodola komponenti, lai izveidotu un pārvaldītu enclaves, pamatojoties uz Intel SGX (Software Guard eXtensions) tehnoloģiju, kas ļauj lietotnēm izpildīt kodu izolētās šifrētās atmiņas jomās, kuras ir ierobežotas ar pārējo sistēmu.
- Lai ierobežotu piekļuvi no lietotāja telpas uz MSR (model-specific register) reģistra, ir aizliegta rakstīšana MSR_IA32_ENERGY_PERF_BIAS reģistrā, kas ļauj mainīt procesora energoefektivitātes režīmu ("normal", "performance", "powersave").
- No real-time sistēmām paredzētā kernel-rt nozarē ir pārnesta iespēja atslēgt augstprieztie uzdevumu migrāciju starp CPU.
- ARM64 sistēmām pievienota iespēja izmantot MTE (MemTag, Memory Tagging Extension) tagus signālu apstrādātāju atmiņas adresēm. MTE izmantošanai var aktivizēt, norādot opciju SA_EXPOSE_TAGBITS sigaction() un ļauj organizēt norādītāju pareizas izmantošanas pārbaudi, lai bloķētu ievainojamību ekspluatēšanu, ko izraisa piekļuve jau atbrīvotām atmiņas blokiem, bufera pārsniegumiem, piekļuvei pirms inicializācijas un lietošanai ārpus pašreizējā konteksta.
- Pievienots parametrs "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING", kas ļauj dm-verity apakšsistēmai pārbaudīt sertifikātu hashu parakstu, kas atrodas sekundārā atslēgu krātuvē (keyring). Praktiski šis iestatījums ļauj verificēt ne tikai iebūvētās kodola sertifikātus, bet arī sertifikātus, kas ielādēti darbības laikā, tādējādi ļaujot atjaunināt sertifikātus bez visa kodola atjaunināšanas.
- User-mode Linux ir pievienota atbalsts suspend-to-idle režīmam, kas ļauj iesaldēt vidi un izmantot SIGUSR1 signālu, lai iznāktu no miega režīma.
- Virtio-mem mehānismā, kas ļauj veikt karstu atmiņas pievienošanu un atvienošanu virtuālajām mašīnām, pievienots atbalsts lielo bloku režīmam (BBM, Big Block Mode), kas ļauj pārsūtīt vai izņemt atmiņu blokos, kas pārsniedz kodola atmiņas bloka izmēru, kas nepieciešams, lai optimizētu VFIO QEMU.
- Kodola līmeņa TLS ieviešanā ir pievienots atbalsts CHACHA20-POLY1305 šifrēšanai.
- Tīkla subsistēma
- 802.1Q (VLAN) ir ieviests savienojuma traucējumu pārvaldības mehānisms (CFM, Connectivity Fault Management), kas ļauj identificēt, verificēt un izolēt traucējumus tīklos ar virtuālajiem tiltiem (Virtual Bridged Networks). Piemēram, CFM var izmantot problēmu lokalizēšanai tīklos, kas aptver vairākas neatkarīgas organizācijas, kuru darbiniekiem ir piekļuve tikai savam aprīkojumam.
- Pievienots atbalsts SCTP protokola iepakojumu enkapsulācijai UDP iepakojumos (RFC 6951), kas ļauj izmantot SCTP tīklos ar veciem adresu tulkotājiem, kas tieši neatbalsta SCTP, kā arī realizēt SCTP sistēmās, kas nesniedz tiešu piekļuvi IP līmenim.
- WiMAX tehnoloģijas īstenošana ir pārvietota uz staging un nākotnē paredzēta izņemšanai, ja netiks atrasti lietotāji, kuriem nepieciešams WiMAX. WiMAX jau netiek izmantots publiskajos tīklos, un kodolā vienīgais WiMAX izmantojamais draiveris ir novecojusī Intel 2400m draiveris. Tīkla konfiguratorā NetworkManager atbalsts WiMAX tika pārtraukts 2015. gadā. Pašlaik WiMAX praktiski pilnībā ir izdzēsta ar tādām tehnoloģijām kā LTE, HSPA+ un Wi-Fi 802.11n.
- Tika veikts darbs pie ienākošā TCP satiksmes apstrādes veiktspējas optimizēšanas zerocopy režīmā, t.i., bez papildu kopēšanas jaunos buferos. Vidējiem datu izmēriem, kas aptver desmitus vai simtiem kilobaitu, zerocopy izmantošana vietā recvmsg() ir ievērojami efektīvāka. Piemēram, veiktās izmaiņas ļāva palielināt RPC stila satiksmes apstrādes efektivitāti ar 32 KB ziņojumiem, izmantojot zerocopy, par 60-70%.
- Pievienoti jauni ioctl() izsaukumi, lai izveidotu tīkla tiltus, kas aptver vairākus PPP kanālus. Ierosinātā funkcija ļauj kadriem pārvietoties no viena kanāla uz otru, piemēram, no PPPoE uz PPPoL2TP sesiju.
- Turpināta MPTCP (MultiPath TCP) integrācija kodolā, kas ir TCP protokola paplašinājums, lai organizētu TCP savienojuma darbību, piegādājot paketes vienlaikus pa vairākiem maršrutiem caur dažādiem tīkla interfeisiem, kuri saistīti ar dažādiem IP adresēm. Jaunajā izlaidumā ieviesta ADD_ADDR opcijas atbalsts pieejamo IP adreses savienojumu, pievienojot jaunus plūsmus esošajam MPTCP savienojumam.
- Pievienota iespēja konfigurēt darbības, kad tiek pārsniegts pieslēguma polinģēšanas budžets (busy-polling). Iepriekš pieejamais SO_BUSY_POLL režīms nozīmēja pāreju uz softirq, kad budžets ir izsmelts. Lietojumprogrammu, kurām nepieciešams turpināt izmantot polinģēšanu, piedāvāta jauna SO_PREFER_BUSY_POLL opcija.
- IPv6 īstenots SRv6 End.DT4 un End.DT6 režīmu atbalsts, ko izmanto, lai izveidotu daudzu lietotāju IPv4 L3 VPN un VRF (Virtual Routing and Forwarding) ierīces.
- Netfilter ir vienota izteikumu set realizācija, kas ļāva nodrošināt iespēju norādīt vairākas izteiksmes katram set saraksta elementam.
- Bezvadu 802.11 stekā pievienoti API jaudu SAR ierobežojumu iestatīšanai, kā arī AE PWE un HE MCS parametru konfigurēšanai. Intel iwlwifi draiverī pievienots 6GHz (Ultra High Band) atbalsts. Qualcomm Ath11k draiverī pievienots atbalsts tehnoloģijai ātrai savienojuma iestatīšanai FILS (Fast Initial Link Setup, standartizēts kā IEEE 802.11ai), kas ļauj izvairīties no aizkavēm, pārejot no vienas piekļuves punkta uz citu.
- Aprīkojums
- amdgpu draiverī ieviests AMD APU «Green Sardine» (Ryzen 5000) un GPU «Dimgrey Cavefish» (Navi 2) atbalsts, kā arī sākotnējais atbalsts AMD Van Gogh APU ar Zen 2 kodolu un RDNA 2 (Navi 2) GPU. Pievienota jaunu APU Renoir identifikatoru atbalsts (balstīts uz Zen 2 CPU un Vega GPU).
- Intel grafisko karšu i915 draiverī ir ieviesta IS (Integer scaling) tehnoloģijas atbalsts, ar tuvāku pikseļu intervālu izmantojot Nearest-neighbor interpolāciju, lai noteiktu trūkstošo pikseļu krāsu. Ir paplašināts atbalsts Intel DG1 diskrētajiem grafiskajiem procesoriem. Ieviesta Big Joiner tehnoloģijas atbalsts, kas ir pieejams sākot ar Ice Lake / Gen11 čipiem un ļauj izmantot vienu transkodētāju divu plūsmu apstrādei, piemēram, 8K ekrāna izvadīšanai caur vienu DisplayPort. Ir pievienots režīms asynchronā pārslēgšanā starp diviem videomemorijas buferiem (async flip).
- Nouveau draiverī ir pievienots sākotnējais atbalsts NVIDIA GPU, kas balstīts uz Ampere mikroarhitektūru (GA100, GeForce RTX 30xx), pagaidām ierobežots ar līdzekļiem videorežīmu vadībai.
- Ir pievienots 3WIRE protokola atbalsts, ko izmanto LCD paneļos. Ir pievienots novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 un ABT Y030XX067A 3.0 paneļu atbalsts. Atsevišķi jāizceļ OnePlus 6 un 6T viedtālruņu paneļu atbalsts, kas ir ļāvis organizēt modifikācijas nenozīmētā kodā.
- Ir pievienots pirmais diskrētais USB4 viesu kontrolieris Intel Maple Ridge.
- Ir pievienots Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI un XCVR, Realtek RT715 un Qualcomm SM8250 skaņas kodeku atbalsts.
- Ir pievienots ARM platformu, ierīču un platformu atbalsts: 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 uz Marvell Prestera 98DX3236 bāzes, Nuvoton NPCM750 BMC serveri, Kontron i.MX8M Mini, Espressobin Ultra, 'Trogdor' Chromebook, Kobol Helios64 un Engicam PX30.Core.
- Ir iebūvēts atbalsts spēļu konsolēm Ouya, pamatojoties uz NVIDIA Tegra 3.
Vienlaicīgi Latīņamerikas Brīvā programmatūras fonds ir izstrādājis pilnīgi brīvā Linux 5.11 kodola variantu — Linux-libre 5.11-gnu, kas attīrīts no iekārtu un draiveru elementiem, kas satur neskatītus komponentus vai kodu, kuru darbības joma ir ierobežota ražotāja. Jaunajā laidienā ir veikta draiveru tīrīšana qat_4xxx (crypto), lt9611uxcm (dsi/hdmi bridge), ccs/smia++ (sensor), ath11k_pci, nxp audio transceiver un mhi pci controller. Ir atjaunināts kods draiveru bloķēšanai amdgpu, btqca, btrtl, btusb, i915 csr. Ir izslēgti jauni bloķētāji m3 rproc, idt82p33 ptp clock un qualcomm arm64.
Avots: opennet.lv
