Il kernel Linux 6.13 è stato ufficialmente rilasciato ieri 19 gennaio 2025, portando con sé una serie di nuove funzionalità e miglioramenti significativi.
Questa versione del kernel Linux introduce un’importante novità: il supporto per l’esecuzione del kernel Linux in macchine virtuali protette, conosciute anche come “realm”. Queste macchine virtuali operano all’interno dell’architettura Arm CCA (Confidential Compute Architecture), progettata per garantire un elevato livello di sicurezza. L’architettura Arm CCA permette di isolare i dati e le operazioni sensibili, proteggendoli da potenziali minacce e attacchi informatici. Questo sviluppo rappresenta un progresso significativo nella sicurezza informatica e grazie a questa innovazione, gli utenti possono beneficiare di un ambiente più sicuro e controllato, fondamentale per applicazioni che richiedono un elevato grado di riservatezza e integrità delle informazioni
Caratteristiche principali del Kernel Linux 6.13
Tra i punti salienti di questa versione ci sono:
- Supporto per la preemption differita: La preemption, in termini semplici, si riferisce alla capacità del sistema operativo di interrompere un processo in esecuzione per dare priorità ad un altro processo più urgente. Con la preemption differita, il kernel Linux semplifica questa logica, ritardando le richieste di interruzione fino a un momento più opportuno. Questo approccio consente una gestione più efficiente delle operazioni in background, poiché riduce il numero di interruzioni e migliora l’uso delle risorse di sistema. Di conseguenza, le applicazioni possono funzionare in modo più regolare e reattivo, garantendo al contempo una migliore stabilità e prestazioni complessive del sistema.
- Shadow stack per lo spazio utente: Implementato per l’architettura AArch64 (ARM64) attraverso il Guarded Control Stack (GCS), questo sistema migliora significativamente la sicurezza delle applicazioni. Il Guarded Control Stack è una tecnologia progettata per proteggere gli indirizzi di ritorno delle funzioni, rendendo più difficile per gli attaccanti eseguire attacchi di tipo Return-Oriented Programming (ROP). Questi attacchi mirano a sfruttare il flusso di controllo di un programma, manipolando gli indirizzi di ritorno per eseguire codice malevolo. Con l’attivazione del GCS, viene mantenuta un secondo stack, protetto da specifiche operazioni hardware, che consente di gestire in modo sicuro gli indirizzi di ritorno. Quando una funzione viene chiamata, l’indirizzo di ritorno viene memorizzato nel GCS; al termine della funzione, questo valore viene confrontato con quello atteso, generando un errore se non corrisponde. Questa protezione hardware non solo rende più difficile l’esecuzione di attacchi, ma facilita anche la raccolta delle informazioni sulle chiamate delle funzioni, utile per attività di profiling e debugging. In questo modo, il GCS rappresenta un passo avanti significativo nella protezione delle applicazioni e nella sicurezza complessiva dei sistemi basati su architettura ARM64.
- Clustering sub-NUMA su Intel: Rappresenta una funzionalità avanzata che consente di suddividere i core della CPU, la cache L3 e la memoria in più domini NUMA (Non-Uniform Memory Access). Questa suddivisione è progettata per ottimizzare l’uso della memoria nei sistemi Intel, migliorando le prestazioni delle applicazioni che sono consapevoli della struttura NUMA. In un sistema tradizionale, la memoria è accessibile in modo uniforme da tutti i core, ma con il clustering sub-NUMA, ogni gruppo di core può accedere a una porzione specifica di memoria, riducendo la latenza e aumentando la larghezza di banda. Questa tecnologia è particolarmente vantaggiosa per carichi di lavoro ad alte prestazioni, come quelli utilizzati nel calcolo scientifico e nelle applicazioni server, dove le prestazioni e l’efficienza nella gestione della memoria sono cruciali. Con il supporto per un clustering su 6 nodi, i sistemi Intel possono gestire in modo più efficace la distribuzione delle risorse, consentendo alle applicazioni di sfruttare al meglio le capacità hardware disponibili. Questo approccio non solo migliora l’efficienza operativa, ma contribuisce anche a una maggiore stabilità del sistema, poiché riduce la contesa per l’accesso alla memoria tra i vari core.
- Rilevamento dei split-lock: Il rilevamento dei split-lock è una funzionalità ora supportata sui processori AMD, che contribuisce a migliorare le prestazioni complessive del sistema. Gli split-lock si verificano quando un’operazione atomica accede a una porzione di memoria che si estende su 2 cache line, tipicamente a causa di un accesso alla memoria non allineato. Questo tipo di accesso può causare un rallentamento significativo non solo per il processo che lo esegue, ma per l’intero sistema, poiché il processore deve acquisire un lock globale sul bus di memoria per garantire la coerenza dei dati. Con l’introduzione del rilevamento degli split-lock, il kernel Linux può ora gestire meglio queste situazioni problematiche. Quando viene rilevato un split-lock, il sistema può inviare un segnale di errore al processo interessato, consentendo al kernel Linux di intervenire e prevenire potenziali problemi di prestazioni o persino attacchi di denial-of-service. Questa funzionalità è particolarmente utile in ambienti virtualizzati, dove più macchine virtuali possono condividere le stesse risorse hardware. In questo contesto, il rilevamento dei split-lock aiuta a mantenere l’efficienza operativa e la stabilità del sistema, garantendo che le applicazioni possano funzionare senza interruzioni significative dovute a conflitti di accesso alla memoria. Grazie a questa implementazione, i processori AMD possono ora competere più efficacemente con le soluzioni Intel in termini di gestione delle operazioni di memoria e prestazioni generali.
Ottimizzazioni e Nuove Funzionalità
Il kernel Linux 6.13 rende anche il driver amd-pstate
per la gestione della frequenza della CPU il default su alcuni dei più recenti processori AMD Epyc. Inoltre, introduce soglie termiche che possono essere aggiunte o rimosse dallo spazio utente tramite netlink, insieme a un aggiornamento della libreria correlata.
Un’altra novità significativa è l’introduzione di un nuovo meccanismo nell’API verso lo spazio utente (uAPI), che consente di notificare lo spazio utente riguardo ai cambiamenti attivati da utenti interni al kernel Linux. Questo meccanismo è fondamentale perché permette al kernel Linux di comunicare in modo più efficace con le applicazioni in esecuzione, informandole di eventi o modifiche che potrebbero influenzare il loro funzionamento. Ad esempio, quando un’applicazione richiede una risorsa o subisce un cambiamento di stato, il kernel Linux può inviare una notifica per avvisarla di tali variazioni. Questa comunicazione diretta migliora la reattività delle applicazioni, consentendo loro di adattarsi rapidamente alle nuove condizioni senza dover effettuare polling continuo per verificare eventuali aggiornamenti. Inoltre, il nuovo meccanismo contribuisce a una gestione più efficiente delle risorse, poiché riduce il carico sul sistema e ottimizza l’interazione tra il kernel Linux e le applicazioni. In sostanza, questa funzionalità rappresenta un passo avanti verso un’architettura più reattiva e dinamica, migliorando l’esperienza complessiva degli utenti e le prestazioni delle applicazioni su sistemi basati sul kernel Linux
Supporto Hardware e Driver Aggiornati
Questa versione porta con sé un miglioramento significativo nel supporto hardware, con nuovi driver e aggiornamenti per una varietà di dispositivi. Tra questi troviamo:
- Tablet Vexia EDU ATLA 10 e Surface Pro 9 5G
- Chipset GPU Adreno A663
- Chip audio RealTek RT721
- Controller I3C AMD
- Allwinner H616
- AMD ACP 6.3
- Qualcomm SM8750
- Touchscreen NT36672A
- Dispositivi di rete NVIDIA Mellanox “MLX5”
Inoltre, è stato introdotto un nuovo driver virtual-cpufreq
per migliorare le prestazioni delle macchine virtuali.
Miglioramenti nel Networking e nel Filesystem
Il kernel Linux 6.13 apporta modifiche significative anche nel networking, convertendo il lock RTNL (Routing Netlink) in un lock per ogni namespace di rete, riducendo così la contesa nei carichi di lavoro pesanti in termini di namespace. Viene implementato anche un nuovo meccanismo chiamato “IRQ suspension”, che sospende le richieste di interruzione (IRQ) durante i periodi di intensa attività delle applicazioni.
Per quanto riguarda i filesystem, il filesystem F2FS ha recentemente ricevuto una nuova funzionalità che consente l’aliasing dei dispositivi. Questa innovazione permette di gestire in modo più flessibile le partizioni, consentendo agli utenti di riconfigurare lo spazio di archiviazione senza dover eliminare fisicamente i file associati. In questo modo, è possibile ottimizzare l’uso dello spazio disponibile, migliorando l’efficienza nella gestione dei dati.
Nel contesto del filesystem XFS, è stata introdotta la possibilità di eseguire operazioni di scrittura atomiche. Le operazioni di scrittura atomiche garantiscono che i dati vengano scritti in modo completo o non vengano scritti affatto, evitando situazioni di inconsistenza nei dati in caso di crash o interruzioni improvvise. Questa funzionalità è particolarmente utile per applicazioni che richiedono elevati livelli di integrità dei dati, come database e sistemi di gestione dei contenuti.
Inoltre, il filesystem FUSE (Filesystem in Userspace) ha visto miglioramenti significativi nelle conversioni da pagina a folio (un’unità di memoria più grande che può contenere più pagine), una tecnica che consente una gestione più efficiente della memoria. Questo processo ottimizza l’allocazione della memoria, riducendo il sovraccarico e migliorando le prestazioni complessive del sistema. FUSE ha anche introdotto la possibilità di configurare la dimensione massima delle richieste tramite sysctl
, offrendo agli amministratori maggiore controllo su come vengono gestite le operazioni di I/O nel filesystem. Queste migliorie contribuiscono a rendere i filesystem GNU/Linux più robusti e performanti, soddisfacendo le esigenze crescenti degli utenti e delle applicazioni moderne.
Prestazioni e Sicurezza
Il filesystem EXT4 ha beneficiato di numerosi aggiornamenti, tra cui la risoluzione di bug e operazioni di pulizia generale, che hanno contribuito a migliorarne l’affidabilità e le prestazioni. Queste correzioni sono fondamentali per garantire un funzionamento sicuro e stabile del filesystem, riducendo il rischio di errori e malfunzionamenti che potrebbero compromettere l’integrità dei dati.
D’altra parte, il filesystem Btrfs ha registrato un significativo incremento delle prestazioni grazie a ottimizzazioni mirate che riducono la contesa dei lock durante la traversata dei buffer di estensione. La contesa dei lock si verifica quando più processi tentano di accedere simultaneamente alle stesse risorse, causando ritardi e rallentamenti. Con queste ottimizzazioni, Btrfs è in grado di gestire meglio le operazioni concorrenti, migliorando l’efficienza complessiva del sistema e rendendo le operazioni di lettura e scrittura più rapide.
Anche il filesystem exFAT ha subito ottimizzazioni significative, aumentando la sua efficienza e affidabilità. exFAT è particolarmente utilizzato per dispositivi di archiviazione rimovibili come chiavette USB e schede SD, dove la compatibilità con diversi sistemi operativi è fondamentale. Le migliorie apportate a exFAT ne rafforzano la funzionalità.
In termini di sicurezza e prestazioni, il kernel Linux 6.13 introduce capacità di calcolo in tempo reale per l’architettura LoongArch.
Inoltre, il kernel Linux 6.13 offre supporto per il mascheramento dei puntatori nello spazio utente. Questo meccanismo di sicurezza è progettato per proteggere le applicazioni da attacchi che tentano di sfruttare vulnerabilità legate all’uso improprio dei puntatori, che sono variabili che memorizzano indirizzi di memoria. Il mascheramento dei puntatori rende più difficile per un attaccante accedere a dati sensibili o compromettere la sicurezza del sistema, migliorando così la protezione complessiva delle applicazioni in esecuzione.
Disponibilità del kernel Linux 6.13
Il kernel Linux 6.13 è disponibile per il download dal repository software git di Linus Torvalds o dal sito kernel.org. Si consiglia tuttavia di attendere che la nuova versione venga inclusa nei repository software stabili della propria distribuzione GNU/Linux prima di procedere all’aggiornamento.
Con il rilascio del kernel Linux 6.13, si apre ora la finestra di merge (operazioni di inclusioni) della prossima grande versione del kernel Linux, il kernel Linux 6.14, previsto per la fine di marzo 2025. Un primo candidato alla versione (RC) sarà disponibile per test pubblici tra 2 settimane, il 2 febbraio 2025.
Fonte: https://kernel.org/
Fonte: https://www.phoronix.com/news/Linux-6.13-Released
Fonte: https://www.omgubuntu.co.uk/2025/01/linux-kernel-6-13-release-features
Fonte: https://news.itsfoss.com/linux-kernel-6-13/
Fonte: https://9to5linux.com/linux-kernel-6-13-officially-released-this-is-whats-new
Source: Read More