-
Se resumen las razones por las que Rust debería usarse como segundo lenguaje del kernel
-
No se busca reescribir el núcleo ni los principales subsistemas del kernel, sino permitir que los drivers y módulos tipo "leaf" similares puedan escribirse en Rust
Si se usa Rust en el kernel de Linux:
-
Por las propiedades del lenguaje, se reduce el riesgo de bugs de seguridad de memoria, condiciones de carrera de datos y errores lógicos
-
Los maintainers pueden sentirse más confiados al refactorizar módulos y aplicar parches gracias a la seguridad de Rust
-
Es más fácil escribir nuevos drivers y módulos gracias a las funciones modernas del lenguaje y a una documentación detallada
-
Más personas pueden participar de forma general en el desarrollo del kernel usando un lenguaje moderno
"Why Rust?"
- En el contexto del kernel de Linux, ofrece varias ventajas clave frente a C
→ (se omiten las ventajas del lenguaje..)
"Why not?"
- En el contexto del kernel de Linux, tiene estas desventajas frente a C
→ Se ha invertido esfuerzo en tooling basado en C, incluyendo compiler plugins, Sanitizers, etc. Esto mejorará con el tiempo a medida que aumente el uso de Rust
→ Una única implementación basada en LLVM. Hay esfuerzos en marcha como el frontend para GCC, el backend 'ructc' basado en Cranelift, y 'mrustc' para reducir la cadena de bootstrapping
→ Aún no está estandarizado. No está claro si la estandarización ayudaría al kernel, pero...
→ Por las funciones complejas y limitaciones del compilador actual, la velocidad de compilación es lenta
→ Por ahora se necesitan funciones que están en builds Nightly. No se puede usar la versión estable. El objetivo es eliminar esta limitación dentro de 1 año
→ No se usan todas las funciones de las bibliotecas estándar de Rust 'core' y 'alloc', por lo que actualmente son más grandes de lo necesario
-
La mayoría de estas desventajas surgen del hecho de que Rust sigue siendo un lenguaje joven y menos usado
-
Se cree que Rust se convertirá en una parte importante de la programación de sistemas, tal como lo fue C durante las últimas décadas
3 comentarios
https://lkml.org/lkml/2021/4/14/1099
"Así que respondí con mis reacciones a un par de los parches individuales, pero en general no me desagrada."
y, viendo el texto que viene después de HOWEVER,
parece que en realidad podría tardar bastante en agregarse
Linus Torvalds respondió a este RFC: https://lkml.org/lkml/2021/4/14/1099
"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."
Como dijo que en general no le desagrada, espero que avance por buen camino.
Busqué y parece que en GeekNews ya se han publicado muchísimas noticias relacionadas con Rust. Creo que de verdad ya es la gran tendencia de esta era.
https://news.hada.io/search?q=Rust
Lenguaje de programación Rust [edición en coreano] https://es.news.hada.io/topic?id=1152
Rust - Un lenguaje de alto rendimiento y confiabilidad: 'Es una pena que no conozcas lo genial que es Rust' https://es.news.hada.io/topic?id=991
Tengo la impresión de que irá coexistiendo gradualmente con C y que, en algún momento, quizá termine reemplazándolo... Incluso me parece que independizarse de Mozilla fue, más bien, una mejor decisión.