La opinión de Greg Kroah-Hartman y Kasey Cook sobre la incorporación de Rust en el núcleo de Linux

Greg Kroah-Hartman, responsable del soporte de la rama estable del núcleo de Linux, se ha pronunciado a favor del desarrollo de nuevos componentes del núcleo en el lenguaje Rust. Como persona que ha gestionado toda la información sobre errores y vulnerabilidades en el núcleo de Linux durante los últimos 15 años, afirma que la mayoría de los errores en el núcleo son causados por particularidades no consideradas del lenguaje C (corner cases), que están completamente excluidas en el código escrito en Rust.

Al utilizar Rust, se podrán dejar atrás problemas como el acceso a la memoria después de que haya sido liberada, las salidas al límite del búfer (parcialmente), la liberación incorrecta de recursos al manejar errores y las comprobaciones olvidadas de los códigos de error devueltos, lo que permitirá a los mantenedores centrarse en errores reales, como las condiciones de carrera y problemas lógicos, en lugar de dispersar su atención en detalles menores durante la revisión.

El código antiguo ya existente en C no desaparecerá, pero la incorporación de Rust para el nuevo código y nuevos controladores permitirá elevar significativamente la calidad. La implementación de Rust también facilitará la estructuración de las interfaces de programación interna del núcleo de tal manera que casi se eliminen los errores en el uso de la API interna; se han acumulado demasiadas API complejas y enredadas en el núcleo, lo que crea una gran carga para los mantenedores en su trabajo de asegurar que estas API se usan correctamente. A medida que se desarrollen los enlaces de Rust, los mantenedores tendrán la oportunidad de repensar y ordenar la API, lo que beneficiará a todos, incluidos aquellos que utilizan el lenguaje C.

Greg no considera que Rust sea una "bala de plata" que resolverá todos los problemas en el núcleo, pero este lenguaje sin duda ayudará en un gran número de situaciones. El soporte de Rust también satisfará la necesidad de los desarrolladores de controladores, que esperan obtener herramientas que les permitan escribir código para su hardware, evitando muchos tipos de errores. En cuanto a la mezcla de varios lenguajes, Greg no ve un gran problema; en su opinión, los desarrolladores del núcleo han manejado tareas mucho más serias en el pasado, y no hay razón para rechazar la inclusión en el núcleo de nuevas y buenas ideas que ayudarán a asegurar el éxito del proyecto durante los próximos 20 años.

También se unió a la discusión Kees Cook, ex administrador del sistema en kernel.org y líder del Ubuntu Security Team. Kees aclaró que no se trata de reescribir el código existente en el núcleo, sino de proporcionar la capacidad de utilizar Rust para crear nuevos controladores y subsistemas. La aplicación de Rust para nuevo código no solo reducirá la cantidad de errores relacionados con la memoria, sino que también acortará el tiempo de desarrollo. La velocidad de desarrollo aumenta gracias a la disminución de los esfuerzos necesarios para depurar y a las estrictas garantías del lenguaje que permiten detectar errores en las primeras etapas de la escritura del código, incluso antes de que comience la prueba del producto.

La eficacia de la táctica de usar Rust para mejorar la calidad del nuevo código ya ha sido demostrada por Google en la plataforma Android. Se ha demostrado que la principal fuente de problemas de seguridad es el nuevo código, y se debe prestar especial atención a la mejora de su calidad. En el caso del código antiguo, hay una dependencia exponencial de la seguridad con el tiempo (por ejemplo, un código de 5 años tiene, en promedio, una densidad de vulnerabilidades 3.4 veces menor que el nuevo código).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster