Linuxi tuuma 6.3 vÀljaanne

Kaks kuud kestnud arendustööd pĂ€rast esitles Linus Torvalds Linuxi tuuma 6.3 vĂ€ljalaset. KĂ”ige silmapaistvamad muudatused hĂ”lmavad: vanade ARM-platvormide ja graafikadraiverite puhastamist, Rusti keele toe integreerimise jĂ€tkamist, utiliidi hwnoise, punase-musta puu and structures BPF toetamist, BIG TCP reĆŸiimi IPv4 jaoks, Dhrystone'i jĂ”udlustesti integreerimist, memfd-s tĂ€ideviimise keelu vĂ”imaluse, siduri tootejuhtide loomise toetust, samuti Btrfs-is vastu vĂ”etud muudatusi plokigruppide fragmentatsiooni vĂ€hendamiseks.

Uude versiooni on vastu vĂ”etud 15637 parandust 2055 arendajalt; plaastri suurus on 76 MB (muudatused puudutasid 14296 faili, lisati 1023183 koodirida, kustutati 883103 rida). VĂ”rdluseks, eelnevas versioonis pakuti 16843 parandust 2178 arendajalt; plaastri suurus oli 62 MB. Umbes 39% tuuma 6.3 muudatustest on seotud seadme draiveritega, ligikaudu 15% muudatustest puudutab seadme arhitektuuri spetsiifilist koodi, 10% on seotud vĂ”rgu koodiga, 5% failisĂŒsteemide ning 3% tuuma sisealustega.

Peamised uuendused tuumas 6.3:

  • MĂ€lu ja sĂŒsteemiteenused
    • Significant clean-up of code related to old and unused ARM platforms has reduced the kernel’s source texts by 150,000 lines. Over 40 old ARM platforms have been removed.
    • Rajatud on vĂ”imalus luua seadme sisendi draivereid HID (Human Interface Device) liidese kaudu, rakendades BPF- programme.
    • Rust-for-Linux haru ĂŒlesanne on jĂ€tkuvalt ĂŒle viia tĂ€iendavaid funktsioone, mis on seotud Rusti keele kasutamisega teise keele arenduses draiverite ja tuuma moodulite jaoks. Rusti toetus ei ole vaikimisi aktiivne ja ei too kaasa Rusti kaasamist tuuma kohustuslikesse sĂ”ltuvustesse. Eelnevates vĂ€ljaannetes pakutud funktsioone on laiendatud Arc (viidatud viidete rakendus), ScopeGuard (tĂ€idab puhastuse vĂ€ljumisel) ja ForeignOwnable (tagab viidete edastamise C ja Rust koodide vahel) toetamisega. Pakett ‘alloc’ kustutati moodul ‘borrow’ (viidatud ‘Cow’ ja viidatud ‘ToOwned’ tĂŒĂŒp). TĂ€heldatakse, et Rusti toetuse tase tuumas on juba lĂ€henemas hetkele, mil saab hakata vastu vĂ”tma esimesi Rustis kirjutatud mooduleid.
    • User-mode Linuxis (tuuma kĂ€itamine kasutaja protsessina) on sĂŒsteemidel x86-64 rakendatud Rustis kirjutatud koodi toetus. On lisatud User-mode Linuxi kokkupaneku toetus koos clangiga, sealhulgas lingimise optimeerimine (LTO) abil.
    • On lisatud utiliit hwnoise, et jĂ€lgida viivitusi, mis on tingitud riistvara karakteristikutest. MÀÀratakse kindlaks teatud kestvuse kĂ”rvalekalded (jitter), mis ĂŒletavad ĂŒhe mikroseundi 10-minutiliste arvutuste jooksul.
    • On lisatud tuuma moodul Dhrystone'i jĂ”udlustesti rakendusega, mida saab kasutada CPU jĂ”udlust hindamiseks konfiguratsioonides, kus pole kasutaja ruumi komponente (nt uute SoC-de portimise etapis, kus on implementeeritud vaid tuuma laadimine).
    • On lisatud tuuma kĂ€surea parameeter «cgroup.memory=nobpf», mis keelab BPF programmide mĂ€lutarbimise arvestuse, mis vĂ”ib olla kasulik isoleeritud konteineritega sĂŒsteemidele.
    • BPF programmide jaoks on pakutud punase-musta puu andmestruktuuri rakendust, mis kasutab kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) uue kaardistuse tĂŒĂŒbi lisamise asemel.
    • TaaskĂ€ivitatavate jĂ€rjestuste (rseq, restartable sequences) mehhanismis on lisatud vĂ”imalus edastada protsessidele paralleelse tĂ€itmise identifikaatoreid (memory-map concurrency ID), mis on seostatavad CPU numbriga. Rseq pakub kiireid aatomseid operatsioone, mis katkestamise korral tĂŒhistatakse ja toimub katse uuesti tĂ€ita.
    • ARM-protsessorites on rakendatud SME 2 (Scalable Matrix Extension) kĂ€skluste toetus.
    • s390x ja RISC-V RV64 arhitektuurides on rakendatud «BPF trampoline» mehhanismi, mis vĂ”imaldab minimeerida ĂŒleandmis kulusid tuuma ja BPF-programmide vahel.
    • RISC-V arhitektuuril pĂ”hinevates sĂŒsteemides on rakendatud kĂ€skluste «ZBB» kasutamine stringide operatsioonide kiirendamiseks.
    • LoongArch kĂ€sukomplekti arhitektuuriga (kasutatav Loongson 3 5000 protsessorites ja uus RISC ISA, mis sarnaneb MIPS ja RISC-V-iga) on rakendatud tuuma aadressiruumi randomiseerimise (KASLR), tuuma asukoha muutmise (relocation), riistvaraliste seisaku punktide ja kprobe mehhanismi toetus.
    • DAMOS (Data Access Monitoring-based Operation Schemes) mehhanismis, mis vĂ”imaldab mĂ€lu vabastada mĂ€lu juurdepÀÀsu sageduse arvesse vĂ”tmisega, on implementeeritud filtrite tugi, et vĂ€listada teatud mĂ€lu piirkondade töötlemine DAMOS-is.
    • Nolibc minimaalses standardses C-raamatukogus on toetatud s390 arhitektuuri ja Arm Thumb1 kĂ€su komplekti (koos ARM, AArch64, i386, x86_64, RISC-V ja MIPS toetusega).
    • Objtool on optimeeritud, et kiirendada kernelite kokkupanekut ja vĂ€hendada tipptasemel mĂ€lutarbimist (kernelite kokkupanekul "allyesconfig" reĆŸiimis ei esine nĂŒĂŒd probleeme protsesside sundseisaku pĂ”hjustamisega sĂŒsteemides, millel on 32 GB RAM-i).
    • Intel ICC kompilaatori kernelite kokkupaneku tugi on lĂ”petatud, kuna see on pikka aega olnud mittefunktsionaalne ja keegi ei ole soovinud seda parandada.
  • Disski alamsĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
    • Tmpfs-is on rakendatud kasutaja tuvastamise kaardistamise tugi, mis on vajalik teatud kasutaja failide seostamiseks vÔÔra mountitud sektsiooni fĂŒĂŒsiliste failide jaotamiseks teises sĂŒsteemis.
    • Btrfs-is on grupeerimise fraktsioneerimise vĂ€hendamiseks tagatud ekstensioonide size jaotumine bloki eraldamisel, st igasuguse blokigrupp on nĂŒĂŒd piiratud vĂ€ikeste (kuni 128KB), keskmiste (kuni 8 MB) ja suurte ekstensioonidega. Raid56 realiseerimise refaktoreerimine on lĂ€bi viidud. Kontrollsummade kontrollimise koodi on ĂŒmber töötatud. Suurendatud on jĂ”udluse optimeerimist, mis vĂ”imaldab kiirendada send operatsiooni kuni 10 korda, kasutades kaustade utime'i vahemĂ€lu ja sĂŒĂŒdistades kĂ€ske vaid vajadusel. Fiemap-operatsioonide tĂ€itmine on kolm korda kiiremini pĂ€rast tagasiviidete kontrollimise saamiste vahelejĂ€tmist, mis on suurandmetega seotud. Metainfo operatsioonid on kiirenenud 10% vĂ”rra, kuna b-tree struktuurides vĂ”tmete otsimise optimeerimise tĂ”ttu.
    • Ext4 failisĂŒsteemi jĂ”udlust on parendatud mitme protsessi samaaegse valimise teostamise vĂ”imaluse abil otse sisendi/vĂ€ljundi operatsioonides, kasutades jagatud inode lukustusi eksklusiivse lukustamise asemel.
    • F2fs-is on tehtud tööd koodijĂ”udluse parandamiseks. Lahendatud on tĂ€htsad probleemid, mis on seotud aatomiliste kirjutamiste ja uue ekstensioonide vahemĂ€lu haldamisega.
    • EROFS (Enhanced Read-Only File System) failisĂŒsteemis, mis on mĂ”eldud sĂŒsteemidele lugemiseks, on uus tĂ€iendus, mis seob dekompressioonioperatsioonid CPU-ga kompressitud faili sisu lugemisel andmete juurdepÀÀsu viivituste vĂ€hendamiseks.
    • BFQ sisendi/vĂ€ljundi planeerijale on lisatud tugi edasijĂ”udnud pöörlevate salvestuslahenduste jaoks, sealhulgas sellised, kus on mitu eraldi juhitavat pea seadet (Multi Actuator).
    • Kliendi ja serverid NFS rakendusse on lisatud andmete krĂŒpteerimise tugi AES-SHA2 algoritmi kasutamisega.
    • FUSE (Filesystems In User Space) alamsĂŒsteemi on lisatud toe taotluste laiendamise mehhanismile, mis vĂ”imaldab lisada taotlusele lisainfot. Selle pĂ”hjal on rakendatud grupi tuvastamise lisamine failisĂŒsteemi taotlusele, mis on vajalik Ă”igusaktide arvestamiseks failide loomisel (create, mkdir, symlink, mknod).
  • Virtualiseerimine ja turvalisus
    • KVM hĂŒperviisoris on lisatud laienenud Hyper-V hĂŒperkĂ”ned ja nende suunamine kasutajaruumi töötava töötleja juurde, mille tulemuseks on Hyper-V hĂŒperviisori pesastatud kĂ€ivitamise toetus.
    • KVM-is on lihtsustatud kĂŒlalissĂŒsteemi juurdepÀÀsu piiramist PMU (Performance Monitor Unit) sĂŒndmustele, mis on seotud jĂ”udluse mÔÔtmisega.
    • Memfd mehhanismi on lisatud vĂ”imalus luua mĂ€lupiirkondi, kus ei lubata koodi tĂ€itmist (non-executable memfd) ja kuhu ei ole vĂ”imalik hiljem lubada tĂ€itmisĂ”igust.
    • Uus prctl-operatsioon PR_SET_MDWE on lisatud, et blokeerida mĂ€lu juurdepÀÀsu lubamise katseid, mis samal ajal lubavad kirjutamist ja tĂ€itmist.
    • On lisatud ja vaikimisi lubatud kaitse Spectre-tĂŒĂŒpi rĂŒnnakute eest, mis on realiseeritud AMD Zen 4 protsessorites ette nĂ€htud automaatse IBRS reĆŸiimiga (Enhanced Indirect Branch Restricted Speculation), mis vĂ”imaldab spontaanselt lubada ja keelata spekulatiivse kĂ€skude tĂ€itmise katkestuste, sĂŒsteemi kutsete ja konteksti vahetamisel. Ettepaneku pĂ”hjal loodud kaitse pĂ”hjustab vĂ€iksemaid kulusid vĂ”rreldes Retpoline kaitsega.
    • Spectre v2 rĂŒnnakute kaitse ĂŒmbersuurteede kiire Ă”nnestumise vĂ”imalus on kĂ”rvaldatud, kui kasutatakse samaaegset mitme lĂ”ime tehnoloogiat (SMT vĂ”i Hyper-Threading), ja see on tingitud STIBP mehhanismi (Single Thread Indirect Branch Predictors) deaktiveerimisest IBRS kaitsereĆŸiimi valimisel.
    • ARM64 arhitektuuriga sĂŒsteemide jaoks on lisatud uus koostamise eesmĂ€rk 'virtconfig', mille valimisel aktiveeritakse ainult minimaalne komponentide kogum, mis on vajalik virtualiseerimissĂŒsteemides kĂ€ivitamiseks.
    • m68k arhitektuuri jaoks on lisatud toetus sĂŒsteemikutsungite filtreerimiseks seccomp mehhanismi abil.
    • AMD Ryzen protsessoritesse integreeritud CRB TPM2 (Command Response Buffer) seadmete tugi, mis pĂ”hineb Microsoft Pluton tehnoloogial, on lisatud.
  • VĂ”rgu alamsĂŒsteem
    • PLCA (Physical Layer Collision Avoidance) alataseme seadistamiseks on lisatud netlink-liides, mis on mÀÀratletud IEEE 802.3cg-2019 spetsifikatsioonis ja mida kasutatakse Etherneti vĂ”rkudes 802.3cg (10Base-T1S), mis on optimeeritud asjade Interneti seadmete ja tööstuslike sĂŒsteemide ĂŒhendamiseks. PLCA rakendamine vĂ”imaldab parandada Etherneti vĂ”rkude tĂ”husust, mis kasutavad jagatud keskkonda.
    • WiFi 7 (802.11be) juhtimisvĂ”imaluste 'wireless extensions' API toetus on lĂ”petatud, kuna see API ei kata kĂ”iki vajalikke seadistusi. 'Wireless extensions' API kasutamise katsel, mis jĂ€tkuvalt toetub emuleerimisse, annab nĂŒĂŒd enamiku praeguste seadmete puhul hoiatuse.
    • Netlink API kohta on koostatud ĂŒksikasjalik dokumentatsioon (kernel arendajatele ja kasutajaruumi rakenduste arendajatele). On loodud utiliit ynl-gen-c, mis genereerib C-koodi YAML-spetsifikatsioonide pĂ”hjal Netlink protokolli jaoks.
    • VĂ”rgusokkidele on lisatud IP_LOCAL_PORT_RANGE valiku tugi, et lihtsustada vĂ€ljuvaid ĂŒhenduste seadistamist aadressi tĂ”lgete kaudu ilma SNATita. Ühe IP_LOCAL_PORT_RANGE rakendamise korral mitmel hostil on igal hostil vĂ”imalus kasutada oma vĂ€ljuvate vĂ”rguportide vahemikku ning suunata pakette portide numbrite pĂ”hjal vĂ€ravas. IP-aadressid MPTCP (MultiPath TCP) jaoks on lisatud vĂ”imalus segatud voogude haldamiseks, kus kasutatakse nii IPv4 kui IPv6 protokolle. MPTCP on TCP protokolli laiendus, mis vĂ”imaldab TCP-ĂŒhenduse töötamist pakettide samaaegse edastamisega mitmete marsruutide kaudu erinevate vĂ”rguliideste kaudu, mis on seotud erinevate IP-aadressidega.
    • IPv4 jaoks on vĂ”imalik kasutada BIG TCP laiendust, mis vĂ”imaldab suurendada TCP-paketi maksimaalset suurust 4GB-ni, et optimeerida andmekeskuste kiirete sisevĂ”rkude tööd. Selline paketi suuruse suurenemine 16-bitise pĂ€ise vĂ€lja puhul saavutatakse 'jumbo' paketide rakendamise kaudu, mille IP-pĂ€ise suurus seatakse 0, ning tegelik suurus edastatakse eraldi 32-bitises vĂ€ljas eraldi lisatud pĂ€ises.
    • Uus sysctl-parameeter default_rps_mask on lisatud, mille kaudu saab mÀÀrata vaikimisi RPS (Receive Packet Steering) konfiguratsiooni, mis vastutab sissetuleva liikluse töötlemise jaotamise eest CPU tuumade lĂ”ikes katkestuste töötlejate tasemel.
    • Rikkalikud queues töötlemise distsipliinide tugi on lĂ”petatud, sealhulgas CBQ (class-based queuing), ATM (ATM virtual circuits), dsmark (differentiated service marker), tcindex (traffic-control index) ja RSVP (resource reservation protocol). Need distsipliinid on pikka aega olnud heidutatud ja pole leitud soovi nende hooldust jĂ€tkata.
    • KĂ”ik DRI1 baasil töötavad graafikajuhid on eemaldatud: i810 (vanad Intel 8xx integreeritud graafikakaardid), mga (Matrox GPU), r128 (ATI Rage 128 GPU, sealhulgas Rage Fury, XPERT 99 ja XPERT 128 kaardid), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) ja via (VIA IGP), mis kuulutati 2016. aastal aegunud ja mida ei toetata Meadows alates 2012. aastast.
  • Seadmed
    • Vanad raami puhvri (fbdev) draiverid omap1, s3c2410, tmiofb ja w100fb on eemaldatud.
    • Intel Meteor Lake (14. pĂ”lvkond) protsessorites integreeritud VPU (Versatile Processing Unit) jaoks on lisatud DRM-draiver, mis on ette nĂ€htud arvutinĂ€gemise ja masinĂ”ppe operatsioonide kiirendamiseks. Draiver on rakendatud 'accel' alamsĂŒsteemi abil, et pakkuda toetust arvutuskiirenditele, mis vĂ”ivad olla saadaval eraldi ASIC-idena vĂ”i IP-plokkidena SoC-s ja GPU-s.
    • Draiveri i915 (Intel) uuendatud toetus sisaldab uusimaid Intel Arc (DG2/Alchemist) eraldatud graafikakaartide, Meteor Lake GPU eeltoetuse ja Intel Xe HP 4tile GPU toetu.
    • Draiveri amdgpu jaoks on lisatud toetus AdaptiveSync tehnoloogiale ja muljet alandava ekraani andmete kaitse reĆŸiimile (Secure Display) mitme ekraani kasutamise korral. DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x ja DP 2.1 tugi on uuendatud.
    • Draiveris msm (Qualcomm Adreno GPU) on lisatud tugi SM8350, SM8450, SM8550, SDM845 ja SC8280XP platvormidele.
    • Draiveri Nouveau toestamine vanade ioctl kutsungite kasutamise jaoks on lĂ”petatud.
    • Draiveris etnaviv on lisatud katse toetus NPU VerSilicon (VeriSilicon Neural Network Processor).
    • Etnaviv draiverisse on lisatud katsetamistugi VeriSiliconi (VeriSilicon Neural Network Processor) NPU-le.
    • Rakendatud pata_parport draiver IDE-seadmete jaoks, mis on ĂŒhendatud paralleelse pordi kaudu. Lisatud draiver vĂ”imaldas eemaldada tuumast vana PARIDE draiveri ja moderniseerida ATA alamsĂŒsteemi. Uue draiveri piiranguks on printeri ja ketta samaaegneĂŒhendamine paralleelse pordi kaudu.
    • Lisatud ath12k draiver Qualcommi kiipidega traadita kaardile, mis toetab Wi-Fi 7. Lisatud tugi traadita kaartidele RealTek RTL8188EU kiipidega.
    • Lisatud tugi 46-le ARM64 arhitektuuri pĂ”histele plaatidele, sealhulgas 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, samuti seadmed SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 ja SDM632, Rockchips RK3128 TV box, RV1126 Vision, RK3588, RK3568, RK3566, RK3588 ja RK3328, TI K3 (AM642/AM654/AM68/AM69).

Sama aegselt on Ladina-Ameerika Vaba Tarkvara Fond koostanud tĂ€ielikult vaba tuuma versiooni 6.3 - Linux-libre 6.3-gnu, mis on puhastatud tootja poolt piiratud kĂ”vakettade ja draiverite elementide olemasolust. Versioonis 6.3 on puhastatud blobe uutes draiverites ath12k, aw88395 ja peb2466, samuti uutes devicetree failides Qualcommi seadmetele, mis pĂ”hinevad AArch64 arhitektuuril. Uuendatud on blobi puhastamise kood draiverites ja alamsĂŒsteemides amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110, ning DVB-kaardid, millel on tarkvara dekodeerimine ja eelkompileeritud BPF-failid. Puhastamine draiverites mga, r128, tm6000, cpia2 ja r8188eu on lĂ”petatud, kuna need on tuumast eemaldatud. Draiveri i915 blobi puhastamine on paranenud.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster