Noticias Programación

El óxido entra en el kernel

A los inocentes les parece que esto puede ser un problema serio, pero a los iniciados les parece una oportunidad seria. El Rust del que estamos hablando es, por supuesto, el lenguaje, no el resultado de la corrosión, y puede ser el mayor cambio en la programación en mucho tiempo.


Hablando en la Cumbre de código abierto de la Fundación Linux, Linus Torvalds reveló que cree que Rust puede estar listo para su introducción en la próxima versión, 5.20. De hecho, la inclusión del soporte de Rust podría aumentar el número de versión a 6.0. Esto es realmente un gran cambio.

Dado que Linux no era más que unas pocas líneas de código, ese código estaba escrito en C o en ensamblador. Linus ni siquiera permite el código C ++, que es nominalmente compatible con el código C, en el kernel. De hecho, Linux es un testimonio de lo que puede hacer con C y nada más que C y una de las razones para mantener sus habilidades en C.

Compare esto con Windows, donde el equipo del sistema operativo adoptó C ++ con un entusiasmo que nunca ha flaqueado. Windows no solo está escrito extensamente en C ++, muchas de sus API, COM en particular, solo tienen sentido cuando se ven a través de los ojos de un programador de C ++. Este entusiasmo se ha extendido más allá del sistema operativo a los lenguajes preferidos de Windows y ciertamente fue un factor importante en la exclusión de .NET a favor de los componentes basados ​​en COM.

Sí, Windows es un ejemplo de cómo la elección del lenguaje de implementación afecta el estilo de un sistema operativo.

En comparación, Linux ha sido, hasta ahora, un sistema operativo C y C es su lenguaje preferido. Sus APIs de sistema son C first y otros lenguajes solo con ayuda. La necesidad de usar funciones de C es a menudo una desventaja de tratar de usar C ++ para la programación de aplicaciones.

Si es necesario ampliar el soporte de idiomas en Linux, entonces el más obvio para elegir es C ++ y probablemente no Rust. ¿Entonces por qué no? La respuesta es principalmente que Linus odia C ++ y con razón. Si considera que C es un lenguaje en el que es fácil cometer errores, C ++ está casi diseñado para facilitar la escritura de errores sutiles. Si bien hay ventajas en permitir que las extensiones de C modestas incluyan objetos básicos de C ++, por ejemplo, permitir todo el lenguaje daría como resultado un kernel de menor calidad.

Entonces, ¿qué pasa con el óxido?

Rust es supuestamente un lenguaje mejor y más seguro con características avanzadas, especialmente los conceptos de propiedad y propiedad en préstamo. Probablemente sea más difícil caer accidentalmente en las trampas de desbordamiento del búfer, usar después de problemas de puntero libre y nulo en Rust, pero todo depende de no recurrir al uso de la palabra clave insegura que expone a Rust a los mismos peligros que C, pero hace que el código de escritura más fácil.

Entonces, ¿Rust hará una gran diferencia?

No al principio. Al principio, puede esperar que se use para nuevos controladores, aunque algunos escritores de controladores están considerando actualizar los controladores antiguos solo para encontrar Rust. También existe la dificultad de que Rust no es compatible con las herramientas estándar, en particular GCC, y debe usar LLVM, que actualmente no es compatible con todas las arquitecturas que ejecutan Linux. Se está trabajando para agregar un backend de Rust a GCC, pero aún no está completo.

Sin embargo, el efecto de la adopción de Rust por parte de Linux no puede subestimarse. Rust es un lenguaje del que a todo el mundo le gusta hablar, pero muchos se abstienen de utilizarlo porque aún es joven y carece de muchas estructuras.

El hecho de que Linus piense que es lo suficientemente bueno para ser usado junto a su amado C habla a su favor como ningún otro partidario podría hacerlo. Si Rust logra convertirse en Linux, tendrá que crecer rápidamente y, mientras lo hace, su influencia en el resto del mundo debería crecer.

linuxrust


También puede gustarte...