/https://www.ilsoftware.it/app/uploads/2025/09/linus-torvalds-bcachefs-kernel-linux.jpg)
Vi avevamo parlato a inizio luglio della querelle, portata avanti con toni a tratti molto aspri, tra Linus Torvalds e Kent Overstreet, ideatore e principale manutentore del file system bcachefs. Dopo oltre due mesi di incertezza, la comunità Linux ha finalmente ricevuto un chiarimento significativo riguardo al futuro di bcachefs nel kernel Linux. La decisione finale di Torvalds, sebbene forse non così drastica come alcuni si aspettavano, segna un momento cruciale per il file system e il suo sviluppatore.
Che bisogno c’è di file system come bcachefs su Linux?
Linux ha storicamente utilizzato file system come ext4, XFS, Btrfs e ZFS: ciascuno ha punti di forza e limiti. Per inciso, un file system è il modo con cui il sistema operativo organizza e gestisce i dati su un dispositivo di archiviazione, come hard disk, SSD, unità rimovibili e così via. Senza un file system, il supporto di memorizzazione sarebbe solo un insieme di dati grezzi senza ordine, impossibili da leggere o scrivere in modo efficace.
Nessuno dei file system esistenti combinava performance elevate, snapshot consistenti, checksum, compressione e gestione efficiente di SSD e hard disk (HDD) in un unico sistema stabile.
Così, Overstreet si è attivato per sviluppare un file system moderno progettato pensando a HDD + SSD in configurazioni ibride nonché per combinare caratteristiche avanzate di Btrfs/ZFS con prestazioni simili a ext4/XFS.
bcachefs è nato come evoluzione del progetto bcache, che era un layer di caching tra SSD e HDD. Si mette in evidenza per una serie di caratteristiche molto interessanti:
- Caching integrato: può usare SSD come cache per HDD senza software aggiuntivo.
- Copy-on-write (COW): scritture sicure e snapshot consistenti.
- Checksum end-to-end: rilevamento e correzione degli errori dei dati.
- Compressione trasparente: riduzione dello spazio occupato senza penalizzare troppo le prestazioni.
- RAID nativo: supporta diverse configurazioni RAID direttamente nel file system.
- Scalabilità e performance: progettato per grandi quantità di dati (classe Petabyte) e accesso simultaneo ad alte prestazioni.
Dove ha senso usare bcachefs
I possibili campi applicativi di bcachefs sono molteplici: server e NAS che combinano SSD e HDD, dove il caching automatico migliora le prestazioni; sistemi che richiedono snapshot frequenti e recupero dati affidabile; situazioni in cui serve un unico file system tuttofare, senza layer esterni per RAID, cache e compressione.
Con una forte enfasi sull’affidabilità e la robustezza, bcachefs si presenta con il seguente slogan: “il filesystem CoW per Linux che non divorerà i tuoi dati“.
Il conflitto tra Linus Torvalds e Kent Overstreet
La relazione tra Overstreet e la comunità del kernel Linux è stata spesso turbolenta. A novembre 2024, il mantainer di bachefs fu inizialmente sanzionato dal comitato incaricato di applicare codice di condotta. Gli fu vietato di inviare contributi durante il ciclo di sviluppo del kernel Linux 6.13 a causa di “comportamenti censurabili” verso un altro membro della comunità e una insufficiente azione per ristabilire i normali equilibri.
A giugno 2025, la situazione precipitò quando Kent inviò “troppe patch” destinate al kernel Linux 6.16 in fase di Release Candidate (RC). Molte di esse erano relative a funzionalità di “check and repair“: tra queste spiccava la nuova opzione journal rewind, uno strumento di recupero da disastro concepito per ripristinare il file system a un punto precedente nel tempo.
La funzionalità in questione fu creata da Overstreet per aiutare un utente di bcachefs che aveva perso dati eseguendo degli interventi poco avveduti durante il processo di controllo del file system.
Torvalds espresse una forte obiezione all’aggiunta di nuove funzionalità durante la fase di RC del kernel, ribadendo che le RC sono destinate esclusivamente alle correzioni, non all’introduzione di nuove funzionalità. Affermò: “non iniziamo ad aggiungere nuove funzionalità solo perché hai trovato altri bug” e sottolineò che gli utenti di bcachefs dovrebbero considerare il progetto come sperimentale.
Overstreet replicò che lui desiderava mettere nelle mani dei suoi utenti (chi sceglie bcachefs) strumenti affidabili. L’attivazione immediata su sprone degli utenti sostenuta da Overstreet, tuttavia, è in palese contrasto con la cultura di sviluppo del kernel Linux, che privilegia un cambiamento lento e revisionabile, specialmente dopo la finestra di merge.
Nonostante le critiche rivolte allo sviluppatore, Torvalds integrò con riluttanza parte del codice, inclusa la funzionalità journal rewind. Il “re pinguino”, tuttavia, fece capire che quella era da considerarsi come l’ultima eccezione. Inoltre, come spiegato nell’articolo citato in apertura, Torvalds lasciò intendere una separazione di bcachefs a partire dal kernel 6.17.
La decisione finale di Torvalds: bcachefs “mantenuto esternamente“
Linus Torvalds ha finalmente rotto il silenzio, in questi giorni, con una modifica al file maintainers
. La decisione ufficiale dell’inventore del kernel Linux è che bcachefs sarà d’ora in avanti “externally maintained” ossia mantenuto esternamente. Ma cosa significa in concreto?
Innanzi tutto, il codice di bcachefs sin qui integrato nel kernel Linux resta a farne parte. È un aspetto fondamentale, poiché significa che gli utenti di bcachefs non subiranno un’interruzione improvvisa.
D’altro canto, Torvalds non accetterà nuove pull request per bcachefs nel prossimo futuro: in altre parole, il progetto bcachefs resta congelato a livello di kernel così com’è, senza possibilità di interventi nel prossimo futuro. Overstreet è chiamato a concentrare lo sviluppo del suo file system in un repository esterno. Ciò implica che gli utenti che desiderano correzioni o funzionalità aggiornate dovranno seguire il repository esterno e integrarle manualmente nel kernel.
Implicazioni a lungo termine e precedenti
La decisione di Torvalds colloca bcachfs in un limbo, almeno per quanto riguarda l’upstream. Tuttavia, non è per nulla una condanna definitiva.
A Overstreet è lasciata la possibilità di ricostruire un “rapporto sano” con la comunità Linux e con Torvalds stesso. Se bcachefs dovesse evidenziare un periodo di stagnazione, potrebbe essere rimosso completamente in futuro dal kernel.
Non è la prima volta che si verifica una situazione simile. DRBD (Distributed Replicated Block Device), tecnologia che permette di replicare in tempo reale i dati di un disco tra due o più server su Linux, ad esempio, fu inizialmente integrata nel kernel 2.6.33 e successivamente marcato come “mantenuto esternamente” quando il maintainer principale cessò di inviare pull request. Dopo che la leadership del progetto si stabilizzò, tornò a integrarsi con il flusso di aggiornamento abituale del kernel Linux.
Sentimento comunitario e conclusioni
La decisione di rendere bcachefs un progetto”mantenuto esternamente” ha generato un sentimento misto all’interno della comunità Linux.
Alcuni hanno espresso confusione e preoccupazione per il futuro. Altri sono frustrati dalle “mezze misure“, argomentando che lasciare bcachefs nel kernel senza accettare correzioni sia peggio che rimuoverlo del tutto. In molti temono il cosiddetto “Bit rot” o “Software rot” ovvero il degrado del software nel tempo), con una progressiva mancanza di supporto e correzioni.
In definitiva, adesso bcachefs si trova ora in uno stato di sospensione come progetto “mantenuto esternamente“. Questa decisione tutela gli utenti attuali ma pone significative sfide per il suo sviluppo futuro e la sua integrazione nel kernel Linux principale.
Il destino a lungo termine di bcachefs dipenderà in gran parte dalla capacità di Overstreet e della sua comunità di adattarsi a questa nuova realtà e, potenzialmente, di ricostruire i ponti con il processo di sviluppo del kernel del pinguino.
L’immagine in apertura è generata con l’AI e non ritrae Linus Torvalds.