Versione di u kernel Linux 6.3

Dopu dui mesi di sviluppu, Linus Torvalds hà presentatu a liberazione di u kernel Linux 6.3. Trà i cambiamenti più notevuli: pulizia di piattaforme ARM legacy è driver di grafica, integrazione cuntinuata di supportu di lingua Rust, utilità hwnoise, supportu per strutture d'arburu rossu-neru in BPF, modalità BIG TCP per IPv4, benchmark Dhrystone integratu, capacità di disattivà. esecuzione in memfd, supportu a creazione di driver HID cù BPF, cambiamenti sò stati fatti à Btrfs per riduce a frammentazione di i gruppi di blocchi.

A nova versione include 15637 correzioni da 2055 sviluppatori; patch size - 76 MB (cambiamenti affettati 14296 file, 1023183 linee di codice sò state aghjunte, 883103 linee sò state eliminate). In paragone, a versione precedente offre 16843 correzioni da 2178 sviluppatori; a dimensione di u patch hè 62 MB. Circa 39% di tutti i cambiamenti introdotti in u kernel 6.3 sò ligati à i drivers di u dispositivu, circa 15% di i cambiamenti sò ligati à l'aghjurnamentu di u codice specificu à l'architetture hardware, 10% sò ligati à a pila di rete, 5% sò ligati à i sistemi di schedari, è 3% sò ligati à i sottosistemi di u kernel internu.

Innuvazioni principali in u kernel 6.3:

  • Memoria è servizii di sistema
    • Una purificazione significativa di u codice assuciatu à i pannelli ARM antichi è micca utilizati hè stata realizata, chì hà permessu di riduce a dimensione di u codice fonte di u kernel da 150 mila linee. Più di 40 vechji piattaforme ARM sò state eliminate.
    • A capacità di creà drivers per i dispositi di input cù una interfaccia HID (Human Interface Device), implementata in forma di prugrammi BPF, hè stata implementata.
    • U trasferimentu da a filiera Rust-for-Linux di funziunalità supplementari ligata à l'usu di a lingua Rust cum'è una seconda lingua per u sviluppu di drivers è moduli di kernel hà cuntinuatu. U supportu di Rust ùn hè micca attivatu per difettu, è ùn hà micca risultatu in Rust esse inclusu cum'è una dependenza necessaria di creazione di u kernel. A funziunalità offruta in versioni precedenti hè stata allargata per supportà i tipi Arc (implementazione di puntatori cù un conte di riferimentu), ScopeGuard (pulizia quandu esce da u scopu) è ForeignOwnable (furnisce u muvimentu di puntatori trà u codice C è Rust). U modulu "prestu" (tipu "Cow" è trait "ToOwned") hè statu eliminatu da u pacchettu "alloc". Hè nutatu chì u statu di supportu di Rust in u kernel hè digià vicinu à cumincià à accettà i primi moduli scritti in Rust in u kernel.
    • Linux in modalità d'utilizatore (eseguisce u kernel cum'è un prucessu d'utilizatore) in sistemi x86-64 implementa u supportu per u codice scrittu in a lingua Rust. Aghjunghje un supportu per a custruzzione di Linux in modalità User usendu clang cù ottimisazioni di u tempu di ligame (LTO) attivate.
    • Aggiunta utilità hwnoise per seguità i ritardi causati da u hardware. E deviazioni in u tempu di esecuzione di l'operazioni (jitter) sò determinate quandu u processu di interruzzione hè disattivatu, sopra un microsecondu per 10 minuti di calculi.
    • Aggiuntu un modulu di kernel chì implementa u benchmark Dhrystone, chì pò esse usatu per evaluà u rendiment di CPU in cunfigurazioni senza cumpunenti di u spaziu di l'utilizatori (per esempiu, in a fase di porting per novi SoC chì implementanu solu a carica di kernel).
    • Added kernel command line parameter "cgroup.memory = nobpf", chì disattiva a cuntabilità di cunsumu di memoria per i prugrammi BPF, chì ponu esse utili per sistemi cù cuntenituri isolati.
    • Per i prugrammi BPF, hè pruposta una implementazione di a struttura di dati di l'arburu rossu-neru, chì usa kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) invece di aghjunghje un novu tipu di mapping.
    • U miccanisimu di sequenze restartable (rseq, restartable sequences) hà aghjustatu a capacità di trasfiriri identificatori di esecuzione parallela (ID di cuncurrenza di memoria-mappa) à i prucessi, identificati cù u numeru di CPU. Rseq furnisce un mezzu per eseguisce rapidamente operazioni atomicamente, chì si sò interrotti da un altru filu sò puliti è pruvatu di novu.
    • I processori ARM supportanu l'istruzzioni SME 2 (Scalable Matrix Extension).
    • Per l'architetture s390x è RISC-V RV64, u supportu per u mecanismu "BPF trampoline" hè statu implementatu, chì permette di minimizzà l'overhead quandu si trasferisce e chjama trà u kernel è i prugrammi BPF.
    • In i sistemi cù processori basati nantu à l'architettura RISC-V, l'usu di l'istruzzioni "ZBB" hè implementatu per accelerà l'operazioni di stringa.
    • Per i sistemi basati nantu à l'architettura di l'istruzzioni LoongArch (aduprata in i processori Loongson 3 5000 è implementendu u novu RISC ISA, simili à MIPS è RISC-V), supportu per a randomizazione di l'indirizzu di u kernel (KASLR), cambiamenti in u piazzamentu di a memoria di u kernel (rilocazione). ), i punti di hardware hè implementatu u mecanismu di stop è kprobe.
    • U mecanismu DAMOS (Data Access Monitoring-based Operation Schemes), chì permette di liberà a memoria basatu nantu à a freccia di l'accessu di memoria, sustene i filtri per escludiri certi spazii di memoria da u processu in DAMOS.
    • A libreria C standard minima Nolibc furnisce supportu per l'architettura s390 è u set di istruzioni Arm Thumb1 (in più di supportu per ARM, AArch64, i386, x86_64, RISC-V è MIPS).
    • Objtool hè stata ottimizzata per accelerà l'assemblea di u kernel è riduce u cunsumu di memoria di punta durante l'assemblea (quandu si custruisce u kernel in u modu "allyesconfig", ùn ci hè micca avà prublemi cù a terminazione forzata di prucessi in sistemi cù 32 GB di RAM).
    • U supportu per l'assemblea di u kernel da u compilatore Intel ICC hè statu discontinuatu, chì hè stata inoperativa per un bellu pezzu è nimu hà spressu u desideriu di riparà.
  • Sottosistema di discu, I / O è sistemi di fugliale
    • tmpfs implementa u supportu per a mappatura di l'ID di l'utilizatori di i sistemi di fugliali muntati, utilizati per abbinà i fugliali di un utilizatore specificu nantu à una partizione straniera muntata cù un altru utilizatore in u sistema attuale.
    • In Btrfs, per riduce a frammentazione di gruppi di blocchi, l'estensi sò divisi per grandezza quandu si assignanu blocchi, i.e. ogni gruppu di blocchi hè avà limitatu à picculi (finu à 128KB), mediu (finu à 8 MB) è grande estensioni. L'implementazione di raid56 hè stata refactorizzata. U codice per a verificazione di checksums hè statu riformulatu. L'ottimisazioni di u rendiment sò state fatte per accelerà l'operazione di mandatu finu à 10 volte caching utime per i cartulari è eseguisce cumandamenti solu quandu hè necessariu. L'operazioni di Fiemap sò oghji trè volte più veloci saltendu i cuntrolli di backlink per i dati spartuti (snapshots). L'operazioni cù metadata sò stati accelerati da 10% ottimizendu a ricerca di chjave in strutture b-tree.
    • U funziunamentu di u sistema di schedari ext4 hè statu migliuratu permettendu à parechji prucessi per realizà simultaneamente operazioni I / O dirette nantu à blocchi pre-assignati chì utilizanu blocchi inode spartuti invece di blocchi esclusivi.
    • In f2fs, u travagliu hè statu fattu per migliurà a leghjibilità di u codice. Risoluzione di prublemi impurtanti in relazione à a scrittura atomica è a nova cache di estensione.
    • U sistema di schedari EROFS (Enhanced Read-Only File System), cuncepitu per l'usu in partizioni di sola lettura, implementa a capacità di ligà l'operazioni di decompressione di u cuntenutu di u schedariu cumpressu à u CPU per riduce a latenza quandu accede à e dati.
    • U BFQ I / O scheduler hà aghjustatu supportu per unità di discu spinning avanzati, cum'è quelli chì utilizanu più unità di testa cuntrullate separatamente (Multi Actuators).
    • U supportu per a criptografia di dati cù l'algoritmu AES-SHA2 hè statu aghjuntu à l'implementazione di u cliente è di u servitore NFS.
    • U supportu per u mecanismu di espansione di query hè statu aghjuntu à u subsistema FUSE (Filesystems In User Space), chì permette di mette infurmazioni supplementari in a dumanda. Basatu nantu à sta funzione, hè pussibule aghjunghje identificatori di gruppu à a dumanda FS, chì sò necessarii per piglià in contu i diritti d'accessu quandu creanu l'uggetti in u FS (create, mkdir, symlink, mknod).
  • Virtualizazione è Sicurezza
    • L'ipervisore KVM per i sistemi x86 hà aghjustatu u supportu per l'ipercalli estesi di Hyper-V è hà furnitu u so inviu à un gestore in esecuzione in l'ambiente host in u spaziu di l'utilizatori. U cambiamentu hà permessu di implementà u supportu per u lanciu nidificatu di l'hypervisor Hyper-V.
    • KVM facilita a restrizzione di l'accessu di l'ospiti à l'avvenimenti PMU (Performance Monitor Unit) in relazione à a misurazione di u rendiment.
    • U mecanismu memfd, chì permette di identificà una zona di memoria per mezu di un descrittore di file trasferitu trà i prucessi, hà aghjustatu a capacità di creà spazii in quale l'esekzione di codice hè pruibita (non-executable memfd) è hè impussibile di stabilisce i diritti di esecuzione in u futuru. .
    • Una nova operazione prctl PR_SET_MDWE hè stata aghjunta chì blocca i tentativi di attivà i diritti d'accessu à a memoria chì permettenu simultaneamente a scrittura è l'esekzione.
    • A prutezzione contr'à l'attacchi di a classe Spectre hè stata aghjunta è attivata per automaticamente, basatu annantu à u modu automaticu IBRS (Enhanced Indirect Branch Restricted Speculation) prupostu in i processori AMD Zen 4, chì permette adattativamente è disattivà l'esecuzione speculativa di l'istruzzioni durante u processu di interruzzione, e chjama di u sistema è cambia u cuntestu. A prutizzioni pruposta risultati in più bassa overhead paragunatu à a prutezzione Retpoline.
    • Fixed una vulnerabilità chì permette di passà a prutezzione contr'à l'attacchi Spectre v2 quandu si usa a tecnulugia multi-threading simultanea (SMT o Hyper-Threading) è causata da disattivà u mecanismu STIBP (Single Thread Indirect Branch Predictors) quandu selezziunate u modu di prutezzione IBRS.
    • Per i sistemi basati nantu à l'architettura ARM64, un novu scopu di assemblea "virtconfig" hè statu aghjuntu, quandu hè sceltu, solu l'inseme minimu di cumpunenti di u kernel necessariu per boot in sistemi di virtualizazione hè attivatu.
    • Per l'architettura m68k, u supportu per e chjama di u sistema di filtrazione cù u mecanismu seccomp hè statu aghjuntu.
    • Aghjunghje supportu per i dispositi CRB TPM2 (Command Response Buffer) integrati in i processori AMD Ryzen, basati nantu à a tecnulugia Microsoft Pluton.
  • Sottusistema di rete
    • Una interfaccia di netlink hè stata aghjunta per cunfigurà u sublayer PLCA (Physical Layer Collision Avoidance), definitu in a specificazione IEEE 802.3cg-2019 è aduprata in rete Ethernet 802.3cg (10Base-T1S) ottimizzati per cunnette i dispositi Internet di e cose è i sistemi industriali. L'usu di PLCA migliurà u rendiment in e rete Ethernet cù media spartuti.
    • U supportu per l'API "estensioni wireless" per a gestione di l'interfacce wireless WiFi 7 (802.11be) hè stata interrotta postu chì questa API ùn copre micca tutti i paràmetri necessarii. Quandu pruvate d'utilizà l'API di "estensioni wireless", chì cuntinueghja à esse supportatu cum'è una capa emulata, un avvisu serà avà mostratu per a maiò parte di i dispositi attuali.
    • A documentazione dettagliata nantu à l'API netlink hè stata preparata (per i sviluppatori core è per i sviluppatori di l'applicazioni di u spaziu di l'utilizatori). L'utilità ynl-gen-c hè stata implementata per generà codice C basatu nantu à e specificazioni YAML di u protocolu Netlink.
    • U supportu per l'opzione IP_LOCAL_PORT_RANGE hè stata aghjunta à i sockets di rete per simplificà a cunfigurazione di e cunnessione in uscita per mezu di traduttori d'indirizzu senza aduprà SNAT. Quandu s'utilice un indirizzu IP nantu à parechji ospiti, IP_LOCAL_PORT_RANGE permette di utilizà un intervallu sfarente di porti di rete in uscita in ogni host, è trasmette pacchetti basati nantu à i numeri di portu nantu à a porta.
    • Per MPTCP (MultiPath TCP), a capacità di processà flussi misti cù i protokolli IPv4 è IPv6 hè stata implementata. MPTCP hè una estensione di u protocolu TCP per urganizà u funziunamentu di una cunnessione TCP cù a consegna di pacchetti simultaneamente longu parechje rotte attraversu diverse interfacce di rete associate cù diversi indirizzi IP.
    • Per IPv4, hè pussibule di utilizà l'estensione BIG TCP, chì permette di aumentà a dimensione massima di u pacchettu TCP à 4GB per ottimisà l'operazione di rete di centru di dati internu d'alta veloce. Un aumentu simili di a dimensione di u pacchettu cù una dimensione di u campu di l'intestazione di 16 bit hè ottenuta per mezu di l'implementazione di pacchetti "jumbo", a dimensione in l'intestazione IP di quale hè stabilita à 0, è a dimensione attuale hè trasmessa in un 32-bit separatu. campu in un capu separatu attaccatu.
    • Un novu paràmetru sysctl default_rps_mask hè statu aghjuntu, per mezu di quale pudete stabilisce a cunfigurazione RPS (Receive Packet Steering) predeterminata, chì hè rispunsevuli di distribuisce u processu di u trafficu entrante in i core di CPU à u nivellu di interrupt handler.
    • U supportu per e discipline di trasfurmazioni di fila per limità u trafficu CBQ (coda basata in classi), ATM (circuiti virtuali ATM), dsmark (marcatore di serviziu differenziatu), tcindex (indice di cuntrollu di trafficu) è RSVP (protokollu di riservazione di risorse) hè stata interrotta. Sti discipline sò state abbandunate per un bellu pezzu è ùn ci era nimu dispostu à cuntinuà u so sustegnu.
  • Equipment
    • Eliminati tutti i driver grafici basati DRI1: i810 (schede grafiche Intel 8xx integrate più antiche), mga (Matrox GPU), r128 (ATI Rage 128 GPU, cumprese Rage Fury, XPERT 99 è XPERT 128 cards), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) è via (VIA IGP), chì sò stati obsoleti in 2016 è ùn sò micca stati supportati in Mesa da 2012.
    • Eliminati i driver framebuffer legacy (fbdev) omap1, s3c2410, tmiofb è w100fb.
    • Un driver DRM hè statu aghjuntu per l'unità VPU (Unità di Processazione Versatile) integrata in a CPU Intel Meteor Lake (14a generazione), cuncepitu per accelerà l'operazioni relative à a visione di l'informatica è à l'apprendimentu di a macchina. U driver hè implementatu aduprendu u subsistema "accel", destinatu à furnisce supportu per l'acceleratori computazionali, chì ponu esse furniti in forma di ASIC individuali o cum'è blocchi IP in u SoC è GPU.
    • U driver i915 (Intel) espansione u supportu per e carte grafiche Intel Arc (DG2/Alchemist) discrete, furnisce un supportu preliminare per i GPU Meteor Lake, è include supportu per i GPU Intel Xe HP 4tile.
    • U driver amdgpu aghjusta u supportu per a tecnulugia AdaptiveSync è a capacità di utilizà u modalità Secure Display cù parechje display. Supportu aghjurnatu per DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x è DP 2.1.
    • U driver msm (Qualcomm Adreno GPU) hà aghjustatu supportu per e piattaforme SM8350, SM8450 SM8550, SDM845 è SC8280XP.
    • U driver Nouveau ùn sustene più i vechji chjamati ioctl.
    • U supportu sperimentale per NPU VerSilicon (VeriSilicon Neural Network Processor) hè statu aghjuntu à u driver etnaviv.
    • U driver pata_parport hè statu implementatu per i drive IDE cunnessi via un portu parallelu. U driver aghjuntu ci hà permessu di caccià u vechju driver PARIDE da u kernel è mudernizà u subsistema ATA. Una limitazione di u novu driver hè l'incapacità di cunnette simultaneamente una stampante è un discu via u portu parallelu.
    • Added ath12k driver for wireless cards on Qualcomm chips supporting Wi-Fi 7. Added support for wireless cards on chips RealTek RTL8188EU.
    • Aghjunghje supportu per 46 schede cù processori basati nantu à l'architettura ARM64, cumprese 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, è ancu i dispositi basati nantu à SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 è SDM632, Rockchips RK3128 TV box, RV1126 Vision, RK3588, RK3568, RK3566, RK3588, RK3328, RK3, RK642, RK654 è /AM68 69/ AMXNUMX /AMXNUMX).

À u listessu tempu, a Fundazione di Software Liberu Latino-Americana hà furmatu una versione di u kernel completamente liberu 6.3 - Linux-libre 6.3-gnu, sguassatu di elementi di firmware è drivers chì cuntenenu cumpunenti non liberi o sezzioni di codice, u scopu di quale hè. limitatu da u fabricatore. In a versione 6.3, i blobs sò stati puliti in i novi drivers ath12k, aw88395 è peb2466, è ancu in i novi schedarii di devicetree per i dispositi qcom basati nantu à l'architettura AArch64. Codice di pulizia blob aghjurnatu in i drivers è i sottosistemi amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110, è ancu in i drivers per carte DVB cù decodificazione di software è in schedari BPF precompiled. A pulizia di i driver mga, r128, tm6000, cpia2 è r8188eu hè stata fermata postu chì sò stati eliminati da u kernel. Pulizia di blob driver i915 mejorata.

Source: opennet.ru

Add a comment