La entrada de Rust al kernel Linux

Gente, quiero saber sus opiniones de la noticia que llego de Rust y Linux.

3 Me gusta

Preferiria que usaran zig y no rust

2 Me gusta

Hola, primero bienvenido a la comunidad, sé que es tu primer vistazo al foro, y no quiero desalentarte, pero unas horas antes que tú, alguien ya hizo un post sobre esto. Respondiendo a tu pregunta, me parece grandioso que los desarrolladoees de Linux no se casen con un solo programa xd

2 Me gusta

Una disculpa, no habia visto que ya se habia hablado del tema.

1 me gusta

Lo veo más como una entrada a nuevos programas, horita se empieza con rust de cara a futuro se pueden añadir más lenguajes como zig porque al final la mayoría de cosas no se van a reescribir y serán complementos a los sistemas que ya había.

Es a la conclusión que llegue al leer la carpeta “rust” en el GitHub oficial de kernel.

1 me gusta

Me parece excelente, la mejor noticia sobre el kernel que he recibido este año, llevo tiempo esperandola. :flexed_biceps::flexed_biceps:

1 me gusta

Aún así está 10/10 ir difundiendo la increíble noticia

¡Que viva el software libre y seguro!

Pdt: no me avía dado cuenta que es tu primer vistado, bienvenido

1 me gusta

No se mucho sobre Zig, he visto solo poca documentacion y si me parece muchisimo mas parecido a C que lo que es Rust, pero supongo que la gran documentacion y apoyo por parte de Google, Microsoft y Meta a Rust ha hecho que lo vean como mejor opcion a Zig.

¿Que ventaja trae zig?

Al respecto yo me encuentro algo escéptico.

Por descontado, la entrada de métodos y lenguajes controlados en el kernel me parece, primera y generalmente, algo positivo de cara a la escalabilidad del sistema, y en el caso concreto de Rust, positivo para el mundo industrial, donde el kernel de Linux es sumo monarca indiscutible, especialmente en sistemas críticos, donde la seguridad por defecto de Rust es de gran interés. La razón del gran interés de la introducción de Rust en el kernel es que este lenguaje, por diseño, protege de varios errores relativamente comunes en la seguridad de acceso de memoria RAM, como desbordamientos de buffer o punteros colgantes.

Teóricamente, pues, es algo positivo. Sin embargo, como decía al principio, soy escéptico. No creo que sea realmente positivo el introducir un lenguaje con esa característica por defecto, que asume que el programador va a fallar al escribir el código. De hecho, si asumimos la falibilidad del programador, la asumimos también en Rust.

Creo que se verá más claro ilustrándolo con la siguiente noticia: se ha reescrito, siguiendo la moda casi religiosa de reescribir código perfectamente utilizable y funcional, una porción del kernel de Linux (el Binder de Android) en Rust. El código se publicó con la actualización del kernel de Linux hace unas semanas. El 16 de diciembre se reveló que había una vulnerabilidad en dicho código. Curiosamente, una vulnerabilidad que podría tirar el sistema y cuyo origen radica en una corrupción de memoria (!), en el código Rust seguro de memoria (!).

La razón es que el código de Rust está marcado como “unsafe” para poder ser funcional, siendo que el kernel de Linux está repleto de código Rust marcado así.

Esto no es una demonización de Rust, pero no me gusta ese culto a Rust que está moda recientemente. Mucho menos creo que sea necesario reescribir, como algunos defienden, todo el código C del kernel a Rust, me parece una locura.

2 Me gusta

1 me gusta

1.- No comprendo el odio hacia Rust
2.- ¿Por qué Zig? No veo que aporte nada, y si C++ no lo logró no creo que Zig tal y como está ahora lo logre…
3.- El manifiesto ese parecen lloros de un C developer que quiere seguir usando C en todo. Fácilmente podría ser una discursión en los emails del kernel de linux

1 me gusta

Rust puede ser el C++ que le falta al kernel, no tiene tanta basura como puede tener C++.

La principal ventaja que le veo a zig es su sintaxis tan fácil y obviamente su característica de ser tan compatibles con libre rias de C/C++. Aunque soy muy partidario de zig no le veo la utilidad de tenerlo en el kernel, Rust ya cumple todas esas funciones y aparte ya viene con OOP ya pensado de fábrica haciendo así que sea un mejor reemplazo que zig siendo este que ni siquiera viene con OOP.

PD: Metan el compilador de Rust en GCC.

4 Me gusta

Por gente como @Tux tengo fe en la tecnología

3 Me gusta

Gracias :penguin:

@dr4cu Rust con POO (siglas en la lengua cervantina) está medio cogido con pinzas pero sí, con traits y demás puedes apañar. Además puedes usarlo hierro/ metal desnudo (baremetal). Está un poquito verde en optimizaciones y blablá, pero piensa que C llevan décadas optimizandolo y aún así Rust viene peleando, aunque por funcionamiento base a veces digamos que hay que esforzarse más para que estén a la par. En el sentido de que Rust trabaja por debajo diferente y su forma de gestionarse a veces implica una carga mayor de trabajo, al menos, según he visto

1 me gusta

Yo lo veo perfecto, he usado yo mismo POO en mis proyecto y va excelente.

Solo es declarar una estructura y con la palabra clave “impl” ya puedes añadirle metodo, las bases estan ahí solo que no como las conocemos.

aquí un ejemplo de POO en rust:

struct Dog {
     name: String,
}

impl Dog {
     fn get_name() {
           println!("{}", self.name);
     }
}
2 Me gusta

Según las [Sagradas Escrituras](https://book.rustlang-es.org/ch18-00-oop) en algunos aspecto entra en la definición y en otros no, pero yo lo que me refería es que no fue creado pensando en POO como si podría haber sido Ruby (en Ruby todo es un objeto), y a pesar de eso te puedes apañar para hacer POO

Bien la razón por la que prefiero Zig antes que a Rust es por el potencial enorme que tiene.

La mayor ventaja de Rust es su protección contra errores y la mayor ventaja de C es su libertad a la hora de escribir código.

Zig quiere las dos cosas con el plus de ser retrocompatible con C y C++ para así evitar:

  • La reescritura de código ya funcional.
  • Limitar su uso solamente con código nativo.

Ahora la razón por la que Rust va por encima de Zig, son las mismas razones que limitaron a Rust en su momento (ser un lenguaje que cambia constantemente y no haber sido probado en entornos críticos)

3 Me gusta

Buenas, si puede ayudar a seguir manteniendo este gran proyecto de software libre pues genial.

Dicho esto, siempre priorizaré lenguajes de programación, interpretes, compiladores… Software con licencia GPL o con copyleft. Y Rust no cumple con este requisito, por lo que aún no ha llamado mi atención.

Un saludo

3 Me gusta