Tal sembla que aquest any tan poc serà l'any de Linux, ja que tot i que el darrer trimestre de l'any passat tot pintava perquè Linux i els escriptoris tinguessin un gran enlairament aquest 2025, les coses no sempre són com aparenten.
I és que fa pocs dies Christoph Hellwig, una figura destacada en el manteniment de subsistemes crítics com DMA, KVM, Slab Allocator i PowerPC al kernel de Linux, ha deixat clar el seu rebuig a recolzar pegats que facilitin el desenvolupament de controladors a Rust.
Christoph Hellwig esmenta que els pegats en qüestió proposaven incloure embolcalls sobre funcions del subsistema DMA per permetre que els controladors escrits a Rust poguessin utilitzar-lo. Tot i això, argumenta que aquesta estratègiaa complica el manteniment del codi i que cal preservar la claredat de les interfícies en C, evitant que s'estenguin abstraccions que puguin entorpir la integració amb la resta del nucli.
Els problemes de barrejar llenguatges en un projecte
Segons Hellwig, el principal problema rau en el fet que la integració de codi Rust genera dependències que obliguen els desenvolupadors del subsistema a C a tenir en compte l'impacte de les seves modificacions al codi d'enllaç de Rust. Això significa que qualsevol ajustament a les estructures o funcions internes en C podria requerir canvis paral·lels al codi de Rust, la qual cosa crea un escenari difícil de mantenir a llarg termini.
Per evitar aquesta situació, Hellwig va recomanar que els controladors a Rust accedeixin directament a l'API nativa de DMA en C, en lloc de recórrer a embolcalls addicionals que, segons ell, comprometrien la mantenibilitat del nucli.
Per la seva banda, els desenvolupadors que van proposar els pegats van argumentar que s'encarregarien del manteniment del codi Rust i que, per això, han organitzat els enllaços en un subdirectori específic (rust/kernel/dma.rs). No obstant això, Hellwig va vetar aquestes propostes, advertint que no necessitava assumir la responsabilitat d'integrar codi d'altres llenguatges als subsistemes centrals.
Addicionalment, a això, va comentar de manera contundent que, si es vol transformar el nucli en un mosaic de múltiples llenguatges, s'hauria de començar als controladors de Rust en lloc d'imposar aquesta complexitat en àrees fonamentals.
La controvèrsia es va intensificar quan figures com Jason Gunthorpe, mantenidor de TPM, VFIO i Infiniband a NVIDIA, van compartir exemples de com canvis en subsistemes de memòria, encara que correctes des del punt de vista del codi C, van generar problemes en intentar compilar el nucli amb suport per a Rust. Aquests incidents van evidenciar que els enllaços entre C i Rust poden introduir dependències addicionals que dificulten el desenvolupament coordinat.
Cal esmentar que la discussió no es va limitar a aspectes tècnics. Héctor Martín va suggerir que la solució podria ser adoptar l'enllaç directament a través de Linus Torvalds, evitant la intervenció del mantenidor del subsistema DMA. Aquest plantejament, però, podria alterar l'estructura jeràrquica tradicional del desenvolupament del nucli.
Héctor també va assenyalar comportaments que va considerar tòxics, esmentant fins i tot que la crítica de Hellwig, que va comparar Rust amb un «tumor cancerós» havia contribuït a la seva frustració i, finalment, a la seva decisió de retirar-se com a mantenidor de la plataforma ARM/Apple al nucli principal. Tot i la seva renúncia, la plataforma seguirà tenint suport a través de Sven Peter, que es va comprometre a continuar amb el seu manteniment.
Per part seua, Linus Torvalds es va sumar a la conversa, emfatitzant que el procés de desenvolupament del nucli, encara que imperfet, està funcionant i que les discussions tècniques haurien de centrar-se en els pegats, sense veure's influenciades per pressions externes o assetjaments en xarxes socials. Per a Torvalds, l'enfocament ha de ser purament tècnic, deixant de banda les disputes personals.
La negativa de Christoph Hellwig a incorporar embolcalls de Rust al subsistema DMA posa en evidència les tensions existents entre els desenvolupadors del nucli de Linux. Mentre alguns veuen a Rust una eina poderosa per crear nous projectes, altres temen que la integració de múltiples llenguatges pugui entorpir la mantenibilitat i la coherència del codi base.
La situació continua sent objecte de debat i podria tenir implicacions significatives per al futur del suport de Rust al nucli. En qualsevol cas, el que és clar és que la comunitat de desenvolupament de Linux continua enfrontant-se a desafiaments complexos, on les decisions tècniques s'han de mesurar amb cura per garantir la sostenibilitat del projecte a llarg termini.