Linukso-kerna eldono 6.3

Post du monatoj da evoluo, Linus Torvalds publikigis la Linukso 6.3-kernon. Inter la plej rimarkindaj ŝanĝoj: purigado de malnoviĝintaj ARM-platformoj kaj grafikaj peliloj, daŭra integriĝo de Rust-lingva subteno, hwnoise-utilo, subteno por ruĝ-nigraj arbaj strukturoj en BPF, BIG TCP-reĝimo por IPv4, enkonstruita Dhrystone-komparnormo, kapablo malŝalti. ekzekuto en memfd, subteno por kreado de HID-ŝoforoj uzante BPF, ŝanĝoj estis faritaj al Btrfs por redukti blokgrupon fragmentiĝon.

La nova versio akceptis 15637 korektojn de 2055 programistoj; flikgrandeco - 76 MB (ŝanĝoj influis 14296 dosierojn, 1023183 linioj de kodo aldonis, 883103 linioj forigitaj). Por komparo, en la antaŭa versio, 16843 korektoj estis proponitaj de 2178 programistoj; diakilgrando - 62 MB. Ĉirkaŭ 39% de ĉiuj ŝanĝoj enkondukitaj en la 6.3-kerno rilatas al aparataj ŝoforoj, ĉirkaŭ 15% de la ŝanĝoj rilatas al ĝisdatigo de kodo specifa por aparatarkitekturoj, 10% rilatas al la interkonekta stako, 5% al ​​dosiersistemoj, kaj 3. % al internaj kernaj subsistemoj.

Ŝlosilaj novigoj en kerno 6.3:

  • Memoraj kaj sistemaj servoj
    • Grava purigado de kodo rilata al malnovaj kaj neuzataj ARM-tabuloj estis farita, kiu reduktis la grandecon de la kernaj fontoj je 150 mil linioj. Forigis pli ol 40 malnovajn ARM-platformojn.
    • Efektivigis la kapablon krei ŝoforojn por enigaparatoj kun la interfaco HID (Human Interface Device) efektivigita en la formo de BPF-programoj.
    • Daŭrigita portado de la branĉo Rust-for-Linukso de plia funkcieco rilata al uzado de Rust kiel dua lingvo por disvolvi ŝoforojn kaj kernmodulojn. Rust-subteno ne estas ebligita defaŭlte, kaj ne rezultigas Rust esti inkluzivita kiel deviga kerna konstrudependeco. La funkcieco ofertita en antaŭaj eldonoj estis vastigita kun subteno por la Arc-tipoj (efektivigo de montriloj kun referenckalkulo), ScopeGuard (purigas kiam ekstere de amplekso estas farita), kaj ForeignOwnable (provizas montrilo-movon inter C kaj Rust-kodo) . Forigita modulo 'prunti' el pako 'alloc' (tajpu 'Bovino' kaj trajto 'ToOwned'). Oni rimarkas, ke la stato de subteno por Rust en la kerno jam estas proksima al ekakcepto de la unuaj moduloj skribitaj en Rust en la kernon.
    • Uzant-reĝimo Linukso (funkcianta la kernon kiel uzantprocezo) sur x86-64-sistemoj subtenas kodon skribitan en Rust. Aldonita subteno por konstruado de Uzant-reĝimo Linukso uzante klangon kun ligtempaj optimumigoj ebligitaj (LTO).
    • Aldonita hwnoise ilo por spuri prokrastojn kaŭzitajn de aparatara konduto. Devojoj en la ekzekuttempo de operacioj (jitter) estas determinitaj kiam interrompa pretigo estas malŝaltita, superante unu mikrosekundon en 10 minutoj da kalkuloj.
    • Kernmodulo estis aldonita kun Dhrystone komparnorma efektivigo kiu povas esti uzita por taksi CPU-efikecon en konfiguracioj sen uzant-spacaj komponentoj (ekzemple, en la porta stadio por novaj SoCs kiuj efektivigas nur kernŝarĝadon).
    • Aldonita "cgroup.memory=nobpf" kerna komandlinia opcio por malŝalti memorkonsuman kontadon por BPF-programoj, kiuj povas esti utilaj por sistemoj kun izolitaj ujoj.
    • Por BPF-programoj, efektivigo de la ruĝ-nigra arba datumstrukturo estas proponita, kiu uzas kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) anstataŭ aldoni novan mapan tipon.
    • En la mekanismo de rekomenceblaj sekvencoj (rseq, rekomenceblaj sekvencoj), la ebleco de pasado de paralelaj ekzekutidentigiloj (memor-mapa samtempa ID) identigita kun la CPU-nombro estis aldonita al procezoj. Rseq disponigas rimedon por rapide atome ekzekuti operaciojn kiuj, se interrompite per alia fadeno, estas purigitaj kaj reprovitaj.
    • ARM-procesoroj subtenas instrukciojn SME 2 (Scalable Matrix Extension).
    • Por la s390x kaj RISC-V RV64-arkitekturoj, subteno por la "BPF trampolino-" mekanismo estas efektivigita, kio permesas minimumigi supran dum transdonado de vokoj inter la kerno kaj BPF-programoj.
    • Sur sistemoj kun procesoroj bazitaj sur la RISC-V-arkitekturo, la uzo de "ZBB" instrukciaĵo estis efektivigita por akceli kordoperaciojn.
    • Por sistemoj bazitaj sur la LoongArch-instrukcia aro-arkitekturo (uzita en la Loongson 3 5000 procesoroj kaj efektiviganta novan RISC ISA similan al MIPS kaj RISC-V), subteno por kerna adresspaco hazardigo (KASLR), translokado de la kerno en memoro (translokigo ), aparataro punktoj halto kaj kprobe mekanismo.
    • La mekanismo DAMOS (Data Access Monitoring-based Operation Schemes), kiu permesas vin liberigi memoron surbaze de la ofteco de memoraliro, subtenas filtrilojn por ekskludi iujn areojn de memoro de prilaborado en DAMOS.
    • La minimuma norma C-biblioteko Nolibc efektivigas subtenon por la s390-arkitekturo kaj la Arm Thumb1-instrukciaĵo (aldone al subteno por ARM, AArch64, i386, x86_64, RISC-V kaj MIPS).
    • Objtool estis optimumigita por akceli kernkonstruojn kaj redukti pintan memorkonsumon dum konstruoj (dum konstruado de la kerno en "allyesconfig" reĝimo, ekzistas neniuj problemoj kun devigita ĉesigo de procezoj sur sistemoj kun 32 GB da RAM).
    • Subteno por la muntado de la kerno de la Intel ICC-kompililo estas ĉesigita, kiu estis senlabora delonge kaj neniu esprimis deziron ripari ĝin.
  • Diska Subsistemo, I/O kaj Dosiersistemoj
    • tmpfs subtenas surĉevalan dosiersisteman uzantan ID-mapadon, kiu estas uzata por mapi la dosierojn de specifa uzanto sur surmuntita eksterlanda sekcio al alia uzanto sur la nuna sistemo.
    • En Btrfs, por redukti la fragmentiĝon de grupoj de blokoj, la ampleksoj estas dividitaj laŭ grandeco dum asignado de blokoj, t.e. ajna grupo de blokoj nun estas limigita al malgrandaj (ĝis 128KB), mezaj (ĝis 8MB) kaj grandaj etendaĵoj. La realigo de raid56 estis refactorigita. Restrukturita kodo por kontroli ĉeksumojn. Efikecoptimumigoj estis faritaj por akceli la sendan operacion ĝis 10 fojojn konservante utime por dosierujoj kaj efektivigante komandojn nur kiam necese. Trioble pli rapidaj fimap-operacioj pretersaltante retroligajn kontrolojn por komunaj datumoj (momentfotoj). Operacioj kun metadatenoj akceliĝas je 10% per optimumigado de la serĉo de ŝlosiloj en b-arbaj strukturoj.
    • Plibonigita efikeco de ext4 FS permesante al multoblaj procezoj samtempe plenumi rektajn I/O-operaciojn al antaŭ-asignitaj blokoj uzantaj komunajn inodserurojn anstataŭe de ekskluzivaj seruroj.
    • En f2fs, laboro estis farita por plibonigi la legeblecon de la kodo. Korektis gravajn problemojn rilate al atoma skribo kaj la nova amplekso kaŝmemoro.
    • Desegnita por nurlegeblaj sekcioj, EROFS (Plibonigita Nurlegebla Dosiersistemo) havas la kapablon ligi kunpremitajn dosiermalkunpremajn operaciojn al la CPU por redukti latentecon de aliro de datumoj.
    • La BFQ I/O-planilo aldonis subtenon por altnivelaj turniĝantaj diskiloj, kiel tiuj, kiuj uzas plurajn aparte kontrolitajn diskojn (Multi Aktuatoro).
    • Subteno por datuma ĉifrado uzanta la AES-SHA2-algoritmon estis aldonita al la efektivigo de la NFS-kliento kaj servilo.
    • La subsistemo FUSE (Filesystems In User Space) aldonis subtenon por la demanda etendomekanismo, kiu ebligas al vi meti pliajn informojn en la demandon. Surbaze de ĉi tiu funkcio, la aldono de grupidentigiloj al la FS-peto estas efektivigita, kiuj estas necesaj por konsideri alirrajtojn dum kreado de objektoj en la FS (create, mkdir, symbollink, mknod).
  • Virtualigo kaj Sekureco
    • La KVM-hiperviziero por x86-sistemoj aldonas subtenon por plilongigitaj Hyper-V-hipervokoj kaj provizas ilin per plusendado al prizorganto funkcianta en uzantspaca gastiga medio. La ŝanĝo ebligis efektivigi subtenon por nestita lanĉo de la hiperviziero Hyper-V.
    • KVM faciligas limigi gastsisteman aliron al eventoj de PMU (Performance Monitor Unit) rilataj al agado-mezurado.
    • La memfd-mekanismo, kiu ebligas al vi identigi memorareon per dosierpriskribilo pasigita inter procezoj, estis aldonita la eblon krei areojn en kiuj kodo ekzekuto estas malpermesita (ne-efektivebla memfd) kaj estas neeble agordi ekzekutrajtojn en la estonteco.
    • Nova PR_SET_MDWE prctl-operacio estis aldonita por bloki provojn inkluzivi memorajn alirrajtojn, kiuj permesas kaj skribi kaj ekzekuti samtempe.
    • Aldonita kaj ebligita defaŭlte protekto kontraŭ atakoj de la klaso Spectre, efektivigita surbaze de la aŭtomata reĝimo IBRS (Enhanced Indirect Branch Restricted Speculation) proponita en AMD Zen 4-procesoroj, kiu ebligas adapte ebligi kaj malebligi spekulan ekzekuton de instrukcioj dum interrompo. prilaborado, sistemvokoj, kaj kuntekstŝaltiloj. La proponita protekto rezultigas pli malaltan superkoston kompare kun Retpoline-protekto.
    • Traktas vundeblecon, kiu povus preteriri la atakan protekton de Spectre v2 uzante samtempan multfadenan teknologion (SMT aŭ Hyper-Threading) kaj kaŭzitan de malfunkciigado de la mekanismo de STIBP (Single Thread Indirect Branch Predictors) kiam elektante IBRS-protektan reĝimon.
    • Por ARM64-bazitaj sistemoj, nova "virtconfig" konstrucelo estis aldonita, kiu, kiam elektita, aktivigas nur la minimuman aron de kernkomponentoj necesaj por ekfunkciigi en virtualigsistemoj.
    • Aldonita subteno por filtrado de sistemvokoj uzante la seccomp-mekanismon por la arkitekturo m68k.
    • Aldonita subteno por enkonstruitaj CRB TPM2 (Command Response Buffer) aparatoj de procesoroj AMD Ryzen bazitaj sur Microsoft Pluton-teknologio.
  • Reta subsistemo
    • Netlink-interfaco estis aldonita por agordi la subtavolon PLCA (Physical Layer Collision Avoidance), difinita en la specifo IEEE 802.3cg-2019 kaj uzata en 802.3cg (10Base-T1S) Ethernet-retoj optimumigitaj por konekti IoT-aparatojn kaj industriajn sistemojn. La uzo de PLCA plibonigas efikecon sur komunaj amaskomunikilaj retoj Ethernet.
    • Subteno por la "sendrataj etendaĵoj" API por administri WiFi 7 (802.11be) sendratajn interfacojn estis nuligita, ĉar ĉi tiu API ne kovras ĉiujn necesajn agordojn. Kiam vi provas uzi la API de "sendrataj etendaĵoj", kiu daŭre estas subtenata kiel kopiita tavolo, averto nun aperos por la plej multaj nunaj aparatoj.
    • Detala dokumentaro pri la netlink API estis preparita (por kernaj programistoj kaj por programistoj de uzantspacaj aplikaĵoj). La utileco ynl-gen-c estis efektivigita por generi C-kodon bazitan sur la YAML-specifoj de la Netlink-protokolo.
    • Subteno por la opcio IP_LOCAL_PORT_RANGE estis aldonita al retaj ingoj por simpligi la agordon de elirantaj konektoj per adrestradukiloj sen uzi SNAT. Kiam vi uzas la saman IP-adreson sur pluraj gastigantoj, IP_LOCAL_PORT_RANGE permesas al ĉiu gastiganto uzi sian propran gamon da elirantaj retaj havenoj, kaj sur la enirejo plusendi pakaĵetojn bazitajn sur havenaj nombroj.
    • Por MPTCP (MultiPath TCP), la kapablo pritrakti miksitajn fluojn kiuj uzas la IPv4 kaj IPv6 protokolojn estas efektivigita. MPTCP estas etendaĵo de la TCP-protokolo por organizi la operacion de TCP-ligo kun livero de pakaĵoj samtempe laŭ pluraj itineroj tra malsamaj retaj interfacoj ligitaj al malsamaj IP-adresoj.
    • Por IPv4, la ebleco uzi la BIG TCP-etendon estas efektivigita, kiu permesas pliigi la maksimuman TCP-pakaĵgrandecon ĝis 4 GB por optimumigi la funkciadon de altrapidaj internaj retoj de datumcentroj. Tiu pliiĝo en pakaĵetgrandeco kun 16-bita kapliniokampo estas atingita efektivigante "jumbo-" pakaĵetojn kiuj havas la IP-kapograndecon metita al 0 kaj la realan grandecon elsendita en aparta 32-bita kampo en aparta alkroĉita kaplinio.
    • Nova sysctl-parametro default_rps_mask estis aldonita, per kiu vi povas agordi la defaŭltan agordon de RPS (Receive Packet Steering), kiu respondecas pri distribuado de la prilaborado de envenanta trafiko tra CPU-kernoj ĉe la interrompa prizorganto.
    • Nuligita subteno por vicigado de disciplinoj por limigi trafikon de CBQ (klas-bazita vicigo), ATM (ATM-virtualaj cirkvitoj), dsmark (diferencigita servosigno), tcindex (trafik-kontrola indekso), kaj RSVP (resursa rezerva protokolo). Ĉi tiuj disciplinoj estas forlasitaj dum longa tempo kaj neniu volis daŭrigi sian subtenon.
  • Ekipaĵo
    • Forigis ĉiujn grafikajn ŝoforojn bazitajn en DRI1: i810 (malnovaj Intel 8xx integraj grafikaj kartoj), mga (Matrox GPU), r128 (ATI Rage 128 GPU inkluzive de Rage Fury, XPERT 99 kaj XPERT 128 kartoj), sovaĝa (S3 Savage GPU), sis ( Crusty SiS GPU), tdfx (3dfx Voodoo) kaj via (VIA IGP), kiuj estis malrekomenditaj en 2016 kaj ne estis subtenataj en Mesa ekde 2012.
    • Forigitaj malnoviĝintaj framebuffer (fbdev) ŝoforoj omap1, s3c2410, tmiofb kaj w100fb.
    • DRM-ŝoforo estis aldonita por la VPU (Versatile Processing Unit) integrita en la Intel Meteor Lake (14-a generacio) CPU-oj, dizajnitaj por akceli komputilan vizion kaj maŝinlernajn operaciojn. La ŝoforo estas efektivigita uzante la "accel" subsistemon, celitan disponigi subtenon por komputikakceliloj, kiuj povas esti liveritaj kaj en la formo de apartaj ASICoj kaj kiel IP-blokoj ene de la SoC kaj GPU.
    • La i915 (Intel) ŝoforo vastigas subtenon por diskretaj grafikaj kartoj Intel Arc (DG2/Alchemist), enkondukas preparan subtenon por GPU-oj de Meteor Lake kaj inkluzivas subtenon por GPU-oj Intel Xe HP 4tile.
    • La amdgpu-ŝoforo aldonas subtenon por AdaptiveSync-teknologio kaj la kapablon uzi Secure Display kun pluraj ekranoj. Ĝisdatigita subteno por DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x kaj DP 2.1.
    • Aldonita subteno por platformoj SM8350, SM8450 SM8550, SDM845 kaj SC8280XP al la msm-ŝoforo (GPU Qualcomm Adreno).
    • La Nouveau-ŝoforo ĉesigis subtenon por malnovaj ioctl-vokoj.
    • Eksperimenta subteno por NPU VerSilicon (VeriSilicon Neural Network Processor) estis aldonita al la etnaviv-ŝoforo.
    • La pata_parport pelilo por IDE-diskoj konektitaj per paralela haveno estis efektivigita. La aldonita ŝoforo ebligis forigi la malnovan PARIDE-ŝoforon el la kerno kaj ĝisdatigi la ATA-subsistemon. Limigo de la nova ŝoforo estas la malkapablo samtempe konekti presilon kaj diskon tra paralela haveno.
    • Aldonita ath12k-ŝoforo por sendrataj kartoj bazitaj sur Qualcomm-blatoj kun subteno de Wi-Fi 7. Aldonita subteno por sendrataj kartoj bazitaj sur RealTek RTL8188EU-blatoj.
    • Aldonita subteno por 46 tabuloj bazitaj sur ARM64-arkitekturo, inkluzive de Samsung Galaxy-langeto A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD, kaj ankaŭ aparatoj surbaze de SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 kaj SDM632, Rockchips RK3128 TV-skatolo, RV1126 Vision, RK3588, RK3568, RK3566, RK3588, RK3328, RK3, RK642, RK654, 68/AM69/ AMXNUMX).

Samtempe, Latin American Free Software Foundation formis varianton de la tute libera kerno 6.3 - Linux-libre 6.3-gnu, malplenigita de firmware kaj ŝoforaj elementoj enhavantaj neliberajn komponantojn aŭ kodsekciojn, kies amplekso estas limigita de la fabrikanto. En eldono 6.3, blobs estis purigitaj en la novaj ath12k, aw88395, kaj peb2466-ŝoforoj, same kiel en la novaj devicetree dosieroj por AArch64-bazitaj qcom-aparatoj. Ĝisdatigita blob-purigadkodo en amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110-ŝoforoj kaj subsistemoj, same kiel en ŝoforoj por DVB-kartoj kun programara malkodado kaj en antaŭkompilitaj BPF-dosieroj. Ĉesis purigi ŝoforojn mga, r128, tm6000, cpia2 kaj r8188eu ĉar ili estis forigitaj de la kerno. Plibonigita i915 ŝoforo blob purigado.

fonto: opennet.ru

Aldoni komenton