A poche ore dalla pubblicazione di Linux 7.2 arriva GNU Linux-libre 7.2-gnu, la nuova versione del kernel mantenuto dal progetto GNU Linux-libre con un obiettivo molto preciso: offrire un kernel utilizzabile nei sistemi GNU/Linux completamente liberi, eliminando o disabilitando le parti che richiedono componenti software non liberi.
La distinzione è importante perché il kernel Linux distribuito normalmente dalle principali distribuzioni è Software Libero, ma può contenere codice predisposto per caricare firmware proprietario oppure riferimenti a componenti binari non liberi necessari al funzionamento di determinati dispositivi.
GNU Linux-libre parte dal codice del kernel Linux e applica quindi un processo definito comunemente deblobbing. Gli script del progetto individuano riferimenti a firmware e altri componenti considerati non liberi, li rimuovono o ne impediscono il caricamento e modificano la documentazione quando questa indirizza l'utente verso software proprietario.
La versione 7.2-gnu porta questo lavoro sul nuovo Linux 7.2 pubblicato da Linus Torvalds e introduce gli adattamenti necessari per i driver e le modifiche entrate nell'ultima versione del kernel.
Tra gli interventi indicati dagli sviluppatori troviamo modifiche alle interfacce utilizzate per il caricamento del firmware e la pulizia di nuovi riferimenti a blob presenti in diversi driver e sottosistemi, tra cui AMDGPU, Nova, Qualcomm Iris e q6v5, Intel iwlwifi, Adreno, Realtek r8152 e MediaTek mt792x.
Il processo interessa anche nuovi driver come quelli dedicati a RT722-SDCA e Texas Instruments TAC5xx2, oltre ad alcuni file Device Tree e alla relativa documentazione.
Allo stesso tempo, il progetto ha potuto eliminare alcune vecchie regole di deblobbing diventate inutili. È il caso del driver Bluetooth hci_bt3c, rimosso dal kernel Linux principale e che quindi non necessita più di essere ripulito da GNU Linux-libre.
Il lavoro mette in evidenza uno dei problemi più complessi nel rapporto tra Software Libero e hardware moderno.
Un sistema operativo può infatti essere composto interamente da codice libero e trovarsi comunque davanti a una periferica che, per funzionare, richiede un firmware proprietario distribuito dal produttore. Il problema è particolarmente evidente con schede Wi-Fi e dispositivi grafici, due categorie nelle quali il firmware non libero continua ad avere un ruolo importante.
GNU Linux-libre sceglie una posizione molto netta: se un dispositivo richiede Software non Libero, il kernel non deve scaricarlo né suggerire all'utente di installarlo.
Questa scelta comporta inevitabilmente delle conseguenze pratiche. Installare GNU Linux-libre non significa automaticamente ottenere un sistema che funziona meglio o supporta più hardware. Al contrario, alcuni dispositivi perfettamente funzionanti con il kernel Linux tradizionale possono non funzionare quando richiedono firmware proprietario.
È proprio questa apparente limitazione a mostrare la natura particolare del progetto.
GNU Linux-libre non nasce per massimizzare la compatibilità hardware, ma per massimizzare la libertà software del sistema. Spetta poi all'utente decidere quale delle due esigenze considerare prioritaria e, possibilmente, scegliere hardware capace di funzionare senza componenti proprietari.
Il progetto ha una storia ormai lunga. Linux-libre nacque inizialmente all'interno della distribuzione gNewSense, diventò successivamente un progetto mantenuto dalla Free Software Foundation Latin America e dal 2012 fa ufficialmente parte del progetto GNU.
Viene utilizzato dalle distribuzioni che scelgono di rispettare le linee guida per le distribuzioni completamente libere indicate dalla Free Software Foundation e rappresenta anche uno strumento attraverso il quale individuare concretamente quali parti dell'hardware contemporaneo continuino a dipendere da firmware proprietario.
L'arrivo di GNU Linux-libre 7.2-gnu, immediatamente dopo Linux 7.2, offre quindi un'occasione interessante per chiarire una distinzione che spesso viene trascurata.
“Open source”, “Linux” e “Software Libero” non indicano necessariamente la stessa cosa. Un sistema può utilizzare il kernel Linux e includere contemporaneamente componenti proprietari; GNU Linux-libre prova invece a portare fino alle sue conseguenze più rigorose il principio secondo il quale l'utente dovrebbe poter utilizzare un computer senza eseguire software sul quale non possiede le quattro libertà fondamentali.
È una scelta che può risultare difficile nell'hardware moderno, ma proprio questa difficoltà rende ancora attuale il progetto: ci ricorda che la libertà del software non dipende soltanto dal sistema operativo che installiamo, ma anche dall'hardware che scegliamo di acquistare.