Bienvenido a Internet ■Volver al BBS■ Hilo completo ▼Bajar▼

■ Este hilo se encuentra guardado en el archivo

[SO] Linus sobre incluir a Rust en el sistema Linux (17 respuestas)

1 : root@bienvenidoainternet.org:~# : 24/03/21(mie)01:05:53 ID:GRizqIDn0

>"Personally," Torvalds is "in no way "pushing" for Rust, [but] I'm open to it considering the promised advantages and avoiding some safety pitfalls, but I also know that sometimes promises don't pan out."
>Torvalds thinks "Rust's primary first target seems to be drivers, simply because that's where you find just a lot of different possible targets, and you have these individual parts of the kernel that are fairly small and independent. That may not be a very interesting target to some people, but it's the obvious one."
>Another point is taking on drivers first for "any initial trials to drivers is simply the architecture side," said Torvalds. "Lots of drivers are only relevant on a couple of target architectures, so the whole issue with Rust code not being supported on some architectures is less of an issue."
>Kroah-Hartman agrees that "drivers are probably the first place for an attempt like this as they are the 'end leafs' of the tree of dependencies in the kernel source. They depend on core kernel functionality, but nothing depends on them."
>Torvalds knows some people don't like the idea of Rust in userspace at all. "People complain[ing] about "Rustification" in userspace isn't a great sign for any future kernel use, but hey, we'll see. The kernel is different from userspace projects - more difficult in some respects (we use a lot of very odd header files that pushes the boundary of what can be called "C"), but easier in many other respects (mainly in the sense that the kernel is fairly self-contained, and then doesn't rely on other projects for the final binary)."
https://www.zdnet.com/article/linus-torvalds-on-where-rust-will-fit-into-linux/

2 : root@bienvenidoainternet.org:~# : 24/03/21(mie)16:09:29 ID:Y8zAU0jg0!

¿Usar Rust no implicaría menos vulnerabilidades en drivers?

3 : : 24/03/21(mie)16:34:10 ID:s6JHCcMOQ

4 : root@bienvenidoainternet.org:~# : 24/03/21(mie)17:01:01 ID:O70fdOFA0

>Building a Linux-next kernel will Rust support requires the Rust compiler (rustc) and a fairly recent nightly snapshot of the Rust toolchain. That limits the currently supported platforms to x86-64 and arm64.
Va a ser interesante ver qué ventajas ofrece esto por sobre compilar Linux con GCC.

https://linuxreviews.org/The_Rust_Programming_Language_Is_Now_One_Step_Closer_To_Entering_The_Mainline_Linux_Kernel

Por cierto, buena discusión en los comentarios ww

5 : : 24/03/21(mie)17:07:43 ID:nC/vOg8Q0

>>2 en realidad no. es un asunto de terminología, pero seguridad en rust se refiere a no desperdiciar memoria y no segfaultear, ademas la mayoría del código tendría que ir en unsafe de todas formas

6 : : 24/03/21(mie)17:11:00 ID:nC/vOg8Q0

>>4
>Building a Linux-next kernel will Rust support requires the Rust compiler (rustc) and a fairly recent nightly snapshot of the Rust toolchain
un mal día para distribuciones basadas en source wwww

7 : root@bienvenidoainternet.org:~# : 24/03/21(mie)21:36:02 ID:jHz1GClBa!

Recordatorio de que Redox OS está hecho en Rust

8 : root@bienvenidoainternet.org:~# : 25/03/21(jue)03:29:36 ID:QSBR5rq50

¿Estará más blando o realmente no tiene nada en contra de Rust? Recordemos lo que dijo sobre C++ en 2007:
>C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard programmers use it, to the point where it’s much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.

9 : : 25/03/21(jue)15:50:36 ID:74KhPdm6T

en primer lugar, linus viene explicando desde hace unos años que el ya no programa él mismo el kernel, sino que ahora se ocupa de tareas de administración. esto en el contexto (ideológico) actual de rust bueno; c malo, hace que probablemente no se sienta muy cómodo dando opiniones contundentes.

con los problemas que ha tenido hasta ahora es comprensible que ya no sea tan flemático con sus opiniones (en particular tratándose de rust), pero hay que recordar que linus tiene gustos particulares, como implementar tablas virtuales a mano y de distintas e irregulares formas, algunas veces conviviendo entre ellas en el mismo header.

//ejemplo para los que nunca vieron una vt hecha a mano, sacada del linux 2.6
struct lock_manager_operations {
int (*fl_compare_owner)(struct file_lock *, struct file_lock *);
void (*fl_notify)(struct file_lock *); /* unblock callback */
int (*fl_grant)(struct file_lock *, struct file_lock *, int);
void (*fl_release_private)(struct file_lock *);
void (*fl_break)(struct file_lock *);
int (*fl_change)(struct file_lock **, int);
};

no creo que le hubiera gustado el trait system de rust de haberlo usado.

de todas formas linux ya ha pasado su fecha de caducidad desde hace años. la gente interesada en desarrollar un kernel debería centrarse en cosas como redoxos, o alguno de los otros micro-kernel foss nuevos que han aparecido estos años (google, huawei, etc)

10 : root@bienvenidoainternet.org:~# : 14/04/21(mie)12:20:36 ID:pyiK+UgRa

¿Rust soporta codigos en assembler?

11 : root@bienvenidoainternet.org:~# : 14/04/21(mie)12:40:20 ID:ftVJiwHM0!

Rust es para trans

12 : root@bienvenidoainternet.org:~# : 15/04/21(jue)03:13:15 ID:cd+jd09ia

>>10
Tengo entendido que si, es programación de bajo nivel.

13 : root@bienvenidoainternet.org:~# : 26/04/21(lun)20:11:43 ID:s0aW+QNM0

14 : root@bienvenidoainternet.org:~# : 26/04/21(lun)21:09:44 ID:4IduKIEW0

Me parece bien. C y Rust pueden coexistir.

15 : : 26/04/21(lun)21:20:43 ID:s0aW+QNM0

A mí también, obviando los comentarios como los de >>11, no he visto muchos argumentos en contra. Encontré esta lista de ventajas sobre incluir Rust por ahí:

-No undefined behavior in the safe subset (when unsafe code is sound), including memory safety and the absence of data races.
-Stricter type system for further reduction of logic errors.
-A clear distinction between safe and 'unsafe' code.
-Featureful language: sum types, pattern matching, generics, RAII, lifetimes, shared & exclusive references, modules & visibility, powerful hygienic and procedural macros...
-Extensive freestanding standard library: vocabulary types such as 'Result' and 'Option', iterators, formatting, pinning, checked/saturating/wrapping integer arithmetic, etc.
-Integrated out of the box tooling: documentation generator, formatter and linter all based on the compiler itself.

16 : : 26/04/21(lun)21:41:15 ID:s0aW+QNM0

>>8
Era bueno el terapeuta parece ww

17 : : 30/04/21(vie)18:30:58 ID:NmBPrLZo0

>>10
¿en el mismo sentido de sportar snippets de asm en el código cómo C? no
7 KB

■ Este hilo se encuentra guardado en el archivo

weabot.py ver 0.10.9 Bienvenido a Internet BBS/IB