Versione di u kernel Linux 6.7

Dopu dui mesi di sviluppu, Linus Torvalds hà presentatu a liberazione di u kernel Linux 6.7. Trà i cambiamenti più notevuli: integrazione di u sistema di schedari Bcachefs, discontinuazione di supportu per l'architettura Itanium, capacità di Nouvea per travaglià cù firmware GSP-R, supportu per a criptografia TLS in NVMe-TCP, capacità di utilizà eccezzioni in BPF, supportu per futex in io_uring, ottimisazione di fq (Fair Queuing) scheduler performance), supportu per l'estensione TCP-AO (TCP Authentication Option) è a capacità di limità e cunnessione di rete in u mecanismu di sicurezza Landlock, aghjustatu u cuntrollu di accessu à u spaziu di nomi di l'utilizatori è io_uring. via AppArmor.

A nova versione include 18405 correzioni da 2066 sviluppatori, a dimensione di u patch hè 72 MB (i cambiamenti affettati 13467 file, 906147 linee di codice sò state aghjunte, 341048 linee sò state eliminate). L'ultima versione hà avutu 15291 correzioni da 2058 sviluppatori, a dimensione di u patch era 39 MB. Circa 45% di tutti i cambiamenti introdotti in 6.7 sò ligati à i drivers di u dispositivu, circa 14% di i cambiamenti sò ligati à l'aghjurnamentu di u codice specificu à l'architetture hardware, 13% sò ligati à a pila di rete, 5% sò ligati à i sistemi di schedari, è 3% sò ligati à i sottosistemi interni di u kernel.

Innuvazioni principali in u kernel 6.7:

  • Sottosistema di discu, I / O è sistemi di fugliale
    • U kernel adopta u codice di u sistema di file Bcachefs, chì prova di ottene u rendiment, affidabilità è scalabilità di XFS, cumminati cù elementi di e funziunalità avanzata truvata in Btrfs è ZFS. Per esempiu, Bcachefs supporta funzioni cum'è l'inclusione di parechji dispositi in una partizione, layout di unità multi-layer (a capa inferiore cù dati spessu usati basati in SSD veloci, è a capa superiore cù dati menu utilizati da discu duru), replicazione (RAID). 1/10), caching, compressione di dati trasparenti (modi LZ4, gzip è ZSTD), fette di statu (snapshots), verificazione di l'integrità cù checksums, a capacità di almacenà codici di correzione di errore Reed-Solomon (RAID 5/6), almacenà l'infurmazioni in forma criptata (ChaCha20 è Poly1305 sò usati). In quantu à u rendiment, Bcachefs hè davanti à Btrfs è altri sistemi di fugliale basati nantu à u mecanismu Copy-on-Write, è dimostra a velocità operativa vicinu à Ext4 è XFS.
    • U sistema di schedari Btrfs introduce un modu di quota simplificatu chì vi permette di ottene un rendimentu più altu seguitendu estensioni solu in a subpartizione in u quale sò creati, chì simplifica significativamente i calculi è migliurà u rendiment, ma ùn vi permette micca di piglià in contu l'estensi spartuti in parechji. subpartizioni.
    • Btrfs hà aghjustatu una nova struttura di dati "stripe tree", adattata per a mappatura di l'estensione logica in situazioni induve e carte fisiche ùn currispondenu micca trà i dispositi. A struttura hè attualmente aduprata in implementazioni di RAID0 è RAID1 per i dispositi di blocchi zonati. In u futuru, pensanu à aduprà sta struttura in RAID di livellu più altu, chì risolve una quantità di prublemi esistenti in l'implementazione attuale.
    • U sistema di fugliale Ceph implementa u supportu per a mappatura di l'ID di l'utilizatori di i sistemi di fugliale muntati, utilizati per abbinà i schedarii di un utilizatore specificu nantu à una partizione straniera muntata cù un altru utilizatore in u sistema attuale.
    • Aggiunta l'abilità di specificà uid è gid nantu à a muntagna à efivarfs per permette à i prucessi non-root di cambià variabili UEFI.
    • Aghjunghjite ioctl chjama à exFAT per leghje è cambià l'attributi FS. Aggiunta a gestione di cartulari zero-size.
    • F2FS implementa a capacità di utilizà blocchi 16K.
    • U mecanismu di automount autofs hè statu cambiatu per utilizà a nova API di muntazione di partizioni.
    • OverlayFS offre opzioni di muntatura "lowerdir+" è "datadir+". Aghjunghje supportu per u muntamentu nidificatu di OverlayFS cù xattrs.
    • XFS hà ottimisatu a carica di CPU in u codice di allocazione di blocchi in tempu reale. A capacità di realizà simultaneamente operazioni di lettura è FICLONE hè furnita.
    • U codice EXT2 hè statu cunvertitu per utilizà folios di pagina.
  • Memoria è servizii di sistema
    • U supportu per l'architettura ia64 utilizata in i prucessori Intel Itanium, chì sò stati completamente interrotti in u 2021, hè stata interrotta. I prucessori Itanium sò stati introdotti da Intel in 2001, ma l'architettura ia64 hà fallutu per cumpete cù AMD64, soprattuttu per via di u rendiment più altu di AMD64 è a transizione più liscia da i processori 32-bit x86. In u risultatu, l'interessi di Intel anu cambiatu in favore di i prucessori x86-64, è u lottu di Itanium restava servitori HP Integrity, ordini per i quali sò stati fermati trè anni fà. U codice per u supportu ia64 hè statu sguassatu da u kernel principarmenti per via di a longa mancanza di supportu per sta piattaforma, mentri Linus Torvalds hà manifestatu a so vuluntà di rinvià u supportu ia64 à u kernel, ma solu s'ellu ci hè un mantene chì pò dimustrà alta qualità. supportu per sta piattaforma fora di u kernel principale per almenu un annu.
    • Aggiuntu u paràmetru di cumanda di linea di kernel "ia32_emulation", chì permette di attivà o disattivà u supportu per l'emulazione di u modu 32-bit in kernels custruiti per l'architettura x86-64 in a fase di boot. In u latu praticu, a nova opzione permette di custruisce u kernel cù supportu per a cumpatibilità cù l'applicazioni 32-bit, ma disattiveghjanu stu modu per automaticamente per riduce u vettore d'attaccu à u kernel, postu chì l'API di cumpatibilità hè menu pruvata da u kernel principale. interfacce.
    • Migrazione cuntinuata di cambiamenti da u ramu Rust-for-Linux in relazione à l'usu di a lingua Rust cum'è una seconda lingua per u sviluppu di drivers è moduli di kernel (U supportu Rust ùn hè micca attivu per automaticamente, è ùn porta micca à l'inclusione di Rust trà i dipendenze di assemblea necessarie per u kernel). A nova versione face a transizione per aduprà a versione Rust 1.73 è offre un set di vincoli per travaglià cù file di travagliu.
    • Hè pussibule usà u mecanismu binfmt_misc per aghjunghje supportu per novi formati di fugliali eseguibili (per esempiu, per eseguisce applicazioni Java o Python compilate) in spazii di nomi senza privilegiu separati.
    • U cpuset di u controller di cgroup, chì permette di cuntrullà l'usu di i core di CPU quandu eseguisce un compitu, furnisce una divisione in partizioni lucali è remoti, chì sò diffirenti per se u cgroup parent hè a seccione radicali curretta o micca. I novi paràmetri "cpuset.cpus.exclusive" è "cpuset.cpus.excluisve.effective" sò stati ancu aghjunti à cpuset per l'associazione esclusiva di CPU.
    • U subsistema BPF implementa u supportu per l'eccezzioni, chì sò processati cum'è una uscita d'emergenza da un prugramma BPF cù a capacità di svià in modu sicuru i frames di pila. Inoltre, i prugrammi BPF permettenu l'usu di puntatori kptr in cunnessione cù u CPU.
    • U supportu per l'operazioni cù futex hè statu aghjuntu à u subsistema io_uring, è sò state implementate novi operazioni: IORING_OP_WAITID (versione asincrona di waitid), SOCKET_URING_OP_GETSOCKOPT (opzione getsockoptand), SOCKET_URING_OP_SETSOCKOPT (opzione setsockopt) è IORING_MULTISTOP ùn ferma micca l'operazione (opzione di setsockopt) è ISTOP_REAT ci hè dati o ùn hè micca buffer pienu).
    • Aggiunta implementazione di fili FIFO uni-connessi ligeri chì necessitanu un spinlock solu per dequeuing in un cuntestu di prucessu è dispensa cù un spinlock per l'aghjunzione atomica à a fila in ogni cuntestu.
    • Aggiuntu un buffer di ring "objpool" cù una implementazione scalabile di una fila d'alta prestazione per l'assignazione è u ritornu di l'uggetti.
    • A parte iniziale di i cambiamenti hè stata aghjunta per implementà a nova API futex2, chì hà megliu rendimentu nantu à i sistemi NUMA, supporta dimensioni diverse da 32 bits, è pò esse usata invece di a chjama di u sistema multiplexed futex ().
    • Per l'architetture ARM32 è S390x, u supportu per u settore attuale (cpuv4) di struzzioni BPF hè statu aghjuntu.
    • Per l'architettura RISC-V, hè pussibule aduprà u Modu di verificazione Shadow-Call Stack dispunibile in Clang 17, cuncepitu per pruteggiri contra a soprascrittura di l'indirizzu di ritornu da una funzione in casu di un buffer overflow in a pila. L'essenza di a prutezzione hè di salvà l'indirizzu di ritornu in una pila separata di "ombra" dopu avè trasferitu u cuntrollu à una funzione è ricuperà questu indirizzu prima di esce da a funzione.
    • Un novu modu di scansione di pagine di memoria intelligente hè statu aghjuntu à u mecanismu per unisce pagine di memoria identiche (KSM: Kernel Samepage Merging), chì traccia e pagine scansate senza successu è riduce l'intensità di a so scansione. Per attivà u novu modu, u paràmetru /sys/kernel/mm/ksm/smart_scan hè statu aghjuntu.
    • Aggiuntu un novu cumandamentu ioctl PAGEMAP_SCAN, chì, quandu s'utilice cù userfaultfd (), permette di determinà i fatti di scrive à un intervallu di memoria specificu. A nova funzione, per esempiu, pò esse usata in u sistema per salvà è restaurà u statu di i prucessi CRIU o in sistemi anti-cheat di ghjocu.
    • In u sistema di assemblea, se u compilatore Clang hè dispunibule, l'assemblea di esempi di usu di u subsistema perf, scrittu cum'è prugrammi BPF, hè attivatu per automaticamente.
    • L'antica capa di videobuf, chì hè stata aduprata per gestisce framebuffers in u subsistema di media è hè stata rimpiazzata da una nova implementazione di videobuf10 più di 2 anni fà, hè stata eliminata.
  • Virtualizazione è Sicurezza
    • A capacità di criptà e dati in blocchi più chjuchi di a dimensione di u bloccu in u sistema di fugliale hè stata aghjuntu à u subsistema fscrypt. Questu pò esse necessariu per attivà i meccanismi di criptografia di hardware chì supportanu solu i blocchi chjuchi (per esempiu, i cuntrolli UFS chì supportanu solu una dimensione di bloccu 4096 ponu esse aduprati cù un sistema di fugliale cù una dimensione di bloccu 16K).
    • U sottosistema "iommufd", chì permette di gestisce i tabelle di pagina di memoria IOMMU (I/O Memory-Management Unit) per mezu di descrittori di file da u spaziu di l'utilizatori, hà aghjustatu u seguimentu di dati chì ùn sò micca stati sbulicati da a cache (sprazza) per DMA. operazioni, chì hè necessariu per determinà a memoria cù dati unflushed durante a migrazione di prucessu.
    • U supportu per definisce e regule di cuntrollu di l'accessu per i sockets TCP hè statu aghjuntu à u mecanismu Landlock, chì permette di limità l'interazzione di un gruppu di prucessi cù l'ambiente esternu. Per esempiu, pudete creà una regula chì permette solu l'accessu à u portu di rete 443 per stabilisce cunnessione HTTPS.
    • U subsistema AppArmor hà aghjustatu l'abilità di cuntrullà l'accessu à u mecanismu io_uring è di creà spazii di nomi di l'utilizatori, chì vi permette di permette selectivamente l'accessu à queste capacità solu à certi prucessi.
    • Aggiunta API d'attestazione di a macchina virtuale per verificà l'integrità di u prucessu di boot di a macchina virtuale.
    • I sistemi LoongArch supportanu a virtualizazione cù l'ipervisore KVM.
    • Quandu si usa l'ipervisore KVM in i sistemi RISC-V, u supportu per l'estensione Smstateen hè apparsu, chì impedisce à a macchina virtuale di accede à i registri di CPU chì ùn sò micca esplicitamente supportati da l'ipervisore. Aghjunghjite ancu supportu per l'usu di l'estensione Zicond in i sistemi d'ospiti, chì permette l'usu di alcune operazioni integer conditional.
    • In i sistemi di ospiti basati in x86 chì funzionanu sottu KVM, sò permessi finu à 4096 CPU virtuali.
  • Sottusistema di rete
    • U driver NVMe-TCP (NVMe over TCP), chì permette di accede à l'unità NVMe nantu à a reta (NVM Express over Fabrics) utilizendu u protocolu TCP, hà aghjuntu supportu per criptà u canali di trasmissione di dati cù TLS (usendu KTLS è un prucessu di fondo). in u spaziu d'utilizatore tlshd per a negoziazione di cunnessione).
    • A prestazione di u pianificatore di pacchetti fq (Fair Queuing) hè stata ottimizzata, chì hà permessu di aumentà a produzzione di 5% sottu carichi pesanti in a prova tcp_rr (TCP Request/Response) è da 13% cù un flussu illimitatu di pacchetti UDP.
    • TCP aghjusta una capacità opzionale di timestamp di precisione di microsecondi (TCP TS) (RFC 7323), chì permette una stima di latenza più precisa è moduli di cuntrollu di congestione più avanzati. Per attivà, pudete aduprà u cumandimu "ip route add 10/8 ... features tcp_usec_ts".
    • A pila TCP hà aghjustatu supportu per l'estensione TCP-AO (TCP Authentication Option, RFC 5925), chì permette di verificà l'intestazione TCP cù i codici MAC (Message Authentication Code), utilizendu algoritmi più moderni HMAC-SHA1 è CMAC-AES- 128 invece l'opzione TCP-MD5 dispunibule in precedenza basatu annantu à l'algoritmu MD5 legatu.
    • Un novu tipu di dispositivi di rete virtuale "netkit" hè statu aghjuntu, a logica di trasferimentu di dati in quale hè stabilitu cù un prugramma BPF.
    • KSMBD, una implementazione à livellu di kernel di un servitore SMB, hà aghjustatu supportu per risolve i nomi di schedari chì cuntenenu coppie surrogate di caratteri composti.
    • NFS hà migliuratu l'implementazione di filamenti cù servizii RPC. Supportu aghjuntu per a delegazione di scrittura (per NFSv4.1+). NFSD hà aghjustatu supportu per u gestore di rpc_status netlink. Supportu migliuratu per i clienti NFSv4.x quandu si riesporta à knfsd.
  • Equipment
    • U supportu iniziale per u firmware GSP-RM hè statu aghjuntu à u modulu di u kernel Nouveau, chì hè utilizatu in a GPU NVIDIA RTX 20+ per trasfurmà l'inizializazione è l'operazioni di cuntrollu GPU à u latu di un microcontroller GSP separatu (Processore di sistema GPU). U supportu GSP-RM permette à u driver Nouveau di travaglià attraversu e chjama di firmware, piuttostu cà di prugrammà direttamente l'interazzione hardware, facendu assai più faciule per aghjunghje supportu per novi GPU NVIDIA utilizendu chjamati pre-custruiti per l'inizializazione è a gestione di l'energia.
    • U driver AMDGPU supporta GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 è DML2. Supportu migliuratu per a carica senza saldatura (senza sfarfallio quandu cambia u modu video).
    • U driver i915 aghjunghjenu supportu per i chips Intel Meteor Lake è aghjunghje una implementazione iniziale di Intel LunarLake (Xe 2).
    • Supportu aghjuntu per i canali di trasmissione asimmetrici aghjuntu à l'specificazione USB4 v2 (120/40G).
    • Aghjunghje supportu per ARM SoC: Qualcomm Snapdragon 720G (utilizatu in i telefoni smartphones Xiaomi), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (usatu in routers è NAS).
    • Aghjunghje supportu per u smartphone Fairphone 5 è e schede ARM Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30.
    • Supportu aghjuntu per i schede RISC-V Milk-V Pioneer è Milk-V Duo.
    • Aghjunghje supportu per l'interfaccia di sonu di i laptop HUAWEI furniti cù CPU AMD. Supportu aghjuntu per parlanti supplementari installati nantu à i laptop Dell Oasis 13/14/16. Supportu aghjuntu per i parlanti integrati ASUS K6500ZC. Aghjunghje supportu per l'indicatore mute nantu à i laptop HP 255 G8 è G10. Aghjunghje supportu per i driver audio acp6.3. Supportu aghjuntu per Focusrite Clarett + 2Pre è 4Pre interfacce di registrazione prufessiunale.

À u listessu tempu, a Fundazione di Software Liberu Latino-Americana hà furmatu una versione di u kernel completamente liberu 6.7 - Linux-libre 6.7-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.7, u codice di pulizia blob hè statu aghjurnatu in diversi drivers è sottosistemi, per esempiu, in i driver amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs è btqca. U codice per a pulizia di i drivers localtalk è rtl8192u hè statu sguassatu per via di a so esclusione da u kernel. Eliminati i cumpunenti innecessarii per a pulizia di i driver xhci-pci, rtl8xxxu è rtw8822b, aghjustati prima per errore. Pulite i nomi di blob in i fugliali dts per l'architettura Aarch64. Eliminate blobs in i novi driver mt7925, tps6598x, aw87390 è aw88399.

Source: opennet.ru

Add a comment