Western Digital ya trabaja en un controlador NVMe escrito en Rust

RustLinux

La integración de Rust en Linux ha tenido un gran nivel de aceptación por parte de la comunidad y desarrolladores

Durante la conferencia 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 experimental para SSD NVM-Express (NVMe) escrito en Rust y ejecutándose en el nivel del kernel de Linux.

A pesar de que el proyecto aún se encuentra en una etapa temprana de desarrollo, las pruebas realizadas mostraron que el rendimiento del controlador Rust NVMe corresponde al controlador NVMe escrito en C en el kernel.

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 actual es completamente satisfactorio 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 observa 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 existentes, soporte para eliminar el dispositivo y descargar el controlador, admitir la interfaz sysfs, implementar la inicialización diferida, crear un controlador para blk-mq y experimentar con un modelo de programación asincrónica para queue_rq.

Además, podemos señalar los experimentos realizados por el Grupo NCC para desarrollar controladores en el lenguaje Rust para el kernel de FreeBSD. Como ejemplo, un controlador de eco simple que devuelve datos escritos en el archivo /dev/rustmodule. En la próxima fase de experimentación, el Grupo NCC está considerando reelaborar los componentes básicos del núcleo en Rust para mejorar la seguridad de las operaciones de red y archivos.

Dicho esto, aunque se ha demostrado que es posible crear módulos simples en Rust, una integración más estrecha de Rust en el kernel de FreeBSD requerirá trabajo adicional.

Por ejemplo, menciona la necesidad de crear un conjunto de capas de abstracción sobre subsistemas y estructuras del kernel, similar a los complementos preparados por el proyecto Rust para Linux. En el futuro, planeamos realizar experimentos similares con el núcleo de Illumos y resaltar las abstracciones comunes en Rust que podrían usarse en controladores escritos por Rust para Linux, BSD e 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 supone que el uso del lenguaje Rust reducirá el riesgo de vulnerabilidades 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.

Rust también brinda protección contra desbordamientos de enteros, requiere 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 posible que el trabajo futuro vaya de la mano con los trabajos que ha presentado Miguel Ojeda en sus controladores de «Rust for Linux», los cuales se han presentado como una serie de parches.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.



from Desde Linux https://ift.tt/wdRPn5C
via IFTTT

No hay comentarios.:

Publicar un comentario