UtgÄvan av Linux-kÀrnan 6.3

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds releasen av Linux-kÀrnan 6.3. Bland de mest anmÀrkningsvÀrda förÀndringarna finns: rengöring av förÄldrade ARM-plattformar och grafiska drivrutiner, fortsatt integration av stöd för programmet Rust, verktyget hwnoise, stöd för trÀstruktur av röd-svart i BPF, BIG TCP-lÀge för IPv4, en inbyggd prestandatest Dhrystone, möjlighet att förbjuda exekvering i memfd, stöd för att skapa HID-drivrutiner med BPF, samt förÀndringar i Btrfs för att minska fragmenteringen av blockgrupper.

I den nya versionen har 15637 korrigeringar godkÀnts av 2055 utvecklare; patchens storlek Àr 76 MB (Àndringarna berör 14296 filer, 1023183 rader kod har lagts till, 883103 rader har tagits bort). För jÀmförelse föreslogs i den förra versionen 16843 korrigeringar av 2178 utvecklare; patchens storlek var 62 MB. UngefÀr 39 % av alla förÀndringar i kÀrnan 6.3 Àr kopplade till enhetsdrivrutiner, cirka 15 % av förÀndringarna rör uppdatering av kod som Àr specifik för hÄrdvaruarkitekturer, 10 % Àr relaterade till nÀtverksstacken, 5 % till filsystem och 3 % till interna kÀrnsystem.

De viktigaste nyheterna i kÀrnan 6.3:

  • Minne och systemtjĂ€nster
    • En betydande stĂ€dning av koden relaterad till gamla och oanvĂ€nda ARM-plattformar har genomförts, vilket har minskat storleken pĂ„ kĂ€rnans kĂ€llkod med 150 000 rader. Över 40 gamla ARM-plattformar har tagits bort.
    • Det har skapats en möjlighet att utveckla drivrutiner för enheter med HID (Human Interface Device) grĂ€nssnitt, implementerade som BPF-program.
    • Överföringen frĂ„n grenen Rust-for-Linux av ytterligare funktionalitet relaterad till anvĂ€ndningen av Rust som det andra sprĂ„ket för utveckling av drivrutiner och kĂ€rnmoduler har fortsatt. Stödet för Rust Ă€r inte aktivt som standard och leder inte till att Rust inkluderas bland de obligatoriska byggberoenden för kĂ€rnan. Funktionaliteten som föreslogs i tidigare utslĂ€pp har utvidgats med stöd för typer som Arc (implementering av referensrĂ€knade pekare), ScopeGuard (stĂ€dar vid uttrĂ€de frĂ„n omfattningen) och ForeignOwnable (möjliggör flyttning av pekare mellan C och Rust-kod). Modulen 'borrow' (typ 'Cow' och typ 'ToOwned') har tagits bort frĂ„n paketet 'alloc'. Det noteras att stödet för Rust i kĂ€rnan redan Ă€r nĂ€ra att börja acceptera de första modulerna skrivna i Rust.
    • I User-mode Linux (att köra kĂ€rnan som en anvĂ€ndarprocess) pĂ„ x86-64-system har stödet för kod skriven i Rust implementerats. Stöd för att bygga User-mode Linux med clang har lagts till med aktiverad optimering under lĂ€nkningen (LTO).
    • Verktyget hwnoise har lagts till för att spĂ„ra fördröjningar orsakade av mjukvarans egenskaper. Tidsavvikelser (jitter) för operationernas utförande bestĂ€ms nĂ€r avbrottshanteringen Ă€r avstĂ€ngd, vilket överskrider en mikrosekund under 10 minuter av berĂ€kningar.
    • En kĂ€rnmodul med implementering av prestandatestet Dhrystone har lagts till, vilket kan anvĂ€ndas för att bedöma CPU-prestanda i konfigurationer utan anvĂ€ndarutrymmeskomponenter (till exempel under porteringsfasen för nya SoC dĂ€r endast kĂ€rnladdningen implementeras).
    • En kĂ€rnkommandoradsparameter "cgroup.memory=nobpf" har lagts till, som stĂ€nger av övervakningen av minnesanvĂ€ndning för BPF-program, vilket kan vara anvĂ€ndbart för system med isolerade containrar.
    • För BPF-program föreslĂ„s en implementering av datakonstruktionen red-black tree, dĂ€r kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) anvĂ€nds istĂ€llet för att införa en ny typ av mappning.
    • I mekanismen för omstartbara sekvenser (rseq, restartable sequences) har möjlighet till överföring av processidentiteter för parallell exekvering (memory-map concurrency ID) lagts till, vilket identifieras med CPU-numret. Rseq tillhandahĂ„ller verktyg för snabb atomĂ€r exekvering av operationer, som vid avbrott frĂ„n en annan trĂ„d rensas och ett nytt försök görs.
    • Stöd för SME 2-instruktioner (Scalable Matrix Extension) har implementerats för ARM-processorer.
    • För s390x- och RISC-V RV64-arkitekturer har stödet för mekanismen "BPF trampoline" implementerats, vilket minimerar overhead vid överföring av anrop mellan kĂ€rnan och BPF-program.
    • För system med RISC-V-processorarkitektur har anvĂ€ndningen av "ZBB"-instruktioner implementerats för att pĂ„skynda strĂ€ngoperationer.
    • För system baserade pĂ„ kommandosetsarkitekturen LoongArch (anvĂ€nds i Loongson 3 5000-processorer och implementerar en ny RISC ISA som liknar MIPS och RISC-V) har stöd för kĂ€rnans addressrandomisering (KASLR), förĂ€ndring av kĂ€rnplacering i minnet (relocation), hĂ„rdvaruavbrott och kprobe-mekanism implementerats.
    • I mekanismen DAMOS (Data Access Monitoring-based Operation Schemes), som möjliggör frigöring av minne baserat pĂ„ hur ofta minnet anvĂ€nds, har stöd för filter implementerats för att utesluta vissa omrĂ„den av minnet frĂ„n bearbetning i DAMOS.
    • I det minimala standard C-biblioteket Nolibc har stöd för s390-arkitekturen och Arm Thumb1-instruktionsuppsĂ€ttningen implementerats (förutom stöd för ARM, AArch64, i386, x86_64, RISC-V och MIPS).
    • Objtool har optimerats för att öka hastigheten vid kĂ€rnbygget och minska den toppiga minnesanvĂ€ndningen vid bygget (nĂ€r kĂ€rnan byggs med lĂ€get 'allyesconfig' uppstĂ„r nu inga problem med att processer tvingas avslutas pĂ„ system med 32 GB RAM).
    • Stödet för byggnation av kĂ€rnan med Intels ICC-kompilator har upphört, vilket har varit inaktivt under en lĂ€ngre tid och ingen har visat intresse för att Ă„tgĂ€rda det.
  • Disksubsystem, in- och utmatning och filsystem
    • I tmpfs har stöd för mappning av anvĂ€ndar-ID:n för monterade filsystem implementerats, vilket tillĂ€mpas för att matcha filer frĂ„n en viss anvĂ€ndare pĂ„ ett monterat frĂ€mmande partition med en annan anvĂ€ndare i det aktuella systemet.
    • I Btrfs har gruppering av block minskats genom att dela upp extenter efter storlek vid blockallokering, dvs. varje blockgrupp begrĂ€nsas nu till smĂ„ (upp till 128KB), medelstora (upp till 8 MB) och stora extenter. Omstrukturering av implementationen av raid56 har genomförts. Koden för kontroll av kontrollsummor har omarbetats. Prestandaoptimeringar har genomförts, vilket möjliggjort en upp till 10 gĂ„nger snabbare 'send'-operation genom att cacha utdata för kataloger och utföra kommandon endast vid behov. Utförandet av 'fiemap'-operationer har tredubblats tack vare att kontroller av bakĂ„treferenser för delade data (snaps) har utelĂ€mnats. Metadataoperationer har ökat i hastighet med 10% genom optimering av nyckelsökningar i b-tree-strukturer.
    • Prestandan för filsystemet ext4 har ökat tack vare möjligheten till samtidig utförande av direkta in-/utdataoperationer av flera processer i förutbestĂ€mda block, genom att anvĂ€nda delade inode-lĂ„s istĂ€llet för exklusiva lĂ„s.
    • I f2fs har arbete genomförts för att förbĂ€ttra kodens lĂ€sbarhet. Viktiga problem relaterade till atomĂ€r skrivning och den nya extent-cachen har Ă„tgĂ€rdats.
    • I filsystemet EROFS (Enhanced Read-Only File System), avsett för anvĂ€ndning i partitioner som Ă€r tillgĂ€ngliga i lĂ€slĂ€ge, implementerades möjligheten att binda CPU:n till avkomprimeringsoperationer av komprimerat innehĂ„ll i filer för att minska latensen vid datatillgĂ„ng.
    • SchemalĂ€ggaren BFQ för in- och utdata har fĂ„tt stöd för avancerade lagringsenheter pĂ„ roterande skivor, sĂ„som de som anvĂ€nder flera separat styrda huvuddrivningar (Multi Actuator).
    • Stödet för NFS klientimplementeringen och servern har lagts till för kryptering av data med hjĂ€lp av AES-SHA2-algoritmen.
    • FUSE (Filesystems In User Space) subsystems har fĂ„tt stöd för en begĂ€ransextensionsmekanism som gör det möjligt att inkludera ytterligare information i begĂ€ran. Denna funktionalitet har möjliggjort tillĂ€gg av gruppidentifierare till FS-begĂ€ran, vilket Ă€r nödvĂ€ndigt för att ta hĂ€nsyn till Ă„tkomstrĂ€ttigheter vid skapandet av objekt i FS (create, mkdir, symlink, mknod).
  • Virtualisering och sĂ€kerhet
    • I KVM-hypervisorn för x86-system har stöd för avancerade hypercalls av Hyper-V lagts till och dirigeras till en hanterare som körs i vĂ€rdmiljö inom anvĂ€ndarrummet. Ändringen har möjliggjort stöd för inbĂ€ddad körning av Hyper-V-hypervisorn.
    • I KVM har begrĂ€nsningen av gĂ€stsystemets Ă„tkomst till PMU (Performance Monitor Unit)-hĂ€ndelser, kopplade till prestandamĂ€tning, förenklats.
    • I memfd-mekanismen, som gör det möjligt att identifiera minnesomrĂ„den via en filbeskrivare som överförs mellan processer, har möjligheten att skapa omrĂ„den dĂ€r kodexekvering Ă€r förbjuden (non-executable memfd) och dĂ€r exekveringsrĂ€ttigheter Ă€r omöjliga att stĂ€lla in i framtiden, lagts till.
    • En ny prctl-operation PR_SET_MDWE har lagts till som blockerar försök att aktivera minnesbehörigheter som samtidigt tillĂ„ter skrivning och exekvering.
    • Skydd mot Spectre-liknande attacker har lagts till och aktiverats som standard, implementerat baserat pĂ„ den automatiska IBRS-lĂ€get (Enhanced Indirect Branch Restricted Speculation), föreslaget i AMD:s Zen 4-processorer, vilket möjliggör adaptiv tillĂ„telse och avslag av spekulativ exekvering av instruktioner under hantering av avbrott, systemanrop och kontextvĂ€xlingar. Det föreslagna skyddet medför lĂ€gre overhead jĂ€mfört med Retpoline-skydd.
    • SĂ€kerhetsbristen som tillĂ„ter att skyddet mot Spectre v2-attacker kringgĂ„s vid anvĂ€ndning av samtidiga flertrĂ„dad teknik (SMT eller Hyper-Threading) har Ă„tgĂ€rdats, vilket beror pĂ„ avstĂ€ngningen av mekanismen STIBP (Single Thread Indirect Branch Predictors) nĂ€r skyddslĂ€get IBRS vĂ€ljs.
    • För system baserade pĂ„ ARM64-arkitekturen har ett nytt byggmĂ„l 'virtconfig' lagts till, vilket aktiverar endast den minimi uppsĂ€ttning kĂ€rnkomponenter som krĂ€vs för att starta i virtualiseringssystem.
    • Stöd för filtrering av systemanrop med hjĂ€lp av seccomp-mekanismen har lagts till för m68k-arkitekturen.
    • Stöd för inbyggda CRB TPM2-enheter (Command Response Buffer) i AMD Ryzen-processorer, baserade pĂ„ Microsoft Pluton-teknologi, har lagts till.
  • NĂ€tverkssystemet
    • Ett netlink-grĂ€nssnitt för konfiguration av undernivĂ„n för kollisionsförebyggande PLCA (Physical Layer Collision Avoidance) har lagts till, som definieras i specifikationen IEEE 802.3cg-2019 och anvĂ€nds i Ethernet-nĂ€t 802.3cg (10Base-T1S), optimerade för anslutning av IoT-enheter och industriella system. TillĂ€mpningen av PLCA gör det möjligt att öka prestandan i Ethernet-nĂ€t med delad media.
    • Stödet för API:et 'wireless extensions' för hantering av WiFi 7 (802.11be) trĂ„dlösa grĂ€nssnitt har upphört, eftersom detta API inte tĂ€cker alla nödvĂ€ndiga instĂ€llningar. Vid försök att anvĂ€nda API:et 'wireless extensions', som fortfarande stöds som ett emulerat lager, kommer en varning nu att visas för de flesta aktuella enheter.
    • Detaljerad dokumentation för netlink-API:et har förberetts (för kĂ€rnutvecklare och utvecklare av anvĂ€ndarapplikationer). Ett verktyg, ynl-gen-c, har implementerats för att generera C-kod baserat pĂ„ YAML-specifikationer för netlink-protokollet.
    • I nĂ€tverksockets har stöd för IP_LOCAL_PORT_RANGE-alternativet lagts till för att förenkla konfigurationen av utgĂ„ende anslutningar via adressöversĂ€ttare utan att anvĂ€nda SNAT. Vid anvĂ€ndning av flera IP-adresser IP_LOCAL_PORT_RANGE ger möjlighet att anvĂ€nda sin egen uppsĂ€ttning av utgĂ„ende nĂ€tverksportar pĂ„ varje vĂ€rd, medan paket kan omdirigeras pĂ„ gatewayen baserat pĂ„ portnummer.
    • För MPTCP (MultiPath TCP) har möjligheten att hantera blandade strömmar, dĂ€r protokollen IPv4 och IPv6 anvĂ€nds, införts. MPTCP Ă€r en utvidgning av TCP-protokollet för att organisera arbetet med TCP-anslutningar dĂ€r paket levereras samtidigt över flera vĂ€gar genom olika nĂ€tverksgrĂ€nssnitt kopplade till olika IP-adresser.
    • För IPv4 har möjligheten att anvĂ€nda BIG TCP-utvidgningen införts, vilket gör det möjligt att öka den maximala storleken pĂ„ TCP-paket till 4 GB för att optimera arbetet i höghastighets interna nĂ€tverk i datacenter. SĂ„dan ökning av paketstorleken vid 16-bitars storlek i rubriken uppnĂ„s genom implementering av "jumbo"-paket, vars storlek i IP-rubriken sĂ€tts till 0, medan den faktiska storleken överförs i ett separat 32-bitarsfĂ€lt i en separat bifogad rubrik.
    • En ny sysctl-parameter default_rps_mask har lagts till, genom vilken den anvĂ€nda standardkonfigurationen för RPS (Receive Packet Steering) kan anges, ansvarig för att fördela behandlingen av inkommande trafik över CPU-kĂ€rnor pĂ„ avbrottshanterarnivĂ„.
    • Stödet för köhanteringsdiscipliner för trafikbegrĂ€nsning, som CBQ (class-based queuing), ATM (ATM virtual circuits), dsmark (differentiated service marker), tcindex (traffic-control index) och RSVP (resource reservation protocol), har upphört. Dessa discipliner har lĂ€nge varit övergivna och det har inte funnits nĂ„gra intressenter att fortsĂ€tta underhĂ„llet.
  • Utrustning
    • Alla grafiska drivrutiner baserade pĂ„ DRI1 har tagits bort: i810 (gamla integrerade grafikkort Intel 8xx), mga (Matrox GPU), r128 (ATI Rage 128 GPU, inklusive kort som Rage Fury, XPERT 99 och XPERT 128), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) och via (VIA IGP), som aviserades som förĂ„ldrade 2016 och som inte har stödts i Mesa sedan 2012.
    • FörĂ„ldrade framebuffer-drivrutiner (fbdev) omap1, s3c2410, tmiofb och w100fb har tagits bort.
    • DRM-drivrutinen för integrerade VPU-enheter (Versatile Processing Unit) i Intel Meteor Lake (14:e generationen) har lagts till, avsedd för att pĂ„skynda operationer relaterade till datorseende och maskininlĂ€rning. Drivrutinen har implementerats med hjĂ€lp av "accel"-systemet, som Ă€r inriktat pĂ„ att sĂ€kerstĂ€lla stöd för accelererade berĂ€kningar som kan tillhandahĂ„llas antingen som separata ASIC eller som IP-block inuti SoC och GPU.
    • Stödet för diskreta grafikkort Intel Arc (DG2/Alchemist) har utökats i drivrutinen i915 (Intel), preliminĂ€rt stöd för GPU Meteor Lake har implementerats, och stöd för GPU Intel Xe HP 4tile har lagts till.
    • I drivrutinen amdgpu har stöd för AdaptiveSync-teknologi lagts till samt möjligheten att anvĂ€nda flera skĂ€rmar i lĂ€get för skydd mot avlyssning av visad information (Secure Display). Stödet för DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x och DP 2.1 har ocksĂ„ uppdaterats.
    • I drivrutinen msm (GPU Qualcomm Adreno) har stöd för plattformarna SM8350, SM8450, SM8550, SDM845 och SC8280XP lagts till.
    • I drivrutinen Nouveau har stöd för gamla ioctl-anrop avbrutits.
    • I drivrutinen etnaviv har experimentellt stöd för NPU VerSilicon (VeriSilicon Neural Network Processor) lagts till.
    • En drivrutin pata_parport för IDE-enheter anslutna via parallellport har implementerats. Den tillagda drivrutinen har gjort det möjligt att ta bort den gamla drivrutinen PARIDE frĂ„n kĂ€rnan och modernisera ATA-underkonstruktionen. En begrĂ€nsning för den nya drivrutinen Ă€r att det inte gĂ„r att ansluta bĂ„de en skrivare och en disk samtidigt via parallellport.
    • Drivrutinen ath12k för trĂ„dlösa kort med Qualcomm-chips som stödjer Wi-Fi 7 har lagts till. Stöd har Ă€ven tillförts för trĂ„dlösa kort med RealTek RTL8188EU-chips.
    • Stöd för 46 plattformer med ARM64-baserade processorer har lagts till, bland dessa 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 samt enheter baserade pĂ„ SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 och SDM632, Rockchips RK3128 TV-box, RV1126 Vision, RK3588, RK3568, RK3566, RK3588 och RK3328, TI K3 (AM642/AM654/AM68/AM69).

Samtidigt har den latinamerikanska Stiftelsen för fri programvara sammanstĂ€llt en helt fri kĂ€rnversion 6.3 – Linux-libre 6.3-gnu, rensad frĂ„n element i firmware och drivrutiner som innehĂ„ller icke-fria komponenter eller kodavsnitt vars anvĂ€ndningsomrĂ„de begrĂ€nsas av tillverkaren. I version 6.3 har rensningen av blobbar i de nya drivrutinerna ath12k, aw88395 och peb2466 genomförts, liksom i de nya devicetree-filerna för qcom-enheter baserade pĂ„ AArch64-arkitekturen. Koden för blobbrensning i drivrutiner och underkonstruktioner som amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110 samt drivrutiner för DVB-kort med mjukvaruavkodning och i förkompilerade BPF-filer har uppdaterats. Rensningen av drivrutinerna mga, r128, tm6000, cpia2 och r8188eu har avbrutits eftersom de har tagits bort frĂ„n kĂ€rnan. Rensningen för blobbar i drivrutinen i915 har förbĂ€ttrats.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster