Jonathan Corbet, desarrollador del kernel de Linux y editor de LWN, en la Open Source Summit Europe 2024. The Linux FoundationDesarrolladores destacados del kernel de Linux se reunieron para compartir ideas sobre el estado actual y el futuro del desarrollo del kernel en una mesa redonda reciente durante la Open Source Summit Europe en Viena. El panel, moderado por Jonathan Corbet, desarrollador del kernel de Linux y cofundador de Linux Weekly News (LWN), contó con la participación de los desarrolladores Alice Ryhl, ingeniera de software de Google en el equipo de Android Rust, Josef Bacik, líder técnico del equipo de sistema de archivos del kernel de Meta, Anna-Maria Behnsen, desarrolladora del kernel de Linux en Linutronix que ha trabajado en Linux en tiempo real, y Dan Williams, miembro del equipo de arquitectura del kernel del núcleo de Linux de Intel. Además: Linus Torvalds reflexiona sobre las canas de los mantenedores y el próximo «rey de Linux»El panel, en resumen, incluyó a personas de varias empresas. En el mundo de Linux y el código abierto, la gente trabaja junta a través de las fronteras de la empresa todo el tiempo. Estas personas también tienen un empleo remunerado para trabajar en Linux. Algunos dicen que no se puede vivir trabajando en software de código abierto y Linux. Eso no es verdad. Hay dinero real en Linux y en trabajos de código abierto. Gran parte de la discusión se centró en la integración de Rust en el núcleo de Linux. En la Cumbre de Mantenedores del Kernel de Linux el día anterior, Corbet dijo: «Ha habido cierta frustración en algunos sectores sobre lo mucho que estaba tomando. Creo que algunas personas querían que Rust se apoderara del mundo más rápidamente de lo que lo ha hecho». En la Cumbre de Mantenedores, Linus Torvalds, a quien le gusta tener Rust en Linux, observó que algunas características del núcleo, como las versiones modificadas, actualmente son incompatibles con Rust pero se está trabajando en ellas. Ryhl, que trabaja con Rust, expresó optimismo sobre el progreso a pesar de reconocer que llevará tiempo que se realice la integración: «Hay algunas cosas que desearía que ya estuvieran incluidas y algunas cosas podrían haber ido más rápido, pero las cosas siempre mejorarán». Además: La estructura del sistema de archivos de Linux explicadaUn problema al que se enfrenta Rust en el núcleo de Linux, dijo Willams, es que «los mantenedores del núcleo tienden a ser muy conservadores». Conocen C al derecho y al revés, pero no conocen Rust. Por lo tanto, «no saben cómo revisar esto o depurar aquello porque no entienden el código». Según el desarrollador de Linux y Rust Miguel Ojeda, que habló en el panel Rust in Linux de Linux Plumbers, la respuesta es que los mantenedores trabajen con los desarrolladores de Rust para Linux. Los mantenedores aportan su comprensión del subsistema, mientras que los programadores de Rust aportan su experiencia en el lenguaje. Al trabajar juntos, los dos grupos pueden ayudar a llevar el código de Rust a Linux. Rhyl estuvo de acuerdo: «Un enfoque exitoso para mí es combinar un desarrollador de kernel y un experto en Rust. Tuve una llamada con el mantenedor y revisamos el parche juntos. Podríamos aprender el uno del otro». Ese fue un ejemplo de lo que puede suceder cuando las cosas van bien. Sin embargo, a veces no es así. Wedson Almeida, un ingeniero de software de Microsoft y uno de los mantenedores de Rust para Linux, abandonó recientemente el proyecto en una nota a la Lista de correo del kernel de Linux (LKML). Se fue porque, «Después de casi cuatro años, me encuentro sin la energía y el entusiasmo que alguna vez tuve para responder a algunas de las tonterías no técnicas, así que es mejor dejarlo en manos de quienes aún lo tienen». Ojeda dijo que a pesar de esto, «el equipo central de Rust sigue creciendo». Además: Los lenguajes de programación más populares en 2024 Sin embargo, el panel estuvo de acuerdo en que un efecto secundario positivo de que las personas trabajen juntas es que ha llevado a cambios en las API de C existentes y las prácticas de documentación. Al hacer que las personas piensen en cómo Rust puede ayudar a Linux, también han tenido que profundizar en su propio código y explicarlo. Por ejemplo, Al Viro, el mantenedor del sistema de archivos virtual (VFS) de Linux, dijo que Josef Bacik ha reelaborado 65 páginas de documentación. Esto, a su vez, ha hecho que el código C asociado sea mucho más simple para que los futuros desarrolladores lo conviertan. La documentación ahora brinda reglas claras sobre lo que hace el código y por qué. Sin embargo, el panel también señaló un problema crítico: a pesar de los miles de desarrolladores de kernel pagos, nadie está financiado específicamente para el trabajo de documentación. Este es un problema muy conocido pero a menudo ignorado con Linux y la documentación de código abierto. Además: Estas distribuciones de Linux son mejores para los desarrolladores – aquí está el porquéCorbet también observó que parte de la tensión en torno a la documentación proviene de las formas fundamentalmente diferentes de Rust y C de lidiar con las cosas: Si observa cómo una API de C en los diseños del kernel la llama de esta manera, debe asegurarse de llamarla de esta manera, y que ese puntero no sea nulo, y no toque ese botón de allí, o todo explotará. El enfoque de Rust es que diseñaremos la API, por lo que su código probablemente será correcto si el compilador le permite llamarlo. C simplemente no le permite hacer eso. Pero cuando intentamos diseñar API de Rust para el kernel, tienen que estar sobre estas API de C. Y entonces hay un desajuste fundamental en el enfoque que se está adoptando, y veo que está retrocediendo hacia las API de C y tratando de forzar cambios allí. Creo que los cambios son buenos, pero creo que crean cierta resistencia por parte de los mantenedores de las API existentes, que dedicaron décadas a crear y usar esas API, saben dónde están los obstáculos y pueden evitarlos instintivamente. Aún así, aunque no todos están entusiasmados con Rust en Linux, se están logrando avances. En la Cumbre de Mantenedores, Torvalds dijo que los mantenedores no necesitan entender Rust para dejarlo entrar en un subsistema. Después de todo, señaló, medio irónicamente, «Nadie entiende el subsistema de administración de memoria, pero todos pueden trabajar con él». Además: Linux y la documentación de código abierto son un desastre: aquí está la solución Ojeda también comentó que algunas distribuciones de Linux, en particular Debian y Ubuntu, están adoptando Rust. En resumen, concluyó, «Rust ahora está en una buena posición». Puede que Rust no haya entrado en Linux tan rápido como algunas personas querían, pero está progresando bien.