Desde Linux Darkcrizt  

Rust vs C: los desarrolladores de Linux generan cierta resistencia en la adopción de Rust

RustLinux

Tal parece que los problemas han comenzado a surgir en la adopción de Rust dentro del Kernel de Linux, y es que en su momento cuando se hablaba de los beneficios y todas las maravillas que se podrían lograr si Rust se introducía en Linux, emociono a muchos de los desarrolladores e incluso muchos daban su visto bueno a este lenguaje de programación.

Posterior a ello Linus Torvalds que dio su visto bueno y acepto la integración de Rust en Linus en la versión 6.1 del Kernel (esto claro su debido proceso de preparación y revisión) y desde ese momento se han integrado diferentes cambios y componentes en este lenguaje.

Y aunque todo pintaba bien para Rust en Linux, las cosas han comenzado a cambiar, ya que los desarrolladores de Linux han comenzado a mostrar cierta resistencia al cambio e incluso se ha comenzado a notar esto en la desaceleración de la implementación de Rust en Linux.

Fue el mismo Linus Torvalds quien expreso durante su discurso en la conferencia Open Source Summit China, su deseo de acelerar el proceso de integración de componentes escritos en Rust en Linux. Mencionó que uno de los principales obstáculos para esta adopción es que los desarrolladores más veteranos están acostumbrados al lenguaje C y no ven la necesidad de aprender un lenguaje tan distinto. Esta actitud genera cierta resistencia al uso de Rust dentro de la comunidad de desarrolladores del kernel.

Otro factor que Torvalds mencionó es que la infraestructura de Rust aún no es completamente estable, lo que ha ralentizado el progreso de su integración en el núcleo de Linux. A pesar de estos desafíos, el interés en Rust sigue creciendo debido a sus ventajas en términos de seguridad y gestión de memoria, aspectos críticos en el desarrollo del kernel.

Por otra parte, también se ha recibido un duro golpe en la adopción de Rust, ya que Wedson Almeida anuncio su salida como mantenedor del proyecto Rust-for-Linux, dejando a Miguel Ojeda, principal autor del proyecto, y Alex Gaynor, exdirector de la Python Software Foundation, como los responsables de seguir adelante con esta iniciativa que busca integrar Rust en el kernel.

Almeida mencionó que dejó el proyecto tras expresar su frustración por el desgaste causado por discusiones no técnicas. Aunque sigue creyendo firmemente en la importancia de usar lenguajes con seguridad de memoria, como Rust, en el desarrollo de kernels, también advirtió que, si Linux no adopta esta visión, podría ser eventualmente reemplazado.

Y es como mencionaba Linus Torvalds al inicio, uno de los puntos críticos en la implementación de Rust en Linux es la resistencia de los desarrolladores veteranos, que no ven la necesidad de aprender un nuevo lenguaje.

Ted Ts’o, desarrollador clave de los sistemas de archivos ext2/ext3/ext4, criticó abiertamente la iniciativa Rust-for-Linux, sugiriendo que podría crear complicaciones innecesarias. En particular, señaló que la creación de contenedores de interfaces C para su uso en código Rust podría generar problemas, ya que cualquier cambio en las interfaces en C afectaría inevitablemente los enlaces para Rust.

James Bottomley, mantenedor de SCSI, destacó que la vinculación de Rust en el kernel seguirá siendo un desafío, ya que no todos los desarrolladores estarán dispuestos a aprender Rust, lo que complicará la colaboración y el mantenimiento del código.

Por su parte, Google ha compartido su experiencia reescribiendo en Rust partes del firmware pvmfw utilizado en máquinas virtuales de Android, con el objetivo de mejorar la seguridad del sistema. La estrategia de Google implica reemplazar gradualmente componentes de firmware críticos escritos en C o C++ con equivalentes en Rust, manteniendo la funcionalidad original pero aumentando la seguridad, especialmente en áreas que procesan datos externos no confiables.

El principal objetivo de esta transición es utilizar Rust para nuevo código y para aquellas partes del código que son fundamentales para la seguridad. Esto incluye funcionalidades que interactúan con datos de fuentes externas, donde los beneficios de la seguridad de memoria de Rust son más críticos.

Para facilitar la coexistencia de Rust con el código heredado en C, Google propone el uso de capas de traducción o shims. Estas capas permiten que las llamadas entre las APIs de C y Rust sean compatibles. Mediante este enfoque, las APIs en C pueden ser exportadas para su uso en el código Rust, y viceversa, lo que permite una migración gradual de los componentes críticos de seguridad hacia Rust, sin necesidad de realizar una reescritura total del sistema desde el inicio.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.