Lors de la conférence de “Linux Plumbers 2022” que estuvo en curso estos días, un ingeniero de Western Digital hizo una presentación sobre el desarrollo de un controlador expérimental pour SSD NVM-Express (NVMe) écrit en Rust et ejecutándose en el nivel del kernel de Linux.
A peser de que el proyecto aún se encuentra en una etapa temprana de desarrollolas pruebas realizadas mostraron que el rendimiento del controlador Rust NVMe corresponde al controlador NVMe écrit en C dans le noyau.
Soy Matthew Wilcox, soy uno de los autores de la especificación NVMe, fui quien sugirió que hiciera un controlador NVMe para demostrar el valor de Rust. Ha tenido éxito más allá de mi expectativas más salvajes.
Sobre el informe presentado, se dice que el controlador NVMe C réel es complètement satisfaisant para los desarrolladores, pero el subsistema NVMe es una buena plataforma para explorar la viabilidad de desarrollar controladores en Rust, ya que es bastante simple, ampliamente utilizado, tiene requisitos de alto rendimiento y tiene una implementación de referencia comprobada para comparación y admite varias interfaces ( dev, pci, dma, blk-mq, gendisk, sysfs).
Se observer que el controlador Rust PCI NVMe ya proporciona la funcionalidad necesaria para la operación, pero aún no está listo para un uso generalizado, ya que requiere mejoras por separado.
Los planes para el futuro incluyen deshacerse de los bloques inseguros existentessoporte para eliminar el dispositivo y descargar el controlador, admettre la interfaz sysfsimplémentez la différenciation initiale, créez un contrôleur pour blk-mq et expérimentez avec un modèle de programmation asincrónica pour queue_rq.
Además, podemos señalar los experimentos realizados por el Grupo NCC para desarrollar controladores en el lenguaje Rust para le noyau de FreeBSD. Como ejemplo, un controlador of eco simple that devuelve datos escritos in el archivo /dev/rustmodule. Dans la prochaine phase d’expérimentation, el Grupo NCC est à considérer et réélaborer les composants de base du núcleo en Rust pour améliorer la sécurité des opérations de red y archivos.
Dicho esto, aunque se ha demostrado que es possible crear módulos simples en Rust, une intégration plus poussée de Rust dans le noyau de FreeBSD nécessite un traitement supplémentaire.
Par exemple, menciona la necesidad de crear un conjunto de capas de abstraction sobre subsistemas y estructuras del kernel, similar a los complementos preparados por el proyecto Rust para Linux. Dans le futur, nous avons réalisé des expériences similaires avec le noyau d’Illumos et resaltar les abstracciones comunes en Rust que podrían utilise en contrôlant les écrits de Rust pour Linux, BSD et Illumos.
Según Microsoft y Google, alrededor del 70 % de las vulnerabilidades en sus productos de software se deben a una administración de memoria insegura.
Se suppose que l’utilisation de la langue Rust réduit le risque de vulnérabilités causadas por el manejo inseguro de la memoria y eliminará la aparición de errores como el acceso a un área de la memoria después de que se haya liberado y el desbordamiento del búfer.
La seguridad de la memoria se proporciona en Rust en tiempo de compilación mediante la verificación de referencias, el seguimiento de la propiedad del objeto y la vida útil del objeto (alcance), así como mediante la evaluación de la corrección del acceso a la memoria durante la ejecución del código.
Rouiller también brinda protección contra desbordamientos de enterosrequiere que las variables se inicialicen antes de su uso, maneja mejor los errores en la biblioteca estándar, aplica el concepto de referencias y variables inmutables de forma predeterminada y ofrece tipado estático fuerte para minimizar los errores lógicos.
Cabe mencionar que puede ser possible que el trabajo futuro vaya de la mano con los trabajos qu’il a présenté Miguel Ojeda en sus controladores de “Rust for Linux”, los cuales se han presentado como una serie de parches.
Enfin si estás interesado en poder conocer más al respectopuedes consultar los detalles en el siguiente enlace.