Versione di u kernel Linux 6.6

Dopu dui mesi di sviluppu, Linus Torvalds hà presentatu a liberazione di u kernel Linux 6.6. Trà i cambiamenti più notevuli: un novu pianificatore di attività EEVDF; mecanismu di stack d'ombra per pruteggiri contra i sfruttamenti; supportu fs-verity in OverlayFS; implementazione di quote è xattr in tmpfs; preparazione fsck in linea in XFS; seguimentu rinfurzatu di l'esportazione di simboli "solu GPL"; supportu per i sockets di rete in io_uring; randomizazione di memoria in kmalloc (); deprecated da ReiserFS; I primitivi per u driver NVK Vulkan sò stati aghjuntu à Nouveau.

A nova versione include 15291 correzioni da 2058 sviluppatori, a dimensione di u patch hè 39 MB (i cambiamenti affettati 14844 file, 553359 linee di codice sò state aghjunte, 284012 linee sò state eliminate). L'ultima versione hà avutu 14674 correzioni da i sviluppatori 2016, a dimensione di u patch era 78 MB. Circa 44% di tutti i cambiamenti introdotti in 6.6 sò ligati à i drivers di u dispositivu, circa 17% di i cambiamenti sò ligati à l'aghjurnamentu di u codice specificu à l'architetture hardware, 11% sò ligati à a pila di rete, 4% sò ligati à i sistemi di schedari, è 3% sò ligati à i sottosistemi interni di u kernel.

Innuvazioni principali in u kernel 6.6:

  • Memoria è servizii di sistema
    • Un novu pianificatore di compiti EEVDF (Earliest Eligible Virtual Deadline First) hè statu implementatu, chì hà rimpiazzatu u CFS (Completely Fair Scheduler) scheduler, chì hè statu furnitu à partesi da u kernel 2.6.23. U novu pianificatore, quandu sceglite u prossimu prucessu per trasfirià l'esekzione, piglia in contu i prucessi chì ùn anu micca ricivutu abbastanza risorse di processore o chì anu ricivutu una quantità injustamente grande di tempu di processore. In u primu casu, u trasferimentu di cuntrollu à u prucessu hè furzatu, è in u sicondu, à u cuntrariu, hè posposta. U vechju pianificatore CFS hà utilizatu l'euristiche è a sintonizazione fine per identificà i prucessi chì avianu bisognu d'attenzione speciale, mentre chì u novu pianificatore li traccia più esplicitamente è ùn hà micca bisognu di fine-tuning. EEVDF hè previstu di riduce i ritardi in i travaglii per i quali CFS hà avutu prublemi di pianificazione.
    • I cambiamenti sò stati fatti à u trattamentu di i simboli interni di a categuria "GPL-only", destinatu à complicà l'usu di strati GPL da i moduli proprietarii per scaccià e restrizioni d'accessu à i sottosistemi di kernel chì permettenu solu codice sottu a licenza GPL. A funzione symbol_get() impedisce à i moduli proprietarii di circà simboli marcati solu GPL, è vice versa, i moduli GPL ùn puderanu micca truvà simboli esportati da i moduli proprietarii.
    • Aghjunghjite paràmetri supplementari per e file di travagliu unbound per migliurà l'efficienza di a reutilizazione di cache di processore in grandi sistemi cù parechje cache di terzu livellu (L3). U kernel include ancu una utility tools/workqueue/wq_dump.py per verificà a cunfigurazione attuale di fila di travagliu.
    • U subsistema io_uring hà aghjustatu u supportu iniziale per l'operazioni è i cumandamenti specifichi di u socket di rete. Aggiuntu sysctl io_uring_disabled per disattivà io_uring in tuttu u sistema. io_uring accelera ancu significativamente l'I/O direttu in modu asincronu. L'aumentu di u throughput è a riduzzione di a latenza quandu eseguite operazioni I / O dopu avè fattu cambiamenti righjunghji u 37%.
    • Per l'architettura PA-RISC, un compilatore JIT per BPF hè statu implementatu.
    • Aggiuntu supportu per i paràmetri numerichi à l'impostazione /sys/devices/system/cpu/smt/control chì determina u numeru di fili dispunibili per ogni core CPU (precedentemente solu i valori "on" è "off" eranu supportati per attivà o disattivà. supportu multithreading simmetricu). A nova funzione pò esse aduprata in certi processori PowerPC chì supportanu hotplug SMT per attivà selettivamente SMT in core specifichi durante l'operazione.
    • 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 transizione à l'usu di Rust 1.71.1 è Bindgen 0.65.1 releases hè stata fatta. U trattu "Zeroable" hè statu implementatu. Aghjunghjite macros procedurali "paste!" è '#[deriva (Zeroable)]'. A cumpatibilità cù '#[pin_data]' hè assicurata. Aghjunghjite funzioni di inizializazione '{,pin_}init_array_from_fn()' è u metudu '{,pin_}chain'. E capacità di u modulu di "tipi" sò state allargate. U quadru di teste di unità kunit hà aghjustatu a capacità di eseguisce testi da a documentazione Rust.
    • U subsistema "eventfs" hè statu aghjuntu, chì permette di riduce significativamente u cunsumu di memoria in u sistema di traccia, eliminendu l'almacenamiento di strutture innecessarii utilizati per rapprisintà punti di traccia in u sistema di fugliale. Prima, strutture simili sò state create per tutti i punti di traccia, indipendentemente da l'usu di traccia. Cù eventfs, tali strutture ponu esse creati dinamicamente, solu quandu sò necessarii.
    • E capacità di l'utilità perf sò state allargate.
    • L'infurmazione hè stata aghjunta à u schedariu /proc/pid/smaps per diagnosticà l'efficacità di u mecanismu per unisce pagine di memoria identiche (KSM, Kernel Samepage Merging).
    • L'API Frontswap hè stata sguassata, permettendu chì a partizione di swap si mette in memoria chì ùn pò micca esse diretta direttamente è ùn furnisce micca infurmazione operativa nantu à a dispunibilità di u spaziu liberu. Questa API hè stata aduprata solu in zswap, cusì hè statu decisu di utilizà direttamente sta funziunalità in zswap, sbarazzandu di strati innecessarii.
    • Per l'architettura RISC-V, aghjustatu supportu per l'accessu à i contatori di rendiment da u spaziu di l'utilizatori è a capacità di mette un core dump dopu un fallimentu in una zona oltre u cunfini 4GB.
    • Aggiuntu supportu iniziale per l'istruzzioni ARM SME (Scalable Matrix Extension).
    • A capacità di utilizà l'uttene di debugging KDB, KGDB, kcov, KFENCE è KASAN in sistemi cù l'architettura LoongArch hè stata implementata.
    • Aghjunghje supportu per i schedarii di teste di kernel in u sistema di integrazione cuntinuu GitLab, chì hè utilizatu in u sviluppu di i drivers grafichi.
  • Sottosistema di discu, I / O è sistemi di fugliale
    • U sistema di schedari OverlayFS hà aghjustatu supportu per almacenà fs-verity hashes in l'attributu overlay.verity extended (xattr), chì pò esse usatu per verificà l'integrità è l'autenticità di i fugliali in i strati sottostanti di OverlayFS usendu hash è chjavi criptografici. Cusì, OverlayFS avà include tutti i cambiamenti necessarii per u prughjettu di Composefs per travaglià in forma di add-on à i sistemi di schedari OverlayFS è EROFS.
    • U sistema di fugliale XFS hè statu preparatu per implementà a capacità di utilizà l'utilità fsck per verificà è corregge i prublemi identificati in linea, senza smontà u sistema di fugliale. Inoltre, XFS hà implementatu l'abilità di usà grandi folios in a cache di a pagina è aghjunghjenu alcune ottimisazioni rilativi chì anu migliuratu significativamente u rendiment per certi tipi di carichi di travagliu.
    • U sistema di schedarii tmpfs hà aghjustatu supportu per l'attributi estesi di l'utilizatori (user xattrs), l'I / O direttu è i quote d'utilizatori è di gruppu. L'offsets di u repertoriu sò stati stabilizzati, chì risolve i prublemi cù l'esportazione di tmpfs via NFS.
    • A bandiera FSCONFIG_CMD_CREATE_EXCL hè stata aghjunta à l'API Mount Control per migliurà a sicurità per impedisce a spartera di un superbloccu in parechji punti di muntazione (impedisce chì una partizione sia attaccata à parechji punti di muntagna). L'utilità di muntagna offre l'opzione "--esclusiva" per attivà sta bandiera.
    • U supportu per i cambiamenti in linea di i paràmetri cù l'accessu è i tempi di cambiamentu (atime, mtime) hè statu aghjuntu à u subsistema VFS. Nanzu, i dati di u tempu sò stati riflessi cù qualchì ritardu, chì hà fattu difficiuli di seguità a freschezza di e dati in u cache in sistemi cum'è NFS (per via di u ritardu in a rilevazione di cambiamenti in u schedariu, u sistema puderia sbaglià pensà chì i dati). in a cache era attuale). A nova funzione hè dispunibule per Btrfs, Ext4, tmpfs è XFS.
    • Btrfs hà deprecatu u mecanismu di cuntrollu di integrità integratu chì hè attivatu à u tempu di creazione via u paràmetru BTRFS_FS_CHECK_INTEGRITY. U mecanismu specificatu ùn hè micca supportatu, ùn hè più pruvatu è crea una carica addiziale nantu à u CPU è a memoria. Inoltre, Btrfs hà ottimisatu u rendiment di u novu codice di verificazione FS (scrub).
    • In u sistema di schedari Ext4, i cuntrolli periodichi di l'aghjurnamenti di u superbloccu sò stati aghjunti è l'operazioni di allocazione di memoria sò state accelerate quandu scrivite à a fine di u schedariu.
    • U subsistema FUSE hà aghjustatu supportu per l'attributu btime ("ora di nascita"), chì determina u tempu di creazione di l'inode.
    • U cambiamentu di permessi per i ligami simbolichi hè pruibitu.
    • Aghjunghje a chjama di u sistema fchmodat2 (), chì difiere da a chjama di u sistema fchmodat () per un argumentu supplementu per specificà i bandieri. Di i bandieri, solu AT_SYMLINK_NOFOLLOW è AT_EMPTY_PATH sò attualmente supportati, chì permettenu, senza solu solu solu, di implementà in a funzione libc fchmodat () a pruibizione di dereferencing ligami simbolichi è a capacità d'utilizà un descrittore di file quandu specifica un percorsu viotu.
    • U sistema di schedari EROFS (Extendable Read-Only File System), cuncepitu per l'usu in partizioni di sola lettura, supporta avà l'algoritmu di compressione Deflate. Per accelerà a ricerca di attributi estesi, una struttura probabilistica di filtru di fioritura hè aduprata.
    • Aggiuntu u paràmetru CONFIG_BUFFER_HEAD, chì permette di custruisce u kernel senza aduprà a struttura buffer_head. Quandu si custruisce senza buffer_head, pudete aduprà i dispositi di bloccu è certi sistemi di schedari, per esempiu, xfs, btrfs, cramfs, erofs è squashfs.
    • U driver di u dispositivu di bloccu ublk, chì vi permette di trasfurmà a logica specifica à u latu di u prucessu in u spaziu di l'utilizatori, hà aghjustatu supportu per i dispositi di almacenamento in zona (dividendu gruppi di blocchi o settori in zoni, in quale solu l'aghjunzione sequenziale di dati hè permessa cù l'aghjurnamentu di i dati). tuttu u gruppu di blocchi).
    • L'implementazione di u sistema di schedari ReiserFS hè stata spustata da supportata à obsoleta. ReiserFS hè prevista per finisce u supportu in 2025. I mutivi di rende ReiserFS obsoleti includenu stagnazione in u mantenimentu di questu FS, u prublema senza risolve di 2038, a mancanza di capacità di tolleranza à i difetti è a vulintà di riduce i costi di u travagliu per mantene i cambiamenti cumuni à i sistemi di fugliale in relazione à u supportu di a nova API per a muntagna, iomap è folios ).
    • U servitore NFS implementa un mecanismu di delegazione di scrittura per NFSv4, chì migliurà l'efficienza di a cache di scrittura di schedari per riduce u trafficu. U supportu per l'operazione READ_PLUS definita in NFS 4.2 hè stata attivata.
    • U supportu per fscrypt hè statu aghjuntu à u sistema di schedari Ceph.
  • Virtualizazione è Sicurezza
    • Hè stata aghjunta una implementazione di u mecanismu Shadow Stack, chì permette di bluccà l'operazione di parechji sfruttamenti, utilizendu e capacità hardware di i prucessori Intel 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è chì dopu chì u cuntrollu hè trasferitu à una funzione, l'indirizzu di ritornu hè guardatu da u processatore micca solu in a pila regulare, ma ancu in una pila "ombra" separata, chì ùn pò micca esse cambiata direttamente. Prima chì a funzione esce, l'indirizzu di ritornu hè spuntatu da a pila d'ombra è verificatu contru l'indirizzu di ritornu da a pila principale. L'indirizzi mismatched portanu à a generazione di l'eccezzioni, bluccà situazioni induve u sfruttamentu hà sappiutu di rimpiazzà un indirizzu nantu à a pila principale. A pila di ombra di hardware hè supportata solu in build 64-bit, è l'emulazione di software hè aduprata in build 32-bit.
    • Aghjunghje supportu per a custruzzione cù u compilatore Clang cù u modu di prutezzione CFI (Control Flow Integrity) attivatu, chì blocca e violazioni di l'ordine di esecuzione normale (flussu di cuntrollu) in u risultatu di l'usu di sfruttamenti chì cambianu l'indicatori di funzione almacenati in memoria.
    • Per l'architettura RISC-V, a randomizazione di u piazzamentu di u kernel in memoria à u boot hè attivata.
    • A bandiera SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP hè stata aghjunta à a chjama di u sistema seccomp (), chì permette di processà l'avvenimenti da i prucessi monitorati in un modu sincronu per una operazione più efficaci di u pianificatore di attività.
    • A funzione kmalloc () furnisce una randomizazione di i cache di slab, facendu più difficiuli di sfruttà e vulnerabilità in u kernel.
    • A menzione di l'Agenzia di Sicurezza Naziunale di i Stati Uniti hè stata sguassata da l'opzioni assuciate cù l'attivazione di u sistema di cuntrollu di l'accessu SELinux. Siccomu u prugettu hè statu sviluppatu sottu à l'ala di a cumunità per 20 anni è hè supportatu da mantenitori indipendenti, hè statu decisu di passà à utilizà u nome "SELinux" invece di "NSA SELinux" in i cumenti è a documentazione in Kconfig (per esempiu. , a spiegazione per u paràmetru di assemblea SECURITY_SELINUX hè stata cambiata da "NSA SELinux Support" à "SELinux Support").
    • A chjama di sistema userfaultfd() hà avà una operazione UFFDIO_POISON chì permette di marcà e pagine di memoria cum'è avvelenate, chì pò esse aduprata per migrà e pagine di memoria danneggiate. macchine virtuali da un sistema à l'altru.
    • Una nova interfaccia di caratteri (/dev/vfio/devices/vfioX) hè stata aghjunta à u sottosistema VFIO per a gestione di i dispositi VFIO, chì permette à l'utilizatori di apre direttamente un schedariu di u dispusitivu senza accede à l'interfaccia di u gruppu legacy /dev/vfio/$groupID.
    • В servitore NFS hà abbandunatu u supportu per i tipi di crittografia Kerberos legacy chì utilizanu l'algoritmi DES è 3DES.
    • Quandu si esegue in l'ambiente di l'hypervisor Hyper-V, u supportu hè statu aghjuntu per i sistemi invitati prutetti cù a tecnulugia AMD SEV-SNP (Secure Nested Paging) è Intel TDX (Trusted Domain Extensions).
    • Quandu custruisce u kernel in u modu "W = 1", u compilatore predeterminatu à "-Wformat-overflow", "-Wformat-truncation", "-Wstringop-overflow" è "-Wrestrict" avvisi. L'avvertimentu "-Wenum-conversion" hè attivatu per qualsiasi custruzzione.
  • Sottusistema di rete
    • L'implementazione di a famiglia di indirizzi AF_XDP (eXpress Data Path) hè stata allargata per travaglià cù pacchetti almacenati in parechje buffer (per esempiu, un buffer pò cuntene un intestazione di pacchettu è a seconda data, o una catena di parechji buffer pò cuntene un grande jumbo Ethernet. quadri). I prugrammi chì utilizanu sockets AF_XDP ponu avà riceve è trasmette pacchetti da parechji buffer à una volta.
    • U supportu per a defragmentazione di i pacchetti IPv4 è IPv6, è ancu a capacità di filtrà i pacchetti frammentati, hè statu aghjuntu à u sottusistema BPF.
    • Un novu gestore, update_socket_protocol, hè statu aghjuntu à BPF per permette à i prugrammi BPF di cambià u protocolu dumandatu per novi sockets. Per esempiu, un prugramma BPF pò rimpiazzà trasparentemente TCP cù MPTCP (multipath TCP) per ottimisà u trafficu di l'applicazioni. BPF aghjunghjenu ancu supportu per u cuntrollu di u routing di pacchetti attraversu diversi flussi in MPTCP.
    • A bandiera di sviluppu sperimentale hè stata sguassata da u modulu ksmbd, chì offre una implementazione à livellu di kernel di un servitore di file basatu nantu à u protocolu SMB3. Aghjunghje supportu per cumminà operazioni di lettura ("leghje cumposti").
  • Equipment
    • I cambiamenti sò stati fatti à u subsistema DRM (Direct Rendering Manager) necessariu per l'operazione efficace di u driver NVK apertu cù l'implementazione di l'API grafica Vulkan per e carte video NVIDIA. U driver DRM di Nouveau hè statu inizialmente cuncepitu per implementà OpenGL, per quessa ùn manca i primitivi necessarii per i driver Vulkan per travaglià in modu efficace, cum'è u supportu per l'uggetti sincronizati è a gestione di l'indirizzu virtuale.
    • U driver AMDGPU supporta SDMA 6.1.0, HDP 6.1, SMUIO 14.0, PSP 14.0, IH 6.1 è GFX 9.4.3. U codice per a carica di u firmware PSP (Platform Security Processor) hè statu riformulatu. Supportu allargatu per a tecnulugia di sincronizazione adattativa FreeSync (supportu aghjuntu per Freesync Panel Replay V2).
    • U driver i915 cuntinueghja à sustene i chips Intel Meteor Lake. Supportu migliuratu per a tecnulugia di prutezzione di copia HDCP (High-bandwidth Digital Content Protection). U codice per interagisce cù a visualizazione hè stata riformulata.
    • L'opzioni per disattivà a carica di u microcode in a fase di creazione - MICROCODE_INTEL è MICROCODE_AMD - sò state eliminate da Kconfig. U kernel hè avà sempre custruitu cù u codice di carica di microcode per i sistemi x86, ma a carica di u microcode attuale pò esse disattivata specificendu u paràmetru di kernel 'dis_ucode_ldr'.
    • A capacità di cuntrullà i dispositi audio cunnessi via u sottosistema IIO (Industrial I/O) hè stata aghjunta à u sottosistema audio.
    • Aggiuntu supportu per l'interfaccia audio Intel LunarLake, Intel ArrowLake è AMD ACP5x, Cirrus Logic CS42L43, Realtek RT1017 è codec TI TAS2781, è ancu Cirrus Logic CS35L56 è amplificatori winic aw88261. Supportu aghjuntu per AMD Van Gogh ASoC.
    • Aggiuntu u driver USB MIDI 2.0 Gadget chì emula l'interfaccia USB MIDI 2.0 ligata à u dispositivu rawmidi ALSA UMP.
    • Supportu aghjuntu per i controller Ethernet Broadcom ASP 2.0 è Marvell 88Q2XXX.
    • Aghjunghje supportu per i pannelli Visionox R66451, TDO TL050HDV35, KD070FHFID015, Inanbo T28CP45TN89 è EDT ET028013DMA, controller di visualizazione Loongson è controller di schermu Azoteq IQS7222D/IQS7210A/7211.
    • Supportu aghjuntu per ARM SoC Qualcomm SM4450 (Snapdragon 4 Gen 2), TI AM62P5, Intel Agilex5, Qualcomm ipq5018, AN400 (Amlogic T7)
    • Aghjunghje supportu per i schede ARM Samsung Galaxy Tab 3 8.0, FriendlyElec NanoPC T6, Amlogic A311D2, Khadas Vim4, Xiaomi SM7125, Facebook Yosemite 4, Orange Pi Zero 3, Radxa ROCK 4SE.

À u listessu tempu, a Fundazione di Software Liberu Latino-Americana hà furmatu una versione di u kernel completamente liberu 6.6 - Linux-libre 6.6-gnu, sguassatu di elementi di firmware è drivers chì cuntenenu cumpunenti non liberi o sezioni di codice, u scopu di quale hè limitatu. da u fabricatore. In a versione 6.6, u codice di pulizia blob in diversi drivers è sottosistemi hè statu aghjurnatu, per esempiu, in u TI gigabit RU ethernet, MediaTek 792x wifi, Cirrus Logic cs42l43 mfd, cs35l56 HD-audio è aw88261 SoC drivers. Pulite i nomi di blob in i fugliali dts per l'architettura Aarch64. Eliminate blobs in i novi driver ivpu, driver bluetooth, driver touch screen è codificatore / decodificatore Qualcomm Venus V4L2.

Source: opennet.ru

Add a comment