Linux 6.3 kodola izlaidums

Pēc diviem mēnešiem izstrādes Linuss Torvalds prezentēja Linux 6.3 kodola izlaišanu. Starp visizteiktākajām izmaiņām: novecojušo ARM platformu un grafisko draiveru attīrīšana, turpināšanās atbalsta integrācijai Rust valodai, hwnoise utilīta, red-black koku struktūru atbalsts BPF, BIG TCP režīms IPv4, iebūvēts Dhrystone veiktspējas tests, iespēja ierobežot izpildi memfd, HID draiveru izveides atbalsts, izmantojot BPF, Btrfs ieviestas izmaiņas grupu bloku fragmentācijas samazināšanai.

Jaunajā versijā iekļauti 15637 labojumi no 2055 izstrādātājiem; plākstera izmērs – 76 MB (izmaiņas attiecās uz 14296 failiem, pievienoti 1023183 rindiņas koda, dzēstas 883103 rindiņas). Salīdzinājumam iepriekšējā versijā bija piedāvāti 16843 labojumi no 2178 izstrādātājiem; plākstera izmērs – 62 MB. Aptuveni 39% no visām Linux 6.3 kodolā piedāvātajām izmaiņām ir saistītas ar ierīču draiveriem, apmēram 15% izmaiņu ir saistītas ar aparatūras arhitektūrām specifiskā koda atjauninājumiem, 10% attiecas uz tīkla steku, 5% uz failu sistēmām un 3% uz kodola iekšējām apakšsistēmām.

Galvenās jaunās funkcijas Linux 6.3 kodolā:

  • Atmiņa un sistēmas pakalpojumi
    • Veikta nozīmīga koda attīrīšana, kas saistīta ar vecām un neizmantotām ARM platformām, ļaujot samazināt kodola avota teksta apjomu par 150 tūkstošiem rindiņu. Noņemti vairāk nekā 40 veco ARM platformu.
    • Ieviešana iespēja veidot HID (Cilvēka interfeisa ierīču) draiverus, realizējot tos BPF programmu formā.
    • Turpināts papildu funkcionalitātes pārsūtīšana no Rust-for-Linux atzarojuma, kas saistīta ar Rust valodas izmantošanu kā otro valodu draiveru un kodola moduļu izstrādē. Rust atbalsts pēc noklusējuma nav aktīvs un neietekmē Rust iekļaušanu obligātajās kodola kompilēšanas atkarībās. Iepriekšējos laidienos piedāvātā funkcionalitāte paplašināta ar Arc tipu (atsauču skaitītāja rādītāju realizācija), ScopeGuard (drošana, veicot attīrīšanu, izejot no redzesloka) un ForeignOwnable (nodrošina rādītāju pārvietošanu starp C un Rust kodu). No ‘alloc’ pakotnes izņemts ‘borrow’ modulis (tips ‘Cow’ un tips ‘ToOwned’). Norādīts, ka Rust atbalsta stāvoklis kodolā jau ir tuvu tam, lai sāktu pieņemt pirmos Rust uzrakstītos moduļus kodolā.
    • User-mode Linux (kernel запуск как пользовательского процесса) uz x86-64 sistēmām ir īstenota atbalsts Rust valodā rakstītajam kodam. Ir pievienots User-mode Linux salikšanas atbalsts, izmantojot clang ar optimizāciju iekļaušanu saistīšanas posmā (LTO).
    • Ir pievienota utilīta hwnoise, lai izsekotu aizkavējumiem, ko izraisa aparatūras darbības īpatnības. Tiek noteikti izpildes laika novirzes (jitter) bez pārtraukumu apstrādes, kas pārsniedz vienu mikrosekundi 10 minūšu aprēķinos.
    • Ir pievienots kodola modulis ar Dhrystone veiktspējas testa īstenojumu, ko var izmantot, lai novērtētu CPU veiktspēju konfigurācijās bez lietotāja telpas komponentēm (piemēram, portēšanas posmā jaunām SoC, kurās ir tikai kodola ielāde).
    • Ir pievienots kodola komandu rindu parametrs «cgroup.memory=nobpf», kas atslēdz BPF programmu atmiņas patēriņa uzskaiti, kas var būt noderīgi sistēmām ar izolētiem konteineriem.
    • BPF programmām tiek piedāvāta datu struktūru red-black tree īstenošana, kurā tiek izmantoti kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) vietā, lai pievienotu jaunu kartēšanas veidu.
    • Atjaunotajās secībās (rseq, restartable sequences) ir pievienota iespēja procesiem nodot paralēlas darbības identifikatorus (memory-map concurrency ID), kas tiek identifikēti ar CPU numuru. Rseq nodrošina līdzekļus ātrai atomārai operāciju izpildei, kuriem, ja tos pārtrauc cits pavediens, tiek noskaidroti un tiek veikts atkārtots izpildes mēģinājums.
    • ARM procesoros ir nodrošināta SME 2 (Scalable Matrix Extension) instrukciju atbalsts.
    • s390x un RISC-V RV64 arhitektūrām ir īstenots «BPF trampoline» mehānisma atbalsts, kas ļauj minimizēt izdevumus, pārsūtot izsaukumus starp kodolu un BPF programmām.
    • RISC-V arhitektūras procesoru sistēmās tiek īstenota «ZBB» instrukciju izmantošana, lai paātrinātu darbības ar virknēm.
    • LoongArch komandu komplekta (tiek izmantota Loongson 3 5000 procesoros un īsteno jauno RISC ISA, kas līdzīgs MIPS un RISC-V) arhitektūru bāzētajās sistēmās ir īstenota kodola adreses telpas randomizēšanas (KASLR), kodola izvietošanas maiņas (relocation), aparatūras pārtraukšanas punktu un kprobe mehānisma atbalsts.
    • DAMO (Data Access Monitoring-based Operation Schemes) mehānismā, kas ļauj atbrīvot atmiņu, ņemot vērā piekļuves biežumu, ir ieviesta atbalsta filtri, lai izslēgtu noteiktu atmiņas apgabalu apstrādi DAMOS.
    • Minimālajā standarta C bibliotēkā Nolibc ir ieviests atbalsts s390 arhitektūrai un Arm Thumb1 instrukciju kopai (papildus ARM, AArch64, i386, x86_64, RISC-V un MIPS atbalstam).
    • Objtool optimizācija ir veikta, lai paātrinātu kodola kompilāciju un samazinātu atmiņas maksimuma patēriņu tās kodola kompilācijas laikā (kompilējot kodolu ar „allyesconfig” režīmu, vairs nerodas problēmas ar procesu piespiedu pabeigšanu sistēmās ar 32 GB RAM).
    • Atbalsts Intel ICC kompilatora kodola kompilācijai ir pārtraukts, jo ilgu laiku tas nebija funkcionāls, un neviens nav izrādījis vēlmi to labot.
  • Disku apakšsistēma, I/O un failu sistēmas
    • Tmpfs ir ieviests atbalsts lietotāju identifikatoru kartēšanai pievienotās failu sistēmās, kas tiek piemērota, lai sasaistītu noteikta lietotāja failus pievienotajā svešā nodalījumā ar citu lietotāju pašreizējā sistēmā.
    • Btrfs grupu bloku fragmentācijas samazināšanai ir nodrošināts eksemplāru sadalījums pēc izmēra, t.i., jebkura bloku grupa tagad ir ierobežota ar maziem (līdz 128 KB), vidējiem (līdz 8 MB) un lieliem eksemplāriem. Veikta raid56 īstenojuma refaktorizācija. Ir pārstrādāts kods kontrolsummu pārbaudei. Veiktas veiktspējas optimizācijas, kas ļāvušas par 10 reizēm paātrināt send operāciju, kešējot utime katalogiem un izpildot komandas tikai nepieciešamības gadījumā. Trīs reizes paātrināta fiemap operāciju izpilde, izslēdzot atpakaļsaišu pārbaudes koplietošanas datiem (snapshootiem). 10% paātrināti metadatu operācijas, optimizējot atslēgu meklēšanu b-tree struktūrās.
    • Ext4 failu sistēmas veiktspēja ir palielināta, ļaujot vairākiem procesiem vienlaikus veikt tiešas ievades/izvades operācijas iepriekš piešķirtos blokus, izmantojot kopīgas inode bloķēšanas vietā ekskluzīvas bloķēšanas.
    • F2fs ir veikti pasākumi, lai uzlabotu koda lasāmību. Ir atrisinātas svarīgas problēmas, kas saistītas ar atomisko ierakstu un jauno eksemplāru kešu.
    • ERFS (Enhanced Read-Only File System) failu sistēmā, kas paredzēta izmantošanai režīmā tikai lasīšanai pieejamās daļās, ir īstenota iespēja piesaistīt CPU izsmeļošu saspiešanas saturu failu atvēršanai, lai samazinātu piekļuves kavējumus datiem.
    • Ievada plānotājā BFQ ir pievienota atbalsta iespēja uzlabotiem griezošiem diskiem, piemēram, tiem, kuros izmantoti vairāki atsevišķi kontrolējami galviņi (Multi Actuator).
    • Klienta un serveris NFS ir pievienota datu šifrēšanas atbalsts, izmantojot AES-SHA2 algoritmu.
    • FUSE (Filesystems In User Space) apakšsistēmā ir pievienots mehānisms pieprasījumu paplašinājumiem, ļaujot iekļaut papildu informāciju pieprasījumā. Šī iespējas pamata ir īstenota grupu identifikatoru pievienošana FS pieprasījumam, kas nepieciešama piekļuves tiesību ņemšanai vērā, veidojot objektus FS (create, mkdir, symlink, mknod).
  • Virtualizācija un drošība
    • KVM hipervizorā x86 sistēmām ir pievienots paplašināto Hyper-V hipervizoru call atbalsts un nodrošināta to pārsūtīšana apstrādātājam, kas darbojas host-vidē lietotāja telpā. Izmaiņas ļāva īstenot Hyper-V hipervizoru iepriekšēju palaišanu.
    • KVM ir atvieglojošs piekļuves ierobežojums viesu sistēmai uz PMU (Performance Monitor Unit) notikumiem, kas saistīti ar snieguma mērīšanu.
    • Memfd mehānismā, kas ļauj identificēt atmiņas jomu, izmantojot starp procesiem nodoto failu descriptoru, ir pievienota iespēja izveidot jomas, kurās ir aizliegts izpildīt kodu (non-executable memfd) un nākotnē nevēlamu izpildes tiesību piešķiršanu.
    • Jauna prctl operācija PR_SET_MDWE ir pievienota, bloķējot mēģinājumus aktivizēt piekļuves tiesības uz atmiņu, kas vienlaikus atļauj rakstīšanu un izpildi.
    • Ir pievienota un noklusēta Spectre uzbrukumu aizsardzība, kas īstenota, pamatojoties uz AMD Zen 4 procesoros piedāvāto automātiskā IBRS (Enhanced Indirect Branch Restricted Speculation) režīmu, kas ļauj adaptīvi atļaut un aizliegt spekulatīvu instrukciju izpildi, apstrādājot pārtraukumus, sistēmas izsaukumus un konteksta pārslēgšanu. Ieteiktā aizsardzība prasa mazāk resursu salīdzinājumā ar Retpoline aizsardzību.
    • Tika novērsta ievainojamība, kas ļauj apiet Spectre v2 uzbrukumu aizsardzību, izmantojot vienlaicīgas multivirstu tehnoloģiju (SMT vai Hyper-Threading), un ko izraisa STIBP (Single Thread Indirect Branch Predictors) mehānisma atslēgšana, izvēloties aizsardzības režīmu IBRS.
    • ARM64 arhitektūras sistēmām pievienota jauna kompilēšanas mērķa „virtconfig” atbalsts, kurā tiek aktivizēts tikai minimālais kodola komponentu kopums, kas nepieciešams ielādei virtualizācijas sistēmās.
    • m68k arhitektūrai pievienots atbalsts sistēmas izsauku filtrēšanai, izmantojot seccomp mehānismu.
    • Pievienots atbalsts AMD Ryzen procesoros iebūvētajiem CRB TPM2 (Command Response Buffer) ierīcēm, pamatojoties uz Microsoft Pluton tehnoloģiju.
  • Tīkla subsistēma
    • Pievienots netlink interfeiss, lai konfigurētu PLCA (Physical Layer Collision Avoidance) apakšslāni, kas noteikts IEEE 802.3cg-2019 specifikācijā un izmantots Ethernet tīklos 802.3cg (10Base-T1S), optimizēts IoT ierīču un rūpniecības sistēmu pieslēgšanai. PLCA izmantošana ļauj uzlabot veiktspēju Ethernet tīklos ar koplietojamu vidi.
    • Pārtraukta API „wireless extensions” atbalsta sniegšana WiFi 7 (802.11be) bezvadu saskarnēm, jo šis API neaptver visas nepieciešamās konfigurācijas. Mēģinot izmantot API „wireless extensions”, kas joprojām tiek atbalstīts kā emulācijas slānis, tagad tiks parādīts brīdinājums lielākajai daļai aktuālo ierīču.
    • Sagatavota detalizēta dokumentācija par netlink API (kodola izstrādātājiem un lietotņu izstrādātājiem lietotāja telpā). Realizēta rīka ynl-gen-c izstrāde C koda ģenerēšanai, pamatojoties uz YAML protokola Netlink specifikācijām.
    • Tīkla soketos pievienota atbalsta opcija IP_LOCAL_PORT_RANGE, lai atvieglotu izejošo savienojumu konfigurēšanu caur adrešu pārveidotājiem bez SNAT izmantošanas. Izmantojot vienu IP adreses dažādos mitināšanas gadījumos, IP_LOCAL_PORT_RANGE ļauj katrā mitināšanā izmantot savu izejošo tīkla portu diapazonu un uz vārtejas novirzīt paketes, balstoties uz portu numuriem.
    • MPTCP (MultiPath TCP) nodrošina iespēju apstrādāt jauktus plūsmus, kuros tiek izmantoti IPv4 un IPv6 protokoli. MPTCP ir TCP protokola paplašinājums, lai organizētu TCP savienojuma darbību, piegādājot paketes vienlaicīgi pa vairākiem maršrutiem caur dažādiem tīkla saskarnēm, kas piesaistītas atšķirīgām IP adresēm.
    • IPv4 ir ieviesta iespēja izmantot BIG TCP paplašināšanu, kas ļauj palielināt maksimālo TCP paketes lielumu līdz 4GB, optimizējot augstas ātruma iekšējo datu centru tīklu darbību. Šāds paketē lieluma palielinājums, izmantojot 16 bitu lauku galvene, tiek sasniegts, īstenojot “jumbo” paketes, kuru izmērs IP galvenē tiek iestatīts uz 0, bet faktiskais izmērs tiek nosūtīts atsevišķā 32 bitu laukā pievienotajā galvenē.
    • Tika pievienots jauns sysctl parametrs default_rps_mask, ar kuru var iestatīt noklusējuma RPS (Receive Packet Steering) konfigurāciju, kas atbild par ienākošā satiksmes apstrādes sadalīšanu pa CPU kodoliem pārtraukumu apstrādātāju līmenī.
    • Atbalsts rindas apstrādes disciplīnām, kas ierobežo satiksmi, piemēram, CBQ (class-based queuing), ATM (ATM virtuālās ķēdes), dsmark (diferencētā pakalpojuma marķieris), tcindex (satiksmes kontroles indekss) un RSVP (resursu rezervācijas protokols), ir pārtraukts. Šīs disciplīnas ilgu laiku ir bijušas novērotas un nav atrasti vēlme tās uzturēt.
  • Aprīkojums
    • Visi grafiskie draiveri, kas balstīti uz DRI1: i810 (vecās Intel 8xx integrētās grafikas kartes), mga (Matrox GPU), r128 (ATI Rage 128 GPU, tostarp Rage Fury, XPERT 99 un XPERT 128 kartes), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) un via (VIA IGP), ir noņemti, jo tie tika pasludināti par novecojušiem 2016. gadā un netiek atbalstīti Mesa kopš 2012. gada.
    • Ir noņemti novecojušie fbdev draiveri omap1, s3c2410, tmiofb un w100fb.
    • Ievietots DRM draiveris integrētām Intel Meteor Lake (14. paaudze) VPU (Versatile Processing Unit) vienībām, kas paredzētas, lai paātrinātu operācijas, kas saistītas ar datoru redzi un mašīnmācīšanos. Draiveris ir īstenots, izmantojot „accel” apakšsistēmu, kas paredzēta, lai nodrošinātu atbalstu skaitļošanas paātrinātājiem, kurus var nodrošināt gan kā atsevišķus ASIC, gan kā IP blokus iekšējā SoC un GPU.
    • Draiverī i915 (Intel) ir paplašināta atbalsts diskretām Intel Arc (DG2/Alchemist) grafikas kartēm, ieviesta iepriekšēja atbalsta funkcija GPU Meteor Lake, iekļauta atbalsta funkcija GPU Intel Xe HP 4tile.
    • AMDGPU draiverī pievienota AdaptiveSync tehnoloģijas atbalsts un iespēja izmantot vairāku displeju datu aizsardzības režīmu (Secure Display). Atjaunots DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x un DP 2.1 atbalsts.
    • MSM draiverī (Qualcomm Adreno GPU) pievienots atbalsts SM8350, SM8450, SM8550, SDM845 un SC8280XP platformām.
    • Nouveau draiverī pārtraukts veco ioctl izsaukumu atbalsts.
    • Etnaviv draiverī pievienots eksperimentāls atbalsts NPU VerSilicon (VeriSilicon Neural Network Processor).
    • Izstrādāts pata_parport draiveris IDE disku pieslēgšanai caur paralēlo portu. Pievienotais draiveris ļāva no kodola izņemt veco PARIDE draiveri un modernizēt ATA apakšsistēmu. Jaunā draivera ierobežojums ir tas, ka nav iespējams vienlaikus pieslēgt printeri un disku caur paralēlo portu.
    • Pievienots ath12k draiveris bezvadu kartēm, kurās izmanto Qualcomm mikroshēmas un kas atbalsta Wi-Fi 7. Pievienots atbalsts bezvadu kartēm ar RealTek RTL8188EU mikroshēmu.
    • Pievienots atbalsts 46 plātām ar ARM64 arhitektūras procesoriem, tostarp Samsung Galaxy Tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD, kā arī ierīcēm ar Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 un SDM632, Rockchips RK3128 TV kaste, RV1126 Vision, RK3588, RK3568, RK3566, RK3588 un RK3328, TI K3 (AM642/AM654/AM68/AM69).

Vienlaikus Latīņamerikas Brīvā programmatūras fonds izstrādājis pilnīgi brīvā Linux 6.3 kodola variantu — Linux-libre 6.3-gnu, kas ir attīrīts no nebrīvas komponentes saturošām programmatūrām un draiveriem. 6.3 laidienā notika bloķētā koda attīrīšana jaunajos ath12k, aw88395 un peb2466 draiveros, kā arī jaunajos ierīču koku failos qcom ierīcēm, kas balstītas uz AArch64 arhitektūras. Atjaunots bloķētā koda attīrīšanas kods draiveros un apakšsistēmās amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110, kā arī DVB karšu draiveros ar programmatūras dekodēšanu un iepriekš kompilētos BPF failos. Attīrīšana draiveros mga, r128, tm6000, cpia2 un r8188eu ir pārtraukta, jo tie tika izņemti no kodola. Uzlabota bloķētā koda attīrīšana i915 draiverī.

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster