Noticia Rust for Linux en problemas, la tensión y desacuerdos ya han salido a relucir

Problemas Rust For Linux


Tal parece que este año tan poco será el año de Linux, ya que a pesar de que el último trimestre del año pasado todo pintaba para que Linux y los escritorios tuvieran un gran despegue este 2025, las cosas no siempre son como aparentan.

Y es que hace pocos días Christoph Hellwig, una figura destacada en el mantenimiento de subsistemas críticos como DMA, KVM, Slab Allocator y PowerPC en el kernel de Linux, ha dejado claro su rechazo a respaldar parches que faciliten el desarrollo de controladores en Rust.

Christoph Hellwig menciona que los parches en cuestión proponían incluir envoltorios sobre funciones del subsistema DMA para permitir que los controladores escritos en Rust pudieran utilizarlo. Sin embargo, argumenta que esta estrategia complica el mantenimiento del código y que se debe preservar la claridad de las interfaces en C, evitando que se extiendan abstracciones que puedan entorpecer la integración con el resto del kernel.

Los problemas de mezclar lenguajes en un proyecto​


Según Hellwig, el principal problema radica en que la integración de código Rust genera dependencias que obligan a los desarrolladores del subsistema en C a tener en cuenta el impacto de sus modificaciones en el código de enlace de Rust. Esto significa que cualquier ajuste en las estructuras o funciones internas en C podría requerir cambios paralelos en el código de Rust, lo cual crea un escenario difícil de mantener a largo plazo.

Para evitar esta situación, Hellwig recomendó que los controladores en Rust accedan directamente a la API nativa de DMA en C, en lugar de recurrir a envoltorios adicionales que, a su juicio, comprometerían la mantenibilidad del kernel.

Por su parte, los desarrolladores que propusieron los parches argumentaron que se encargarían del mantenimiento del código Rust y que, para ello, han organizado los enlaces en un subdirectorio específico (rust/kernel/dma.rs). Sin embargo, Hellwig vetó estas propuestas, advirtiendo que no necesitaba asumir la responsabilidad de integrar código de otros lenguajes en los subsistemas centrales.

Adicionalmente, a ello, comentó de manera contundente que, si se quiere transformar el kernel en un mosaico de múltiples lenguajes, se debería empezar en los controladores de Rust en lugar de imponer esta complejidad en áreas fundamentales.

La controversia se intensificó cuando figuras como Jason Gunthorpe, mantenedor de TPM, VFIO e Infiniband en NVIDIA, compartieron ejemplos de cómo cambios en subsistemas de memoria, aunque correctos desde el punto de vista del código C, generaron problemas al intentar compilar el kernel con soporte para Rust. Estos incidentes evidenciaron que los enlaces entre C y Rust pueden introducir dependencias adicionales que dificultan el desarrollo coordinado.

Cabe mencionar que la discusión no se limitó a aspectos técnicos. Héctor Martín, sugirió que la solución podría ser adoptar el enlace directamente a través de Linus Torvalds, evitando la intervención del mantenedor del subsistema DMA. Sin embargo, este planteamiento podría alterar la estructura jerárquica tradicional del desarrollo del kernel.

Héctor también señaló comportamientos que consideró tóxicos, mencionando incluso que la crítica de Hellwig, quien comparó a Rust con un «tumor canceroso» había contribuido a su frustración y, finalmente, a su decisión de retirarse como mantenedor de la plataforma ARM/Apple en el kernel principal. A pesar de su renuncia, la plataforma seguirá teniendo soporte a través de Sven Peter, quien se comprometió a continuar con su mantenimiento.

Por su parte, Linus Torvalds se sumó a la conversación, enfatizando que el proceso de desarrollo del kernel, aunque imperfecto, está funcionando y que las discusiones técnicas deberían centrarse en los parches, sin verse influenciadas por presiones externas o acosos en redes sociales. Para Torvalds, el enfoque debe ser puramente técnico, dejando de lado las disputas personales.

La negativa de Christoph Hellwig a incorporar envoltorios de Rust en el subsistema DMA pone en evidencia las tensiones existentes entre los desarrolladores del kernel de Linux. Mientras algunos ven en Rust una herramienta poderosa para crear nuevos proyectos, otros temen que la integración de múltiples lenguajes pueda entorpecer la mantenibilidad y la coherencia del código base.

La situación sigue siendo objeto de debate y podría tener implicaciones significativas para el futuro del soporte de Rust en el kernel. En cualquier caso, lo que está claro es que la comunidad de desarrollo de Linux continúa enfrentándose a desafíos complejos, donde las decisiones técnicas deben medirse cuidadosamente para garantizar la sostenibilidad del proyecto en el largo plazo.

Continúar leyendo...