Kaks kuud arendustööd tagasi Linus Torvalds esitles Linuxi kĂ€rje 6.3 vĂ€ljalaset. KĂ”ige silmapaistvamad muudatused on: vananenud ARM-platvormide ja graafikadraiverite puhastamine, Rusti keele toe integreerimise jĂ€tkamine, utiliit hwnoise, punase-musta puu struktuuri tugi BPF-is, BIG TCP reĆŸiim IPv4 jaoks, sisseehitatud Dhrystone jĂ”udlustest, vĂ”imalus keelata koodi tĂ€itmine memfd-s, tugi HID-draiverite loomisel BPF-i abil, Btrfs-is on vastu vĂ”etud muudatused lĂ”hkumiste vĂ€hendamiseks plokkide rĂŒhmades.
Uues versioonis on vastu vĂ”etud 15637 parandust 2055 arendajalt; plaastri suurus on 76 MB (muudatused puudutasid 14296 faili, lisatud 1023183 koodirida, kustutatud 883103 rida). VĂ”rdluseks: eelmisel versioonil oli pakutud 16843 parandust 2178 arendajalt; plaastri suurus oli 62 MB. Umbes 39% kĂ”ikidest kernis 6.3 esitatud muudatustest on seotud seadme draiveritega, umbes 15% muudatused on seotud riistvarale erilise koodi uuendamisega, 10% on seotud vĂ”rgu stackiga, 5% failisĂŒsteemidega ja 3% kerni sisemiste al sĂŒsteemidega.
KÀrje 6.3 pÔhimuudatused:
- MĂ€lu ja sĂŒsteemiteenused
- Vana ja kasutamata ARM-platvormidega seotud koodi on mĂ€rkimisvÀÀrselt puhastatud, vĂ€hendades kĂ€rje lĂ€htekoodide suurust 150 tuhande rea vĂ”rra. Ăkski ĂŒle 40 vana ARM-platvormi ei ole enam olemas.
- Rakendatud on vÔimalus luua HID (Inimese Liidese Seade) draivereid, mida toetatakse BPF-programmidena.
- Rust-for-Linux harust on jĂ€tkatud tĂ€iendavate funktsioonide ĂŒleviimist, mis on seotud Rusti keele kasutamise vĂ”imaldamisega draiverite ja kĂ€rje moodulite arendamiseks teise keelena. Rusti toe puhul ei ole see vaikimisi aktiivne ja ei too kaasa Rusti lisamist kĂ€rje kohustuslike ehitus sĂ”ltuvustena. Eelnevates vĂ€ljaannetes pakutud funktsionaalsus on laiendatud Arc tĂŒĂŒpi toetuse (viidatud nĂ€itajate rakendamine) ning ScopeGuardiga (teeb puhastuse, kui mani ulatub vĂ€ljapoole ulatust) ja ForeignOwnable (tagab viidatud nĂ€itajate liikumise C ja Rust koodi vahel). Pakend âallocâ moodul âborrowâ (tĂŒĂŒp âCowâ ja omadus âToOwnedâ) on eemaldatud. MĂ€rgitakse, et Rusti toe seisund kĂ€rjes on juba lĂ€hedal esimeste Rustis kirjutatud moodulite vastuvĂ”tmise algusele.
- User-mode Linuxis (kernel running as a user process) on x86-64 systems has implemented support for code written in Rust. Support for building User-mode Linux using clang has been added, including optimizations at the linking stage (LTO).
- A utility named hwnoise has been added to track delays caused by hardware peculiarities. Deviations in operation execution time (jitter) are determined when interrupt processing is disabled, exceeding one microsecond over 10 minutes of computations.
- A kernel module with the Dhrystone performance test implementation has been added, which can be used to assess CPU performance in configurations without user space components (for example, during the porting stage for new SoCs that only implement kernel loading).
- The kernel command line parameter âcgroup.memory=nobpfâ has been added, disabling memory consumption accounting for BPF programs, which can be useful for systems with isolated containers.
- A data structure red-black tree has been proposed for BPF programs, utilizing kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) instead of adding a new mapping type.
- The mechanism of restartable sequences (rseq) now includes the ability to pass process identifiers of parallel execution (memory-map concurrency ID), identified with CPU numbers. Rseq provides means for rapid atomic execution of operations, which, in case interrupted by another thread, are cleared and retried.
- Support for SME 2 (Scalable Matrix Extension) instructions has been provided on ARM processors.
- Support for the BPF trampoline mechanism has been implemented for s390x and RISC-V RV64 architectures, allowing for minimized overhead when passing calls between the kernel and BPF programs.
- On systems with processors based on the RISC-V architecture, the use of âZBBâ instructions for accelerating string operations has been implemented.
- For systems based on the LoongArch instruction set architecture (used in Loongson 3 5000 processors and implementing a new RISC ISA similar to MIPS and RISC-V), support for kernel address space randomization (KASLR), kernel relocation, hardware breakpoints, and the kprobe mechanism has been implemented.
- DAMOS (Data Access Monitoring-based Operation Schemes) mehhanismis, mis vabastab mÀlu, arvestades mÀlu kasutamise sagedust, on rakendatud filtreid, mis vÀlistavad teatud mÀlu piirkondade töötlemise DAMOS-is.
- Nolibc minimaalses standardses C-kogumikes on toe alla viidud s390 arhitektuur ja Arm Thumb1 kÀsu komplekt (lisaks ARM, AArch64, i386, x86_64, RISC-V ja MIPS toele).
- Objtool on optimeeritud, et kiirendada kernelikogumist ja vĂ€hendada mĂ€lu tippkasutust kogumise ajal (kernelit kogudes 'allyesconfig' reĆŸiimis ei teki nĂŒĂŒd probleemide sundseisuga protsesside lĂ”petamisel 32 GB RAM-iga sĂŒsteemides).
- Intel ICC kompilaatori toe lÔpetamine, mis on juba pikemat aega olnud mittefunktsionaalne ja mille parandamist keegi ei soovi.
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- Tmpfs-is on rakendatud kasutaja identifikaatorite kaardistamise tugi monteeritud failisĂŒsteemide jaoks, et seostada teatud kasutaja faile vÔÔras monteeritud partitsioonil teise kasutajaga praeguses sĂŒsteemis.
- Btrfs-is on fragmentatsiooni vĂ€hendamiseks rakendatud blokeerimiste rĂŒhmade jagamine suuruse jĂ€rgi, st iga blokeerimisrĂŒhm on nĂŒĂŒd piiratud vĂ€ikeste (kuni 128KB), keskmiste (kuni 8 MB) ja suurte ekstentidega. Raid56 rakendamine on refaktoreeritud. Kontrollsummade kontrollimise kood on ĂŒmber tehtud. On tehtud jĂ”udluse optimeerimisi, mis vĂ”imaldavad kuni 10 korda kiirendada send-operatsiooni, tĂ€nu kaustade utime vahemĂ€lule ja kĂ€skude tĂ€itmisele ainult siis, kui see on vajalik. Fiemap operatsioonide tĂ€itmine on kolme korda kiirem, kuna tagasiviitamise kontrollid jagatud andmete (snapshotide) jaoks on vahele jĂ€etud. Metaandmete toimingute kiirus on 10% paranenud b-tree struktuurides vĂ”tmete otsimise optimeerimise tĂ”ttu.
- Ext4 failisĂŒsteemi jĂ”udlust on suurendatud, vĂ”imaldades mitme protsessi samaaegset otsesest sisend-/vĂ€ljundoperatsioonide sooritamist eelnevalt eraldatud blokis, kasutades ĂŒhisblokke inode'i asemel eraldi lukustamist.
- F2fs-is on tehtud tööd koodi loetavuse parandamiseks. Lahendatud on olulised probleemid, mis on seotud aatomkirjutamise ja uue ekstendi vahemÀluga.
- EROFS (Enhanced Read-Only File System) failisĂŒsteemis, mis on mĂ”eldud kirjutuskaitstud osade jaoks, on rakendatud vĂ”imalus siduda CPU-ga dekompressiooniprotseduure, et vĂ€hendada andmete juurde pÀÀsemise viivitusi.
- BFQ sisend/vÀljund planeerijale on lisatud tugi arenenud pöörlevate kettaseadmete jaoks, nÀiteks selliste, kus kasutatakse mitut eraldi juhtimisega pead (Multi Actuator).
- Kliendi ja NFS teostusse on lisatud andmete krĂŒpteerimise tugi, kasutades AES-SHA2 algoritmi. serverilt FUSE (Filesystems In User Space) alamĂŒsteemi on lisatud tugi pĂ€ringute laiendamise mehhanismile, mis vĂ”imaldab pĂ€ringutesse lisada tĂ€iendavat teavet. Selles pĂ”hineva vĂ”imaluse abil on ellu viidud gruppide identifikaatorite lisamine failisĂŒsteemi pĂ€ringutesse, mis on vajalik juurdepÀÀsuĂ”iguste arvestamiseks failisĂŒsteemis objektide loomisel (create, mkdir, symlink, mknod).
- KVM hĂŒperviisori sĂŒsteemides x86 on lisatud tugi laiendatud hĂŒperkutsedele Hyper-V, vĂ”imaldades nende edastamist töötlevasse kasutajaruumi host-keskkonnas. Muudatus on vĂ”imaldanud toetada Hyper-V hĂŒperviisori sissetoomist.
- Virtualiseerimine ja turvalisus
- KVM-is on lihtsustatud juurdepÀÀsu piiramine kĂŒlastusĂŒsteemi jaoks seotud PMU (Performance Monitor Unit) sĂŒndmustele, mis mÔÔdavad jĂ”udlust.
- Memfd mehhanismi, mis vÔimaldab identifitseerida mÀlupiiri failides kasutatava deskriptoriga, on lisatud vÔimalus luua piirkondi, kus koodi tÀitmine on keelatud (non-executable memfd) ja tulevikus ei ole vÔimalik seada tÀitmisÔigusi.
- Uus prctl-operatsioon PR_SET_MDWE, mis blokeerib mÀlule Ôiguste andmise katsed, mis lubavad samal ajal kirjutamist ja tÀitmist.
- Lisatud ja vaikimisi lubatud kaitse Spectre klassi rĂŒnnete vastu, mis on ellu viidud AMD Zen 4 protsessorites ettepanekuna, kasutades automaatset IBRS (Enhanced Indirect Branch Restricted Speculation) reĆŸiimi, mis vĂ”imaldab kohandatult lubada ja keelata spekulatiivset tĂ€itmist katkestuste, sĂŒsteemikutsungite ja konteksti vahetuste töötlemisel. Pakutud kaitse toob kaasa vĂ€iksemad kulud vĂ”rreldes Retpoline kaitsega.
- Pakkus kaasaegse tekstiga edasiviimist, et teostada eri sihtrĂŒhmadele kohandatud lĂ€henemiste vertikaalne jaotuse korraldamine.
- Parandatud haavatavust, mis vĂ”imaldas ĂŒletada Spectre v2 rĂŒnde kaitset mitme lĂ”ime tehnoloogia (SMT vĂ”i Hyper-Threading) rakendamisel ja mis oli pĂ”hjustatud STIBP (Single Thread Indirect Branch Predictors) mehhanismi keelamisest IBRS kaitsereĆŸiimi valimisel.
- ARM64 arhitektuuriga sĂŒsteemide jaoks on lisatud uus ehituse eesmĂ€rk âvirtconfigâ, mille valimisel aktiveeritakse vaid minimaalne komponente kernelist, mis on vajalik virtualiseerimissĂŒsteemides kĂ€ivitamiseks.
- m68k arhitektuuri jaoks on lisatud sĂŒsteemi kĂ”nede filtreerimise tugi seccomp mehhanismi abil.
- Lisatud tugi AMD Ryzen protsessoritesse sisseehitatud CRB TPM2 (Command Response Buffer) seadmete jaoks, mis pÔhinevad Microsoft Plutoni tehnoloogial.
- VĂ”rgusĂŒsteem
- Lisatud netlink-liides PLCA (Physical Layer Collision Avoidance) alamsĂŒsteemi seadistamiseks, mis on mÀÀratletud IEEE 802.3cg-2019 spetsifikatsioonis ja mida kasutatakse 802.3cg (10Base-T1S) Ethernet-vĂ”rkudes, mis on optimeeritud asjade interneti ja tööstussĂŒsteemide seadmete ĂŒhendamiseks. PLCA rakendamine vĂ”imaldab parandada jĂ”udlust jagatud keskkonna (shared media) Ethernet-vĂ”rkudes.
- Toetuse lĂ”petamine API-le âwireless extensionsâ WiFi 7 (802.11be) juhtimiseks, kuna see API ei kata kĂ”iki vajalikke seadistusi. Kui proovite kasutada API-d âwireless extensionsâ, mis jĂ€tkab emuleeritud kihina, saadetakse enamikule praegustest seadmetest nĂŒĂŒd hoiatus.
- Valmistatud pÔhjalik dokumentatsioon API netlinki kohta (kernel arendajatele ja kasutaja ruumi arendajatele). Tegemist on ynl-gen-c utiliidiga, mis genereerib C-koodi YAML-netlink protokolli spetsifikatsioonide pÔhjal.
- VĂ”rgusoketitesse on lisatud IP_LOCAL_PORT_RANGE valiku tugi, et lihtsustada vĂ€ljaminevate ĂŒhenduste seadistamist aadresside tĂ”lkijate kaudu ilma SNATita. Ăhe kasutamise korral IP-aadressid mitmel hostil IP_LOCAL_PORT_RANGE vĂ”imaldab igal hostil kasutada oma vĂ€ljaminevate vĂ”rgupordide vahemikku ning vĂ€rav tĂ”lgib pakette portide numbrite pĂ”hjal.
- MPTCP (MultiPath TCP) jaoks on rakendatud vĂ”imalus hallata segaflow, kus kasutatakse protokolle IPv4 ja IPv6. MPTCP on TCP protokolli laiend, mis korraldab TCP-ĂŒhenduse töötamise, pakkide edastamise samaaegselt mitme marsruudi kaudu erinevate vĂ”rguinterfeisside kaudu, mis on seotud erinevate IP-aadressidega.
- IPv4 jaoks on rakendatud BIG TCP laienduse kasutamise vĂ”imalus, mis vĂ”imaldab suurendada TCP-paki maksimaalset suurust 4 GB, et optimeerida kĂ”rgkiiruslike siseteede andmekeskustes. Taolise suuruse suurendamine 16-bitise pĂ€ise suuruse ala korral saavutatakse âjumboâ pakkide rakendamise kaudu, mille suurus IP-pĂ€ises on seadetud 0, samas kui tegelik suurus edastatakse eraldi 32-bitises vĂ€ljas eraldatud pĂ€ises.
- Lisatud on uus sysctl-parameeter default_rps_mask, mille kaudu on vÔimalik mÀÀrata vaikimisi RPS (Receive Packet Steering) konfiguratsioon, mis vastutab sissetuleva liikluse töötlemise jaotamise eest CPU tuumade vahel katkestuste töötlemise tasemel.
- Toetuse katkestamine klassipÔhiste jÀrjekordade töötlemise distsipliinide jaoks, mis piiravad liiklust CBQ (class-based queuing), ATM (ATM virtuaalsed ringid), dsmark (diferentseeritud teenuse mÀrgistus), tcindex (liikluse kontrolleti indeks) ja RSVP (ressursi reserveerimise protokoll). Need distsipliinid on pikka aega olnud mahajÀetud ja ei ole leidunud huvilisi nende hoolduse jÀtkamiseks.
- Varustus
- Eemaldatud on kÔik DRI1-pÔhised graafikajuhid: 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 vananenuks ja mida Mesa ei toeta alates 2012. aastast.
- Eemaldatud on vananenud raami juhid (fbdev) omap1, s3c2410, tmiofb ja w100fb.
- Lisatud on DRM-juhid Intel Meteor Lake (14. pĂ”lvkond) integreeritud CPU-desse, mis on mĂ”eldud VPU (Versatile Processing Unit) plokkide töö kiirendamiseks, mis on seotud arvutinĂ€gemise ja masinĂ”ppe operatsioonidega. Juht on rakendatud 'accel' alamsĂŒsteemiga, mis on suunatud arvutuskiirendusjuhtide toetamise tagamisele, mis vĂ”ivad pĂ€rit olla eraldi ASIC-idena vĂ”i IP-plokkidena SoC-s ja GPU-s.
- i915 (Intel) draiveris on suurendatud Intel Arc (DG2/Alchemist) diskreetsete graafikakaartide toetust, rakendatud on eeltoetust GPU Meteor Lake'ile, lisatud on Intel Xe HP 4tile GPU tugi.
- AMDGPU draiverisse on lisatud AdaptiveSync tehnoloogia tugi ja vĂ”imalus kasutada mitmeekraanilise Secure Display reĆŸiimi. Uuendatud on DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x ja DP 2.1 tuge.
- MSM draiverisse (Qualcomm Adreno GPU) on lisatud SM8350, SM8450, SM8550, SDM845 ja SC8280XP platvormide tugi.
- Nouveau draiveris on lÔpetatud vanade ioctl kutsungite tugi.
- Etnaviv draiverisse on lisatud eksperimentaalne tugi VeriSilicon NPU (VeriSilicon Neural Network Processor).
- On rakendatud pata_parport draiver IDE-seadmete jaoks, mis on ĂŒhendatud paralleelse pordi kaudu. Lisatud draiver on vĂ”imaldanud eemaldada vananenud PARIDE draiveri kernest ja moderniseerida ATA alamsĂŒsteemi. Uue draiveri piiranguks on printeri ja ketta samaaegse ĂŒhendamise vĂ”imatus paralleelse pordi kaudu.
- Ath12k draiver on lisatud Qualcommi kiipide jaoks Wi-Fi 7 toega traadita kaartidele. Samuti on lisatud toetus RealTek RTL8188EU kiibiga traadita kaartidele.
- 46 ARM64 arhitektuuril pÔhineva protsessoriga plaadi tugi on lisatud, 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, ning seadmed Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 ja SDM632, Rockchips RK3128 TV kast, RV1126 Vision, RK3588, RK3568, RK3566, RK3588 ja RK3328, TI K3 (AM642/AM654/AM68/AM69).
Samas on Ladina-Ameerika Vaba Tarkvara Fond loonud tĂ€ielikult vabade komponentidega Linuxi tuuma versiooni 6.3 â Linux-libre 6.3-gnu, mis on puhastatud tootja mÀÀratud piiratud komponendiga ringkonnad ja draiverid. Versioonis 6.3 on puhastatud uusi blobeid draiverites ath12k, aw88395 ja peb2466, samuti Qcom seadmete devicetree failides, mis pĂ”hinevad AArch64 arhitektuuril. Blobeid puhastava koodi on uuendatud amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110 draiverites ja sĂŒsteemides ning DVB-kaartide draiverites, mis toetavad tarkvaralise dekodeerimise ja eelcompileeritud BPF-faile. Purustatud valetamine on lĂ”petatud draiverites mga, r128, tm6000, cpia2 ja r8188eu, kuna need on kernest eemaldatud. I915 draiveris on blobeid parem puhastus.
Allikas: opennet.ru
