Dopo due mesi di sviluppo, Linus Torvalds ha presentato il rilascio del kernel Linux 7.3. Tra le modifiche più significative ci sono: un meccanismo di isolamento del filesystem basato su pseudo-filesystem failfs e sull'invocazione di sistema fchroot(), supporto per la creazione di pianificatori nidificati SCHED_EXT, gestori BPF per l'avvio di file eseguibili, flussi di dati alternativi in NTFS3, ottimizzazioni delle prestazioni di FUSE, Btrfs ed Ext4, supporto per Apple Time Machine in ksmbd, rimozione dei filesystem EFS e FreeVxFS, modalità di accesso diretto a dispositivi a blocchi, miglioramento nel trattamento della mancanza di memoria video, monitoraggio delle richieste della memoria del sistema guest tramite userfaultfd, compressione delle regole AppArmor, limitazione dell'accesso a AF_ALG, supporto per i chip Apple M3 Pro, Max e Ultra.
Nella nuova versione sono stati accettati 20260 aggiornamenti da 3171 sviluppatori, di cui 807 hanno inviato le proprie modifiche al kernel per la prima volta. La dimensione del patch è di 63 MB (le modifiche hanno interessato 14923 file, sono state aggiunte 943849 righe di codice,
sono state rimosse 297515 righe). Nella precedente versione c'erano 17833 aggiornamenti da 2766 sviluppatori e la dimensione del patch era di 68 MB. Circa il 44% di tutte le modifiche presentate in 7.3 riguardano i driver di dispositivo, circa il 12% delle modifiche sono relative all'aggiornamento del codice specifico per le architetture hardware, il 12% è legato allo stack di rete, il 5% ai filesystem e il 3% ai sottosistemi interni del kernel.
Le principali novità nel kernel 7.3 (1, 2, 3):
- Sottosistema di disco, input/output e file system
- È stata ottimizzata la performance del filesystem Btrfs. Per i dischi non SSD è stata rimossa una latenza superflua, che ha portato a un aumento di cinque volte della capacità di elaborazione per carichi che utilizzano attivamente la funzione fsync, come la registrazione dei log. In fsync è stata disabilitata l'individuazione degli spazi vuoti nei file con un gran numero di estensioni e senza spazi vuoti, il che ha accelerato l'esecuzione di alcuni test specifici di 5 volte.
Nell'analizzare i buffer non cachabili delle estensioni, la struttura xarray è stata sostituita con una lista LRU locale, portando a un aumento delle prestazioni di queste operazioni di 3 volte. Sono stati risolti i problemi di prestazioni quando si utilizza la modalità di input/output diretto, causati da regressioni nelle versioni precedenti del kernel. Sono state ridotte le attese durante la lettura anticipata delle estensioni, diminuendo così i costi generali per l'accesso di diversi compiti a aree sovrapposte.
- In Btrfs, support for the first version of the cache containing information about free space has been removed. File systems created on older systems need to be upgraded to the second version of the cache using the btrfstune utility; otherwise, they will operate more slowly. The mount option 'usebackuproot' has also been removed, and it should be replaced with 'rescue=usebackuproot'.
- In the Ext4 file system, the performance of parallel write operations has been improved during direct I/O, and the reservation of empty areas has been accelerated through the fallocate() call. A regression that reduced performance in buffered writes has been eliminated.
- In the Ext4 file system, the mount mode 'data=journal' has been classified as deprecated. Support for this mount option is planned to be discontinued in 2028. The 'data=journal' option includes full journaling mode, where not only metadata but also actual data is logged, ensuring high resilience in case of failures, but complicating code maintenance and significantly reducing performance compared to 'data=ordered' and 'data=writeback' modes.
- The EFS file system has been removed; it was used in early versions of the IRIX OS, became obsolete about 30 years ago, and has not been supported for over 20 years. For those who need access to EFS partitions, there are utilities that operate in user space.
- The FreeVxFS file system has been removed, which implemented the VERITAS VxFS format, used in SCO UnixWare in the 1990s and long since outdated.
- In the FUSE user-space file system creation mechanism, performance has increased and memory consumption has decreased when using the io_uring asynchronous I/O system. The speedup has been achieved by adding the ability to transfer buffer pools from user space to the kernel and eliminating unnecessary buffering (zero-copy) when the FUSE server accesses memory pages of the client process or page cache.
- For block devices, the RWF_DONTCACHE flag has been implemented, similar to the direct I/O mode.
(Direct I/O), utilizzabile nelle funzioni preadv2() e pwritev2() o nelle chiamate di lettura e scrittura tramite io_uring per accedere a un dispositivo a blocchi evitando la cache della pagina. Ad esempio, il flag può essere applicato nei database per operazioni a basso livello con dispositivi a blocchi. - Nel FS overlayfs è stata aggiunta la supporto per il mapping degli identificatori utente, utilizzato per associare file di un determinato utente in una partizione remota montata con un altro utente nel sistema attuale.
- Migliorata la supporto per il montaggio di più FS da un singolo dispositivo a blocchi.
- Nel driver ntfs3 è stata implementata una prima supporto per flussi di dati alternativi, condivisi tramite i due punti nel nome del file. Per creare un nuovo flusso alternativo si può utilizzare il comando 'touch file:stream', per la lettura 'cat file:stream', per la cancellazione 'rm file:stream', per elencare i flussi disponibili 'cat file:query_streams'.
- Nella nuova implementazione di NTFS (ntfsplus) in modalità sola lettura è stata aggiunta la supporto per la tecnologia di compressione trasparente dei file utilizzando filtri overlay WOF (Windows Overlay Filter).
- Nel server NFS è stata aggiunta la supporto per l'operazione CB_NOTIFY, che consente al client di memorizzare nella cache i metadata delle directory sul proprio lato, ricevendo notifiche sulle modifiche dal server.
- Nel FS F2FS è stata aggiunta la supporto per la cancellazione dinamica (senza smontare il FS) di partizioni da un pool condiviso con trasferimento automatico dei dati su altre partizioni e ritorno indietro (ad esempio, si può temporaneamente ritirare un'unità per altri scopi).
- Nell'XFS è stata aggiunta la supporto per il flag FALLOC_FL_WRITE_ZEROES nella chiamata di sistema fallocate(), che permette di riempire di zeri un intervallo specificato nel file, utilizzando un comando WRITE_ZERO supportato da alcuni dispositivi SSD, che esegue l'azzeramento senza operazioni di input/output.
- È stata ottimizzata la performance del filesystem Btrfs. Per i dischi non SSD è stata rimossa una latenza superflua, che ha portato a un aumento di cinque volte della capacità di elaborazione per carichi che utilizzano attivamente la funzione fsync, come la registrazione dei log. In fsync è stata disabilitata l'individuazione degli spazi vuoti nei file con un gran numero di estensioni e senza spazi vuoti, il che ha accelerato l'esecuzione di alcuni test specifici di 5 volte.
- Memoria e servizi di sistema
- Migliorata la gestione della carenza di memoria video. In situazioni di esaurimento della memoria video disponibile, il kernel ora cerca di spostare dalla memoria video alla memoria di sistema (GTT) i buffer delle applicazioni senza una quota di memoria garantita (dmem cgroup), piuttosto che rifiutare immediatamente l'allocazione della memoria video. Questo approccio garantisce l'allocazione delle risorse all'applicazione per la quale il sistema ha riservato una certa quantità di memoria video, anche se la memoria è già allocata ad altre applicazioni. In precedenza, se un'applicazione senza quote aveva già ottenuto memoria video, in situazioni di carenza di memoria video l'applicazione con quote garantite non poteva ottenerla, e invece della memoria video attraverso il sottosistema TTM (Translation Table Maps), veniva allocata all'applicazione una memoria di sistema più lenta, indirizzata dalla GPU (GTT).
Il supporto per dmem cgroup è stato implementato per i driver nouveau, xe e amdgpu. - Nella meccanismo SCHED_EXT, che consente di utilizzare BPF per creare scheduler CPU, è stata completata la lavorazione sulla possibilità di creare scheduler annidati (sub-scheduler), attraverso i quali è possibile attivare un proprio scheduler di task per ogni cgroup.
- Sono stati apportati miglioramenti allo scheduler dei task riguardanti la gestione di cgroup e la risoluzione di problemi di distribuzione dei pesi, che causavano spese generali e ritardi aggiuntivi. Sono stati proposti diversi metodi di distribuzione dei pesi per i cgroup - 'up', 'max', 'concur' e 'tasks', impostati tramite il parametro cgroup_mode. È stata attivata una coda di esecuzione unica (runqueue) per la pianificazione dei task all'interno dei cgroup. Sono stati ridotti i ritardi nella pianificazione dei task che ricevono brevi quanti di tempo della CPU, grazie alla
possibilità di annullare, aggiornare o minimizzare il tempo di esecuzione dei task, protetti da espulsioni, se necessario. - Nella meccanismo binfmt_misc (/proc/sys/fs/binfmt_misc) è stata implementata
possibilità di collegare gestori BPF per aggiungere il supporto a nuovi formati di file eseguibili. La modifica consente di analizzare programmaticamente il tipo di file eseguibile al momento di ogni avvio e di selezionare il relativo interprete o caricatore dinamico senza hack come l'uso dell'utilità patchelf e di script. Ad esempio, in un programma BPF è possibile definire file eseguibili per architetture o piattaforme diverse e avviare i relativi emulatori o Wine, semplificando anche l'organizzazione dell'avvio di file eseguibili in pacchetti installati in diverse directory in sistemi con gestore di pacchetti Nix. - Continuato il trasferimento di modifiche dal branch Rust-for-Linux, riguardanti l'uso del linguaggio Rust come secondo linguaggio per lo sviluppo di driver e moduli del kernel (il supporto di Rust non è attivo per impostazione predefinita e non porta all'inclusione di Rust tra le dipendenze di compilazione obbligatorie del kernel). È stata introdotta la possibilità di utilizzare Rust per l'architettura PowerPC. Implementati: modulo per le trasformazioni intere senza perdite, modalità di logging offuscato dei valori dei puntatori per prevenire la fuga di informazioni sullo spazio degli indirizzi, un involucro sopra la funzione synchronize_rcu(), barriere di memoria, modulo interrupt per attivare/disattivare le interruzioni, tipi per input/output, involture sopra fwctl, meccanismo SRCU (sleepable read-copy-update), involture sopra gem shmem.
blocchi spinlock SpinLockIrq, che non consentono interruzioni nelle sezioni critiche. - Aggiunto il parametro sysctl syscall_user_dispatch per controllare l'attivazione della modalità di dispatch degli eventi di sistema nello spazio utente, che consente a un processo di intercettare le chiamate di sistema di un altro processo (utilizzato in Wine per emulare le chiamate di sistema di Windows).
- In BPF è stata aggiunta la funzione bpf_sock_read_xattr(), tramite la quale i programmi BPF possono leggere gli attributi estesi impostati dagli utenti.
(user.*) dall'inode dei socket. Negli applicativi BPF è diventata possibile la definizione di variabili globali collegate alla CPU. Nel verificatore dei programmi BPF è stata fornita un'informazione aggiuntiva sugli errori individuati, semplificando l'identificazione delle cause di problemi. - Nei meccanismi di tracciamento kprobes, uprobes e fprobes è stata implementata la supporto per il casting dei tipi, utilizzando i dati BTF (BPF Type Format) con informazioni per la verifica dei tipi nel pseudocodice BPF, e migliorata l'estrazione delle informazioni sulle variabili.
- Nel sottosistema DAMON (Data Access MONitor), che consente di monitorare l'accesso del processo ai dati in memoria (ad esempio, si può scoprire a quali aree di memoria ha fatto riferimento il processo e quali aree di memoria sono rimaste inutilizzate), è stata aggiunta la possibilità di monitorare le modifiche degli attributi dei dati (memoria anonima, file mappati in memoria, accesso solo in lettura, assenza di accessi alla memoria, ecc.).
- Nel meccanismo KHO (Kexec HandOver), utilizzato per avviare un nuovo kernel da uno vecchio senza perdere lo stato del sistema, è stato garantito il riconoscimento dell'allocazione di grandi pagine di memoria (huge pages) durante il boot. Tali pagine di memoria ora vengono contrassegnate e salvate dopo l'avvio del nuovo kernel.
- Il codice a basso livello del sistema di swap è stato trasferito a una nuova struttura dati a basso livello swap_ops, che ha semplificato la manutenzione del codice e realizzato le astrazioni necessarie per l'espansione delle funzionalità in futuro.
- Sono stati aggiunti i comandi ioctl ALLOCINFO_IOC_CONTENT_ID, ALLOCINFO_IOC_GET_AT e ALLOCINFO_IOC_GET_NEXT, che consentono di trasferire selettivamente nello spazio utente i dati di profilazione dell'allocazione della memoria. Rispetto all'interfaccia precedentemente disponibile /proc/allocinfo, le chiamate ioctl proposte consentono di migliorare le prestazioni delle richieste di profilazione fino a 20 volte grazie al filtraggio dei dati superflui.
- Migliorata la gestione della carenza di memoria video. In situazioni di esaurimento della memoria video disponibile, il kernel ora cerca di spostare dalla memoria video alla memoria di sistema (GTT) i buffer delle applicazioni senza una quota di memoria garantita (dmem cgroup), piuttosto che rifiutare immediatamente l'allocazione della memoria video. Questo approccio garantisce l'allocazione delle risorse all'applicazione per la quale il sistema ha riservato una certa quantità di memoria video, anche se la memoria è già allocata ad altre applicazioni. In precedenza, se un'applicazione senza quote aveva già ottenuto memoria video, in situazioni di carenza di memoria video l'applicazione con quote garantite non poteva ottenerla, e invece della memoria video attraverso il sottosistema TTM (Translation Table Maps), veniva allocata all'applicazione una memoria di sistema più lenta, indirizzata dalla GPU (GTT).
- Virtualizzazione e sicurezza
- È stato proposto un nuovo meccanismo di isolamento che blocca l'accesso al contenuto dei file system, ad eccezione delle risorse esplicitamente trasferite all'ambiente sandbox attraverso i descrittori di file. Il meccanismo è stato realizzato tramite il pseudo-filesystem failfs e la chiamata di sistema fchroot.
Il pseudo-FS failfs ricorda il FS nullfs, ma a differenza di quest'ultimo implementa il principio "niente è supportato" invece di "niente è memorizzato". Questa caratteristica impedisce di montare qualsiasi cosa sopra failfs, clonare il FS e monitorare lo stato tramite statmount(), listmount(), /proc//mountinfo e /proc/filesystems. Se la directory radice o di lavoro del processo si trova in failfs, vengono bloccati qualsiasi tentativi di navigazione nel FS utilizzando percorsi di file assoluti, collegamenti simbolici e percorsi relativi che dipendono dalla directory di lavoro corrente. Il processo ha solo la possibilità di accedere a una specifica directory tramite i descrittori di file aperti prima dell'isolamento.
Per passare a una nuova modalità di isolamento è stata aggiunta la chiamata di sistema fchroot, simile alla chiamata di sistema chroot, ma che funziona a livello di descrittori di file. Alla chiamata di sistema fchdir è stato aggiunto il flag FD_FAILFS_ROOT per spostare la directory di lavoro del processo nel FS failfs.
Un flag analogo è disponibile nella chiamata di sistema fchroot. - È stata aggiunta la possibilità di monitorare gli accessi alla memoria del sistema ospite tramite il meccanismo userfaultfd, che consente di creare gestori per gli accessi a pagine di memoria non allocate o protette nello spazio utente. In pratica, questa funzionalità proposta consente all'iperintendente di determinare le pagine di memoria a cui non è stato fatto riferimento nella macchina virtuale, per espellerle in una memoria più lenta o in uno storage esterno. Per monitorare le violazioni del divieto di lettura e scrittura nella zona di memoria monitorata è stato aggiunto il flag UFFDIO_REGISTER_MODE_RWP, che può essere utilizzato come un'alternativa ad alte prestazioni all'applicazione di mprotect(PROT_NONE) insieme a un gestore di segnali generato quando si accede alla memoria per cui è stato imposto il divieto di lettura e scrittura (nel caso di userfaultfd, viene generata un'eccezione gestita nello spazio utente). La modifica è stata preparata con l'AI ("Assisted-by: Claude:claude-opus-4-6").
- È stato rafforzato il divario tra i thread del kernel (kthread) e il processo init (PID 1). In precedenza, i thread del kernel e il PID 1 condividevano lo stato generale del file system.
questo ha permesso, attraverso la chiamata pivot_root(), di ridefinire lo stato del filesystem per tutti i thread del kernel. Nella nuova versione, nel PID 1 è coinvolta una struttura fs_struct completamente separata, e i thread del kernel sono isolati in un punto di montaggio separato con nullfs. - Nella libreria crittografica integrata (libcrypto) è stata aggiunta la supporto per i modi di crittografia AES — ECB, CBC, CBC-CTS, CTR, XCTR, XTS, GCM e CCM.
- Nel sistema di gestione degli accessi a mandato AppArmor è stata implementata la possibilità di caricare set di regole compressi e aggiunto il modo di auditing.
- Aggiunto il parametro sysctl af_alg_restrict, che gestisce l’abilitazione dell'accesso all’API crittografica AF_ALG dallo spazio utente. AF_ALG consente di utilizzare acceleratori hardware per calcoli crittografici nell'API crittografica del kernel, ma è applicato in situazioni piuttosto specifiche e non sempre offre un guadagno di prestazioni rispetto all'implementazione dell'accelerazione nello spazio utente. In questo contesto, nei gestori correlati ad AF_ALG è stata rilevata una serie di vulnerabilità, come Copy Fail, che consentono di modificare i dati nella cache delle pagine. Per ridurre la superficie di attacco, l'accesso a AF_ALG è parzialmente limitato per impostazione predefinita. Si sta considerando la possibilità di rimuovere AF_ALG in una delle future versioni.
- Rafforzata la verifica dei programmi BPF firmati digitalmente. Aggiunta una verifica dell'integrità dei metadati del programma BPF prima del suo caricamento.
- Nel sistema di chiamata landlock_restrict_self(), utilizzato per attivare i blocchi Landlock, è stato aggiunto un flag
LANDLOCK_RESTRICT_SELF_NO_NEW_PRIVS, che vieta al processo corrente di ottenere nuovi privilegi. Il meccanismo Landlock consente a programmi non privilegiati di rinunciare ai privilegi non necessari per il loro funzionamento, limitando volontariamente il proprio accesso futuro al sistema per migliorare la sicurezza, ad esempio per proteggersi in caso di tentativi di sfruttamento di vulnerabilità nel programma. - Nel driver VirtIO-GPU, che supporta il funzionamento di una GPU virtuale, è stata aggiunta la supporto per la modalità sospensione S4 (ibernazione).
- È stato proposto un nuovo meccanismo di isolamento che blocca l'accesso al contenuto dei file system, ad eccezione delle risorse esplicitamente trasferite all'ambiente sandbox attraverso i descrittori di file. Il meccanismo è stato realizzato tramite il pseudo-filesystem failfs e la chiamata di sistema fchroot.
- Sottosistema di rete
- Nel ksmbd, integrato nel kernel del server per il protocollo SMB, è stata aggiunta la supporto per le estensioni Apple Time Machine per il salvataggio di backup creati in macOS tramite questa applicazione. È stato implementato un meccanismo di isolamento delle sequenze di comandi SMB legato a MessageId per bloccare attacchi tramite l'invio di richieste non valide o duplicate. È stata aggiunta la supporto per l'invio di richieste ripetute tramite il protocollo SMB3 senza compromettere lo stato della sessione, nel caso in cui la richiesta precedente fosse stata persa. In SMB3 è stata implementata la possibilità di crittografia a livello di singole condivisioni. È stata aggiunta la supporto per la crittografia del canale di comunicazione SMB Direct, che utilizza la tecnologia RDMA (Remote Direct Memory Access).
- È stata implementata la possibilità di utilizzare pacchetti TCP con l'estensione BIG TCP, che consente di aumentare la dimensione massima del pacchetto TCP fino a 4 GB, nei tunnel UDP basati sui protocolli VXLAN e GENEVE.
- È stata aggiunta la supporto per il protocollo MCTP (Management Component Transport Protocol) su USB (MCTP-over-USB 1.1).
- È stata fornita la possibilità di disattivare (unregistration) dispositivi di rete (netkit, veth, vxcan, bareudp, geneve, ipvlan, macvlan, ecc.) per gli spazi dei nomi selezionati.
- Per Bluetooth 6.2+ è stata implementata la supporto per il meccanismo SCI (Shorter Connection Interval) per ridurre le latenze nella trasmissione dei dati in modalità Bluetooth LE (Low Energy).
- Nell'API nl80211 è stato aggiunto un meccanismo unificato (NL80211_CMD_PROBE_PEER) per verificare i peer connessi, funzionante sia nei punti di accesso wireless che dalla parte del client.
- Apparecchiatura
- Sono state dichiarate obsolète e programmate per la rimozione nel kernel 7.5 vecchie piattaforme ARM, che sono quasi inutilizzate e ostacolano la manutenzione delle sottosistemi attuali. Si prevede di rimuovere circa 55.000 righe di codice relative al supporto delle piattaforme sa1100, omap24xx, i.MX31, samv7, lpc18xx, riscpc, axxia, footbridge, vecchie schede pxa, orion, dove e mv78xx0, chip senza unità di gestione della memoria (MMU) e microcontrollori stm32f4/f7/h7.
- È stata aggiunta la supporto iniziale per i chip Apple M3 Pro, Max e Ultra. È stato implementato il controllo dello stato di consumo energetico per SoC Apple.
- Nel sottosistema DRM (Direct Rendering Manager) è stata aggiunta la proprietà «color format», che consente all'utente di cambiare il formato di rappresentazione del colore per il dispositivo di output. La proprietà è stata implementata per i driver GPU i915 (HDMI, DP), amdgpu (HDMI, DP) e rockchip (HDMI). Per i test si può usare un comando del tipo «modetest -s 115:1920×1080-60@NV12 -w 115:’color format’:4», dove 115 è l'identificatore del connettore e ‘4’ è il numero del formato YUV420.
- Nel driver amdgpu è stata aggiunta la supporto per i modificatori DRM per le GPU AMD delle serie GFX6-8 (Southern Islands, Sea Islands e Volcanic Islands). È stato implementato il supporto iniziale per DCN 6.0.0 (Display Core Next). È stata effettuata una pulizia del codice obsoleto.
È stata attivata la supporto per CACP (Content Adaptive Contrast and Power), consentendo di ridurre il consumo energetico dei pannelli OLED. Per i motori di visualizzazione basati sull'architettura DCN4 è stata attivata la supporto per il meccanismo IPS (Idle Power State) per ridurre il consumo durante l'inattività. È stato aggiunto il supporto per le schede grafiche AMD Barco. - Nel driver i915, il codice per la determinazione delle capacità e il ripristino dello stato dei connettori DisplayPort è stato rielaborato. Per le GPU Novalake (NVL) è stato aggiunto il supporto per CMTG (Common mode timing generator) e DC3DO (Display C3 with Clock Off).
- Sono proseguiti i lavori sul driver drm (Direct Rendering Manager) Xe per le GPU basate sull'architettura Intel Xe, utilizzate nelle schede grafiche Intel della famiglia Arc e nella grafica integrata, a partire dai processori Tiger Lake. Sono stati aggiunti nuovi identificatori di dispositivi supportati. In configfs è stato implementato l'attributo ‘enable_multi_queue’ per disabilitare l'uso simultaneo di più code di comando. È stato migliorato il supporto per il passaggio alla modalità standby.
- È continuata l'integrazione dei componenti del driver Nova per le GPU NVIDIA dotate di firmware GSP, utilizzate a partire dalla serie NVIDIA GeForce RTX 2000 basata sull'architettura Turing. Il driver è stato scritto in Rust. Nella nuova versione è avvenuto il passaggio a nuove immagini di firmware TLV, al posto delle vecchie varianti utilizzate nel driver Nouveau. È stato aggiunto il supporto
per l'esecuzione del firmware per il chip GSP (GPU System Processor) con vGPU abilitato. È stata aggiunta un'API per ottenere informazioni sulla dimensione della memoria video. - Nel driver Tyr, scritto in Rust e che gestisce le GPU ARM Mali, è stata aggiunta la possibilità di caricare firmware in formato Mali CSF, di attivare la memoria virtuale della GPU e di avviare l'MCU.
- Nel driver msm è stata aggiunta la supporto per le GPU Adreno Shikra (A704) e Eliza (722).
- È stato aggiunto il supporto per dispositivi audio e ASoC: Pioneer DJ DJM-S11,
AW88399 (Lenovo Legion Pro), AW88399 (Lenovo Legion), Lisuan, ALC235, RME HDSPe AIO, RT766/RT767 SDCA, Maili, Hawi, CS35L62 (SoundWire), RT766/RT767 VA1. - È stato aggiunto il supporto per il Steam Controller (modello 2026); i mouse Logitech G502 X Plus e G502 X Lightspeed; le tastiere Endorfy Thock TKL, Zenbook A16; le cuffie Nova 5X, Nova 7 e Arctis 7; il volante da gioco Turtle Beach VelocityOne Race; il gamepad MSI Claw.
- È stato migliorato il supporto audio sui dispositivi ASUS VivoBook M515DA/X515DAP.
LG gram 16 (16Z90TR), Minisforum AI X1 Pro, HP Pavilion 15-eh2xxx, HP Laptop 15-dy0xxx e HP Spectre x360 16-aa0xxx, HP EliteBook 6 G1, HP OmniBook X Flip 14, Lenovo Yoga Pro 7, Huawei Matebook,
ThinkPad X1 Carbon 6ª generazione, HP ProBook 440 G5, Acer Aspire A515-57. - È stato aggiunto il supporto per smartphone, tablet e laptop: Motorola Edge 30, Motorola Moto G2, Xiaomi 12 Lite 5G, Microsoft Surface Pro, Honor MagicBook art 1412in, Sony Xperia M2, Vicharak Axon, Axon Mini e Vaaman2, Asus Zenbook A16, Lenovo Thinkedge se70.
- È stato aggiunto il supporto per piattaforme ARM e SoC Samsung Exynos 1580 (utilizzato negli smartphone di fascia alta dal 2024), Orange Pi 5 pro, Sophgo SG2000 (ibrido Arm/RISC-V), BeagleBadge, Qualcomm "Shikra" e "Altera" (Cortex-A78C), Agilex72 (Cortex-A720), Alientek ATK-DLRV1126, Variscite SoC DART-MX8M-PLUS, DART-MX8M-MINI, VAR-SOM-MX8QM e schede Sonata/Symphony basate su di esse, 9Tripod X3568 v4, Youyeetoo YY3588, milk-v duo, ArmSoM CM5, Freescale Verdin iMX8M Mini, Anbernic rg vita-pro, Embedfire lubancat 4, Vicharak Vaaman, LincStation E1, HINLINK H28K.
Contemporaneamente, il Fondo Latinoamericano per il Software Libero ha formato
una versione completamente libera del kernel 7.3 — Linux-libre 7.3-gnu, ripulita da elementi di firmware e driver contenenti componenti non liberi o sezioni di codice la cui area di applicazione è limitata dal produttore. Nella versione 7.3 è stata effettuata una pulizia dai blob dei nuovi driver per GPU Mali Tyr, Morse Micro mm81x wi-fi, NXP wi-fi e schede di rete con chip Realtek. Il codice di pulizia nei driver nova-core, amdgpu, adreno, tegra, iris, rtw89 e mt76 wifi, Qualcomm Q6V5 PAS, qla2xxx scsi e codec audio aw88399 è stato aggiornato. Sono stati puliti i nomi dei blob nei file dts (devicetree) per i chip ARM Qualcomm.
Fonte: opennet.ru
