Il kernel Linux ha tagliato un traguardo che fino a qualche anno fa sembrava lontano: con Linux 7.2 si superano i 43 milioni di righe complessive. Un numero che racconta meglio di tante parole quanto sia diventato grande e articolato il progetto open source più diffuso al mondo, quello che fa girare server, supercomputer, dispositivi embedded e buona parte dell’infrastruttura cloud su cui poggia oggi internet.
Ma attenzione a leggere questa crescita solo in chiave numerica. Dietro quelle righe ci sono nuove architetture hardware, driver aggiornati, interventi mirati sulla sicurezza e parecchie ottimizzazioni sul fronte prestazioni. L’analisi fatta con l’utility cloc lo conferma: il repository continua a gonfiarsi anche mentre gli sviluppatori, in parallelo, fanno pulizia eliminando codice ormai vecchio. Una pratica che nel progetto va avanti da anni.
Non solo righe di codice, cresce anche il repository
Le statistiche parlano chiaro. Il repository Git di Linux 7.2 arriva a 43.898.743 righe totali, di cui 33.653.681 di codice effettivo, 5.211.184 vuote e 5.033.878 di commenti. Rispetto alla versione 7.1 l’incremento ha superato il milione di righe in un solo ciclo di sviluppo, una cifra notevole se si pensa che parliamo di un periodo relativamente breve. Il tutto distribuito su oltre 108.000 file, a dare l’idea della complessità di un progetto che mette insieme il lavoro di migliaia di sviluppatori sparsi tra aziende, università e comunità open source di mezzo mondo.
Il pezzo più ingombrante dell’intero kernel resta la directory dei driver grafici AMD: AMDGPU e AMDKFD messi insieme sfondano i 6,35 milioni di righe. A spingere questa crescita c’è il supporto alle nuove generazioni di GPU, con funzionalità pensate per la gestione energetica, l’accelerazione del calcolo e il processing video. Va detto, però, che una bella fetta di questo codice è fatta di definizioni hardware, registri e tabelle generate in automatico. Non logica algoritmica complicata, insomma.
Pulizia e novità camminano insieme
Uno degli aspetti più interessanti di questo ciclo riguarda proprio il doppio binario su cui si muove il progetto: manutenzione e innovazione che procedono di pari passo. Gli sviluppatori hanno tolto di mezzo driver mai più aggiornati, componenti legati a hardware ormai datato e porzioni di codice riferite a piattaforme vecchie. Tra queste, il progressivo addio al supporto per Intel i486, un nome che farà sorridere chi mastica la storia dell’informatica.
A bilanciare il codice rimosso arrivano funzionalità concrete: aggiornamenti dell’infrastruttura Rust, ottimizzazioni sulla gestione della memoria, novità per il sottosistema grafico e altri interventi sulla sicurezza degli strumenti di profiling e dei componenti crittografici. Insomma, mentre da una parte si butta, dall’altra si costruisce.
Un ecosistema hardware sterminato da supportare
Le dimensioni del kernel, in fondo, sono la conseguenza diretta della varietà dell’hardware moderno. Linux deve funzionare su processori x86, ARM, RISC-V, Power e perfino sui mainframe IBM, senza dimenticare acceleratori AI, GPU, controller di rete, dispositivi embedded, storage enterprise e migliaia di periferiche diverse. Ogni piattaforma si porta dietro driver dedicati, API interne, documentazione e test su misura.
Ecco perché il conteggio delle righe sale anche quando gli sviluppatori investono energie nel semplificare il codice già esistente. L’idea non è certo quella di tenere artificialmente piccolo il repository. L’obiettivo vero è mantenere una base coerente, sicura e gestibile nel tempo, togliendo ciò che non serve più e aggiungendo il supporto che le tecnologie più recenti richiedono.