Ir al contenido

Rust for Linux

De Wikipedia, la enciclopedia libre
Rust for Linux
Información general
Tipo de programa software
Autor Miguel Ojeda
Desarrollador Desarrolladores de la comunidad
Modelo de desarrollo Software Libre
Lanzamiento inicial 1 de octubre de 2022
Licencia GPL-2.0-only con Linux-syscall-note.
Idiomas C, Rust, Ensamblador
Información técnica
Programado en Rust
Enlaces

Rust para Linux (nombre original: "Rust for Linux") es un proyecto que, desde 2020, busca integrar el lenguaje de programación Rust dentro del kernel de Linux. El objetivo de este proyecto es aprovechar las características del lenguaje (principalmente la seguridad de memoria) en el desarrollo de controladores para Linux.[1]

La adopción de Rust como un segundo lenguaje para Linux ha sido más lenta de lo esperado, tanto por los defensores de Rust como por Linus Torvalds.[2]​ En diciembre de 2023, se aceptaron los primeros controladores escritos en Rust, que fueron lanzados en la versión 6.8.[3][4]

Historia

[editar]

El kernel de Linux fue originalmente escrito en los lenguajes C y ensamblador. Alrededor de 1997, se consideró la posibilidad de utilizar C++ pero, tras experimentar con el durante dos semanas, se terminó descartando la posibilidad.[5]​ Rust se creó en 2006 y combina el rendimiento de los lenguajes de programación de bajo nivel (como C) con un enfoque en la seguridad de la memoria.[6]

Taesoo Kim publicó en 2013 un módulo para el kernel de linux creado con el lenguaje Rust.[7][8]

El proyecto Rust for Linux se anunció en 2020 en la lista de correo del kernel de Linux con el objetivo de intregrar Rust como un lenguaje de programación que pudiera usarse dentro de kernel.[9]​ En la Open Source Summit de 2022, Linus Torvalds afirmó que la incorporación del proyecto podría comenzar tan pronto como se lanzase Linux 5.20, posteriormente denominado Linux 6.0.[10]​ La primera versión candidata para Linux 6.0 fue publicada el 14 de agosto de 2022, todavía sin soporte para Rust. En las notas de lanzamiento de Linux 6.0-rc1, Torvalds expresó su intención de añadir compatibilidad con Rust en el kernel: «De hecho, esperaba que tuviéramos la primera infraestructura de Rust y la máquina virtual LRU multigeneración, pero esta vez no se materializó».[11][12]​ El 19 de septiembre de 2022, un artículo de ZDNet reveló un correo electrónico de Linus Torvalds que afirmaba: «A menos que ocurra algo extraño, Rust se integrará en la versión 6.1».[13]

En octubre de 2022, Torvalds aprobó una pull request para aceptar la implementación de Rust para Linux.[14]​ A partir de Linux 6.1, el soporte se dejó intencionalmente mínimo para permitir que los desarrolladores probasen la nueva funcionalidad.[15]

Los desarrolladores de Rust para Linux crearon una nueva biblioteca, "pinned-init", para inicializar de forma segura y falible objetos no-reubicables.[3]​ Se incluyó por primera vez en Linux 6.4,[16]​ y se mejoró en versiones posteriores[3]

En julio de 2024 se aceptó un cambio en Linux para admitir múltiples versiones de Rust por primera vez, lo que permitió la compilación utilizando tanto la versión 1.78 (lanzada el 2 de mayo de 2024) como la 1.79 (lanzada el 13 de junio de 2024).[17]

A 2 de julio de 2025, Rust en el kernel de linux depende de características inestables del compilador de Rust.[1]

Usos de Rust en el kernel

[editar]

Otros proyectos notables que utilizan Rust para Linux incluyen:

Véase también

[editar]

Referencias

[editar]
  1. a b Vaughan-Nichols, Steven. «Rust in Linux: Where we are and where we're going next». zdnet. Consultado el 31 de agosto de 2024. 
  2. «Linus Torvalds talks AI, Rust adoption, and why the Linux kernel is 'the only thing that matters'». zdnet. 23 de agosto de 2024. Consultado el 31 de agosto de 2024. 
  3. a b c d e f g h i j Li, Hongyu (1 de julio de 2024). «An Empirical Study of Rust-for-Linux: The Success, Dissatisfaction, and Compromise». usenix. ;login:. Consultado el 4 de septiembre de 2024. 
  4. a b Das, Ankush (11 de marzo de 2024). «Linux Kernel 6.8 Released! Goes Big On Hardware Support». news.itsfoss.com. Consultado el 4 de septiembre de 2024. 
  5. Claburn, Thomas (23 de junio de 2022). «Linus Torvalds says Rust is coming to the Linux kernel». The Register (en inglés). Archivado desde el original el 28 de julio de 2022. Consultado el 25 de julio de 2022. 
  6. Perkel, Jeffrey M. (1 de diciembre de 2020). «Why scientists are turning to Rust». Nature (en inglés) 588 (7836): 185-186. Bibcode:2020Natur.588..185P. PMID 33262490. doi:10.1038/d41586-020-03382-2. Archivado desde el original el 6 de mayo de 2022. Consultado el 4 de agosto de 2022. 
  7. Vaughan-Nichols, Steven J. (5 de octubre de 2022). «Rust in the Linux Kernel». thenewstack.io. Consultado el 31 de agosto de 2024. 
  8. Ojeda, Miguel (23 de junio de 2022). «Memory Safety for the World's Largest Software Project». Consultado el 31 de agosto de 2024. 
  9. a b Simone, Sergio De (27 de abril de 2021). «Using Rust to Write Safe and Correct Linux Kernel Drivers». InfoQ (en inglés). Archivado desde el original el 22 de septiembre de 2022. Consultado el 4 de agosto de 2022. 
  10. Vaughan-Nichols, Steven (27 de junio de 2022). «Linus Torvalds is cautiously optimistic about bringing Rust into Linux kernel's next release». ZDNet (en inglés). Archivado desde el original el 12 de agosto de 2022. Consultado el 4 de agosto de 2022. 
  11. Tung, Liam (15 de agosto de 2022). «Linux 6.0 arrives with performance improvements and more Rust coming». ZDNet (en inglés). Archivado desde el original el 7 de septiembre de 2022. Consultado el 7 de septiembre de 2022. 
  12. Torvalds, Linus (14 de agosto de 2022). «Linux 6.0-rc1». LWN.net. Consultado el 7 de septiembre de 2022. 
  13. Vaughan-Nichols, Steven (19 de septiembre de 2022). «Linus Torvalds: Rust will go into Linux 6.1». ZDNET (en inglés). Archivado desde el original el 19 de enero de 2023. Consultado el 20 de septiembre de 2022. 
  14. Proven, Liam (5 de octubre de 2022). «Linux 6.1: Rust to hit mainline kernel». The Register (en inglés). Archivado desde el original el 12 de octubre de 2022. Consultado el 12 de octubre de 2022. 
  15. Corbet, Jonathan. «Next steps for Rust in the kernel». LWN.net. Archivado desde el original el 8 de junio de 2023. Consultado el 3 de mayo de 2023. 
  16. Larabel, Michael. «More Rust Code Readied For Linux 6.4». phoronix.com. Consultado el 31 de agosto de 2024. 
  17. a b Leemhuis, Thorsten (Aug 29, 2024). «Linux kernel gets "blue screens" with QR code». heise.de. Consultado el 31 de agosto de 2024. 
  18. Larabel, Michael. «Rust Null Block Driver Published To Begin Experimenting With Rust For Linux Storage». phoronix.com. Consultado el 31 de agosto de 2024. 
  19. Larabel, Michael. «The First Rust-Written Network PHY Driver Set To Land In Linux 6.8». phoronix.com. Consultado el 31 de agosto de 2024. 
  20. «Rust abstractions for network PHY drivers». Consultado el 31 de agosto de 2024. 
  21. «Add a QR code panic screen». Consultado el 16 de junio de 2025. 
  22. a b c Larabel, Michael. «Microsoft Engineer Ports EXT2 File-System Driver To Rust». phoronix.com. Consultado el 31 de agosto de 2024. 
  23. Filho, Wedson Almeida (14 de abril de 2021). «Rust in the Linux kernel». Google Security Blog. Consultado el 31 de agosto de 2024. 
  24. Corbet, Jonathan (2 de septiembre de 2024). «Whither the Apple AGX graphics driver?». LWN.net. Consultado el 5 de septiembre de 2024. 
  25. Larabel, Michael. «Initial Rust DRM Abstractions, AGX Apple DRM Driver Posted For Review». phoronix.com. Consultado el 31 de agosto de 2024. 
  26. Larabel, Michael. «PuzzleFS Continues Striving To Be The Best File-System For Containers». phoronix.com. Consultado el 31 de agosto de 2024. 
  27. Das, Ankush (21 de marzo de 2024). «Red Hat Unveils a Rust-based 'Nova' Driver: A Better Nouveau for Nvidia GPUs». news.itsfoss.com. Consultado el 4 de septiembre de 2024. 
  28. Larabel, Michael. «Red Hat's Long, Rust'ed Road Ahead For Nova As Nouveau Driver Successor». phoronix.com. Consultado el 31 de agosto de 2024.