Linux 6.3 kodola laidiens

Pēc divu mēneÅ”u izstrādes Linuss Torvalds iepazÄ«stināja ar Linux kodola 6.3 izlaiÅ”anu. Starp visievērojamākajām izmaiņām: mantoto ARM platformu un grafikas draiveru tÄ«rÄ«Å”ana, Rust valodas atbalsta nepārtraukta integrācija, hwnoise utilÄ«ta, atbalsts sarkanmelnām koku struktÅ«rām BPF, BIG TCP režīms IPv4, iebÅ«vēts Dhrystone etalons, iespēja atspējot. izpilde memfd, atbalsta HID draiveru izveidi, izmantojot BPF, ir veiktas izmaiņas Btrfs, lai samazinātu bloku grupu sadrumstalotÄ«bu.

Jaunajā versijā ir iekļauti 15637 2055 labojumi no 76 14296 izstrādātājiem; ielāpu izmērs - 1023183 MB (izmaiņas skāra 883103 failus, tika pievienotas 16843 koda rindas, 2178 rindas tika izdzēstas). SalÄ«dzinājumam, iepriekŔējā versija piedāvāja 62 39 labojumus no 6.3 15 izstrādātājiem; ielāpa izmērs ir 10 MB. Apmēram 5% no visām 3 kodolā ieviestajām izmaiņām ir saistÄ«tas ar ierīču draiveriem, aptuveni XNUMX% izmaiņu ir saistÄ«tas ar aparatÅ«ras arhitektÅ«rām raksturÄ«gā koda atjaunināŔanu, XNUMX% ir saistÄ«tas ar tÄ«kla steku, XNUMX% ir saistÄ«tas ar failu sistēmām un XNUMX% ir saistÄ«ti ar iekŔējām kodola apakÅ”sistēmām.

Galvenie jauninājumi kodolā 6.3:

  • Atmiņas un sistēmas pakalpojumi
    • Tika veikta ievērojama koda tÄ«rÄ«Å”ana, kas saistÄ«ta ar vecām un neizmantotām ARM platēm, kas ļāva samazināt kodola pirmkoda izmēru par 150 tÅ«kstoÅ”iem rindu. Ir noņemtas vairāk nekā 40 vecās ARM platformas.
    • Ir ieviesta iespēja izveidot draiverus ievadierÄ«cēm ar HID (Human Interface Device) saskarni, kas realizēta BPF programmu veidā.
    • Turpinājās Rust-for-Linux filiāles papildu funkcionalitātes pārneÅ”ana, kas saistÄ«ta ar Rust valodas kā otrās valodas izmantoÅ”anu draiveru un kodola moduļu izstrādei. RÅ«sas atbalsts pēc noklusējuma nav iespējots, un tā rezultātā Rust netiek iekļauta kā obligāta kodola veidoÅ”anas atkarÄ«ba. IepriekŔējos laidienos piedāvātā funkcionalitāte ir paplaÅ”ināta, lai atbalstÄ«tu veidus Arc (rādÄ«tāju ievieÅ”ana ar atsauces skaitu), ScopeGuard (tÄ«rÄ«Å”ana, kad iziet ārpus darbÄ«bas jomas) un ForeignOwnable (nodroÅ”ina rādÄ«tāju pārvietoÅ”anu starp C un Rust kodu). Modulis ā€œAizņemtiesā€ (tips ā€œGovsā€ un pazÄ«me ā€œToOwnedā€) ir noņemts no pakotnes ā€œallocā€. Tiek atzÄ«mēts, ka Rust atbalsta stāvoklis kodolā jau ir tuvu tam, lai sāktu pieņemt kodolā pirmos Rust valodā rakstÄ«tos moduļus.
    • Lietotāja režīmā Linux (kodola palaiÅ”ana kā lietotāja process) x86-64 sistēmās ievieÅ” atbalstu kodam, kas rakstÄ«ts Rust valodā. Pievienots atbalsts lietotāja režīma Linux izveidei, izmantojot zvanÄ«Å”anu ar iespējotu saites laika optimizāciju (LTO).
    • Pievienota hwnoise utilÄ«ta, lai izsekotu aparatÅ«ras izraisÄ«tiem kavējumiem. Operāciju izpildes laika novirzes (trÄ«ce) tiek noteiktas, ja pārtraukuma apstrāde ir atspējota, pārsniedzot vienu mikrosekundi uz 10 aprēķinu minÅ«tēm.
    • Pievienots kodola modulis, kas ievieÅ” Dhrystone etalonu, ko var izmantot, lai novērtētu CPU veiktspēju konfigurācijās bez lietotāja vietas komponentiem (piemēram, portÄ“Å”anas stadijā jauniem SoC, kas ievieÅ” tikai kodola ielādi).
    • Pievienots kodola komandrindas parametrs ā€œcgroup.memory=nobpfā€, kas atspējo atmiņas patēriņa uzskaiti BPF programmām, kas var bÅ«t noderÄ«gs sistēmām ar izolētiem konteineriem.
    • BPF programmām tiek piedāvāta sarkanmelna koka datu struktÅ«ras ievieÅ”ana, kas izmanto kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first), nevis pievieno jaunu kartÄ“Å”anas veidu.
    • Restartējamo secÄ«bu mehānisms (rseq, restartējamās secÄ«bas) ir pievienojis iespēju procesiem pārsÅ«tÄ«t paralēlās izpildes identifikatorus (atmiņas kartes vienlaicÄ«guma ID), kas identificēti ar CPU numuru. Rseq nodroÅ”ina lÄ«dzekli, lai ātri veiktu darbÄ«bas atomiski, kuras, ja to pārtrauc cits pavediens, tiek iztÄ«rÄ«tas un mēģinātas vēlreiz.
    • ARM procesori atbalsta SME 2 (Scalable Matrix Extension) instrukcijas.
    • S390x un RISC-V RV64 arhitektÅ«rām ir ieviests atbalsts ā€œBPF batutaā€ mehānismam, kas ļauj samazināt pieskaitāmās izmaksas, pārsÅ«tot zvanus starp kodolu un BPF programmām.
    • Sistēmās ar procesoriem, kuru pamatā ir RISC-V arhitektÅ«ra, ā€œZBBā€ instrukciju izmantoÅ”ana ir ieviesta, lai paātrinātu virkņu darbÄ«bas.
    • Sistēmām, kuru pamatā ir LoongArch instrukciju kopas arhitektÅ«ra (izmantota Loongson 3 5000 procesoros un ievieÅ” jauno RISC ISA, lÄ«dzÄ«gi kā MIPS un RISC-V), kodola adreÅ”u telpas randomizācijas (KASLR) atbalsts, kodola atmiņas izvietojuma izmaiņas (pārvietoÅ”ana). ), aparatÅ«ras punktos ir ieviests stop un kprobe mehānisms.
    • DAMOS (Data Access Monitoring-based Operation Schemes) mehānisms, kas ļauj atbrÄ«vot atmiņu, pamatojoties uz atmiņas piekļuves biežumu, atbalsta filtrus, lai izslēgtu noteiktus atmiņas apgabalus no apstrādes DAMOS.
    • Nolibc minimālā standarta C bibliotēka nodroÅ”ina atbalstu s390 arhitektÅ«rai un Arm Thumb1 instrukciju kopai (papildus atbalstam ARM, AArch64, i386, x86_64, RISC-V un MIPS).
    • Objtool ir optimizēts, lai paātrinātu kodola montāžu un samazinātu maksimālo atmiņas patēriņu montāžas laikā (veidojot kodolu ā€œallyesconfigā€ režīmā, tagad nav problēmu ar procesu piespiedu pārtraukÅ”anu sistēmās ar 32 GB RAM).
    • Pārtraukts Intel ICC kompilatora kodola montāžas atbalsts, kas jau ilgu laiku nedarbojas un neviens nav izteicis vēlmi to labot.
  • Diska apakÅ”sistēma, I/O un failu sistēmas
    • tmpfs ievieÅ” atbalstu uzstādÄ«to failu sistēmu lietotāju ID kartÄ“Å”anai, ko izmanto, lai saskaņotu konkrēta lietotāja failus uzstādÄ«tā sveŔā nodalÄ«jumā ar citu lietotāju paÅ”reizējā sistēmā.
    • Btrfs, lai samazinātu bloku grupu sadrumstalotÄ«bu, pieŔķirot blokus, apjomus dala ar lielumu, t.i. jebkura bloku grupa tagad ir ierobežota lÄ«dz mazam (lÄ«dz 128KB), vidējam (lÄ«dz 8 MB) un lielam apjomam. Raid56 ievieÅ”ana ir pārveidota. Kontrolsummu pārbaudes kods ir pārstrādāts. Veiktspējas optimizācija ir veikta, lai paātrinātu nosÅ«tÄ«Å”anas darbÄ«bu lÄ«dz pat 10 reizēm, saglabājot utime direktoriju keÅ”atmiņā un izpildot komandas tikai nepiecieÅ”amÄ«bas gadÄ«jumā. Fiemap darbÄ«bas tagad ir trÄ«s reizes ātrākas, izlaižot atpakaļsaiÅ”u pārbaudes koplietotiem datiem (momentuzņēmumiem). DarbÄ«bas ar metadatiem ir paātrinātas par 10%, optimizējot atslēgu meklÄ“Å”anu b-koka struktÅ«rās.
    • Ext4 failu sistēmas veiktspēja ir uzlabota, ļaujot vairākiem procesiem vienlaikus veikt tieŔās I/O operācijas ar iepriekÅ” pieŔķirtajiem blokiem, izmantojot koplietotās inode bloÄ·Ä“Å”anas, nevis ekskluzÄ«vas slēdzenes.
    • Programmā f2fs ir veikts darbs, lai uzlabotu koda lasāmÄ«bu. Atrisinātas svarÄ«gas problēmas saistÄ«bā ar atomu rakstÄ«Å”anu un jaunā apjoma keÅ”atmiņu.
    • EROFS (Uzlabota lasāmā failu sistēma) failu sistēma, kas paredzēta lietoÅ”anai tikai lasāmos nodalÄ«jumos, ievieÅ” iespēju saistÄ«t saspiestā faila satura dekompresijas darbÄ«bas ar centrālo procesoru, lai samazinātu latentumu, piekļūstot datiem.
    • BFQ I/O plānotājs ir pievienojis atbalstu uzlabotiem rotējoÅ”iem disku diskdziņiem, piemēram, tiem, kuros tiek izmantoti vairāki atseviŔķi vadāmi galvas diskdziņi (vairāki izpildmehānismi).
    • NFS klienta un servera ievieÅ”anai ir pievienots atbalsts datu Å”ifrÄ“Å”anai, izmantojot AES-SHA2 algoritmu.
    • FUSE (Filesystems In User Space) apakÅ”sistēmai ir pievienots atbalsts vaicājuma paplaÅ”ināŔanas mehānismam, kas ļauj vaicājumā ievietot papildu informāciju. Pamatojoties uz Å”o funkciju, FS pieprasÄ«jumam ir iespējams pievienot grupu identifikatorus, kas nepiecieÅ”ami, lai ņemtu vērā piekļuves tiesÄ«bas, veidojot objektus FS (create, mkdir, symlink, mknod).
  • Virtualizācija un droŔība
    • KVM hipervizors x86 sistēmām ir pievienojis atbalstu Hyper-V paplaÅ”inātajiem hiperzvaniem un nodroÅ”inājis to pārsÅ«tÄ«Å”anu uz apstrādātāju, kas darbojas resursdatora vidē lietotāja telpā. Izmaiņas ļāva ieviest atbalstu Hyper-V hipervizora ligzdotai palaiÅ”anai.
    • KVM atvieglo viesu piekļuves ierobežoÅ”anu PMU (Performance Monitor Unit) notikumiem, kas saistÄ«ti ar veiktspējas mērÄ«Å”anu.
    • Memfd mehānisms, kas ļauj identificēt atmiņas apgabalu, izmantojot failu deskriptoru, kas tiek pārsÅ«tÄ«ts starp procesiem, ir pievienojis iespēju izveidot apgabalus, kuros koda izpilde ir aizliegta (neizpildāms memfd) un nav iespējams iestatÄ«t izpildes tiesÄ«bas nākotnē. .
    • Ir pievienota jauna prctl darbÄ«ba PR_SET_MDWE, kas bloķē mēģinājumus iespējot atmiņas piekļuves tiesÄ«bas, kas vienlaikus ļauj rakstÄ«t un izpildÄ«t.
    • AizsardzÄ«ba pret Spectre klases uzbrukumiem ir pievienota un iespējota pēc noklusējuma, pamatojoties uz automātisko IBRS (Enhanced Indirect Branch Restricted Speculation) režīmu, kas piedāvāts AMD Zen 4 procesoros, kas ļauj adaptÄ«vi atļaut un atspējot spekulatÄ«vu instrukciju izpildi pārtraukumu apstrādes, sistēmas izsaukumu un konteksta slēdži. Ierosinātā aizsardzÄ«ba rada zemākas pieskaitāmās izmaksas, salÄ«dzinot ar Retpoline aizsardzÄ«bu.
    • Novērsta ievainojamÄ«ba, kas ļauj apiet aizsardzÄ«bu pret Spectre v2 uzbrukumiem, kad tiek izmantota vienlaicÄ«ga vairāku pavedienu tehnoloÄ£ija (SMT vai Hyper-Threading), un ko izraisa STIBP (Single Thread Indirect Branch Predictors) mehānisma atspējoÅ”ana, atlasot IBRS aizsardzÄ«bas režīmu.
    • Sistēmām, kuru pamatā ir ARM64 arhitektÅ«ra, ir pievienots jauns montāžas mērÄ·is ā€œvirtconfigā€, kad tas ir atlasÄ«ts, tiek aktivizēts tikai minimālais kodola komponentu komplekts, kas nepiecieÅ”ams, lai virtualizācijas sistēmās sāktu palaiÅ”anu.
    • M68k arhitektÅ«rai ir pievienots atbalsts sistēmas zvanu filtrÄ“Å”anai, izmantojot seccomp mehānismu.
    • Pievienots atbalsts CRB TPM2 (Command Response Buffer) ierÄ«cēm, kas iebÅ«vētas AMD Ryzen procesoros, pamatojoties uz Microsoft Pluton tehnoloÄ£iju.
  • TÄ«kla apakÅ”sistēma
    • Ir pievienots tÄ«kla saites interfeiss, lai konfigurētu PLCA (fiziskā slāņa sadursmju novērÅ”anas) apakÅ”slāni, kas definēts IEEE 802.3cg-2019 specifikācijā un tiek izmantots 802.3cg (10Base-T1S) Ethernet tÄ«klos, kas optimizēti lietu interneta ierīču un industriālo sistēmu savienoÅ”anai. PLCA izmantoÅ”ana uzlabo veiktspēju Ethernet tÄ«klos ar koplietotu datu nesēju.
    • ā€œBezvadu paplaÅ”inājumuā€ API atbalsts WiFi 7 (802.11be) bezvadu saskarņu pārvaldÄ«bai ir pārtraukts, jo Ŕī API neaptver visus nepiecieÅ”amos iestatÄ«jumus. Mēģinot izmantot "bezvadu paplaÅ”inājumu" API, kas joprojām tiek atbalstÄ«ts kā emulēts slānis, lielākajai daļai paÅ”reizējo ierīču tagad tiks parādÄ«ts brÄ«dinājums.
    • Ir sagatavota detalizēta dokumentācija par netlink API (pamata izstrādātājiem un lietotāja telpas lietojumprogrammu izstrādātājiem). UtilÄ«ta ynl-gen-c ir ieviesta, lai Ä£enerētu C kodu, pamatojoties uz Netlink protokola YAML specifikācijām.
    • Opcijas IP_LOCAL_PORT_RANGE atbalsts ir pievienots tÄ«kla ligzdām, lai vienkārÅ”otu izejoÅ”o savienojumu konfigurÄ“Å”anu, izmantojot adreÅ”u tulkus, neizmantojot SNAT. Izmantojot vienu IP adresi vairākos saimniekdatoros, IP_LOCAL_PORT_RANGE ļauj izmantot atŔķirÄ«gu izejoÅ”o tÄ«kla portu diapazonu katrā resursdatorā un pārsÅ«tÄ«t paketes, pamatojoties uz vārtejas portu numuriem.
    • MPTCP (MultiPath TCP) ir ieviesta iespēja apstrādāt jauktas straumes, izmantojot IPv4 un IPv6 protokolus. MPTCP ir TCP protokola paplaÅ”inājums, lai organizētu TCP savienojuma darbÄ«bu ar pakeÅ”u piegādi vienlaicÄ«gi pa vairākiem marÅ”rutiem caur dažādām tÄ«kla saskarnēm, kas saistÄ«tas ar dažādām IP adresēm.
    • IPv4 ir iespējams izmantot BIG TCP paplaÅ”inājumu, kas ļauj palielināt maksimālo TCP pakeÅ”u izmēru lÄ«dz 4 GB, lai optimizētu ātrgaitas iekŔējo datu centru tÄ«klu darbÄ«bu. LÄ«dzÄ«gs pakeÅ”u lieluma palielinājums ar 16 bitu galvenes lauka lielumu tiek panākts, ievieÅ”ot ā€œjumboā€ paketes, kuru IP galvenē izmērs ir iestatÄ«ts uz 0 un faktiskais lielums tiek pārsÅ«tÄ«ts atseviŔķā 32 bitu formātā. atseviŔķā pievienotā galvenē.
    • Ir pievienots jauns sysctl parametrs default_rps_mask, caur kuru var iestatÄ«t noklusējuma RPS (Receive Packet Steering) konfigurāciju, kas ir atbildÄ«ga par ienākoŔās trafika apstrādes sadali pa CPU kodoliem pārtraukumu apstrādātāja lÄ«menÄ«.
    • Ir pārtraukts atbalsts rindu apstrādes disciplÄ«nām, lai ierobežotu CBQ (uz klases rindu), ATM (ATM virtuālās shēmas), dsmark (diferencēts pakalpojumu marÄ·ieris), tcindex (satiksmes kontroles indekss) un RSVP (resursu rezervÄ“Å”anas protokols) trafiku. Å Ä«s disciplÄ«nas jau ilgu laiku ir pamestas, un nebija neviena, kas vēlētos tās atbalstÄ«t.
  • ŠžŠ±Š¾Ń€ŃƒŠ“Š¾Š²Š°Š½ŠøŠµ
    • Noņemti visi uz DRI1 balstÄ«ti grafikas draiveri: i810 (vecākas integrētās Intel 8xx grafiskās kartes), mga (Matrox GPU), r128 (ATI Rage 128 GPU, ieskaitot Rage Fury, XPERT 99 un XPERT 128 kartes), savvage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) un via (VIA IGP), kuru darbÄ«ba tika pārtraukta 2016. gadā un nav atbalstÄ«ta Mesa kopÅ” 2012. gada.
    • Noņemti mantotie kadru bufera draiveri (fbdev) omap1, s3c2410, tmiofb un w100fb.
    • Intel Meteor Lake CPU (14. paaudzes) integrētajām VPU (Universatile Processing Unit) vienÄ«bām ir pievienots DRM draiveris, kas paredzēts, lai paātrinātu darbÄ«bas, kas saistÄ«tas ar datora redzi un maŔīnmācÄ«Å”anos. Draiveris tiek ieviests, izmantojot ā€œaccelā€ apakÅ”sistēmu, kuras mērÄ·is ir nodroÅ”ināt atbalstu skaitļoÅ”anas paātrinātājiem, kurus var piegādāt vai nu atseviŔķu ASIC formā, vai kā IP blokus SoC un GPU iekÅ”pusē.
    • I915 (Intel) draiveris paplaÅ”ina atbalstu diskrētajām Intel Arc (DG2/Alchemist) grafiskajām kartēm, nodroÅ”ina sākotnējo atbalstu Meteor Lake GPU un ietver atbalstu Intel Xe HP 4tile GPU.
    • Amdgpu draiveris nodroÅ”ina atbalstu AdaptiveSync tehnoloÄ£ijai un iespēju izmantot droŔā displeja režīmu ar vairākiem displejiem. Atjaunināts atbalsts DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x un DP 2.1.
    • Msm draiveris (Qualcomm Adreno GPU) ir pievienojis atbalstu platformām SM8350, SM8450 SM8550, SDM845 un SC8280XP.
    • Nouveau draiveris vairs neatbalsta vecos ioctl zvanus.
    • Etnaviv draiverim ir pievienots eksperimentāls atbalsts NPU VerSilicon (VeriSilicon neironu tÄ«kla procesoram).
    • Pata_parport draiveris ir ieviests IDE diskdziņiem, kas savienoti, izmantojot paralēlo portu. Pievienotais draiveris ļāva noņemt veco PARIDE draiveri no kodola un modernizēt ATA apakÅ”sistēmu. Jaunā draivera ierobežojums ir nespēja vienlaikus savienot printeri un disku, izmantojot paralēlo portu.
    • Pievienots ath12k draiveris bezvadu kartēm Qualcomm mikroshēmās, kas atbalsta Wi-Fi 7. Pievienots atbalsts bezvadu kartēm RealTek RTL8188EU mikroshēmās.
    • Pievienots atbalsts 46 plates ar procesoriem, kuru pamatā ir ARM64 arhitektÅ«ra, 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 un arÄ« ierÄ«ces, kuru pamatā ir SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 un SDM632, Rockchips RK3128 TV kaste, RV1126 Vision, RK3588, RK3568, RK3566, RK3588, RK3328, 3 RK642, 654,/ 68 69/ AMXNUMX/AMXNUMX).

Tajā paŔā laikā Latīņamerikas BrÄ«vās programmatÅ«ras fonds izveidoja pilnÄ«gi bezmaksas kodola 6.3 versiju - Linux-libre 6.3-gnu, kas ir atbrÄ«vota no programmaparatÅ«ras elementiem un draiveriem, kas satur nebrÄ«vus komponentus vai koda sadaļas, kuru darbÄ«bas joma ir ierobežo ražotājs. Laidienā 6.3 tika iztÄ«rÄ«ti blobi jaunajos ath12k, aw88395 un peb2466 draiveros, kā arÄ« jaunajos qcom ierīču ierīču koka failos, kuru pamatā ir AArch64 arhitektÅ«ra. Atjaunināts blobu tÄ«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. MGA, r128, tm6000, cpia2 un r8188eu draiveru tÄ«rÄ«Å”ana ir apturēta, jo tie ir izņemti no kodola. Uzlabota i915 draivera lāpu tÄ«rÄ«Å”ana.

Avots: opennet.ru

Pievieno komentāru