Después de más de un año de desarrollo, se ha publicado la versión del cliente de comunicación Dino 0.3, que soporta la participación en chats e intercambio de mensajes utilizando el protocolo Jabber/XMPP.

Miguel Ojeda, autor del proyecto Rust-for-Linux, propuso para consideración de los desarrolladores del núcleo de Linux la quinta opción de componentes para el desarrollo de controladores de dispositivos en el lenguaje Rust. El soporte para Rust se considera experimental, pero ya está incluido en la rama linux-next y es lo suficientemente maduro como para comenzar a trabajar en la creación de capas de abstracción sobre los subsistemas del núcleo, así como para escribir controladores y módulos. El desarrollo está financiado por Google y la organización ISRG (Internet Security Research Group), que es la fundadora del proyecto Let's Encrypt y promueve el uso de HTTPS y el desarrollo de tecnologías para aumentar la seguridad de Internet.

Recordemos que los cambios propuestos permiten usar Rust como segundo lenguaje para el desarrollo de controladores y módulos del núcleo. El soporte para Rust se presenta como una opción, no activada por defecto y no provoca la inclusión de Rust entre las dependencias de construcción obligatorias del núcleo. Usar Rust para el desarrollo de controladores permitirá crear controladores seguros y de mayor calidad con un esfuerzo mínimo, libre de problemas como el acceso a áreas de memoria después de su liberación, la desreferencia de punteros nulos y la salida de los límites del búfer.

El manejo seguro de la memoria se garantiza en Rust durante la compilación a través de la verificación de referencias, el seguimiento de la propiedad de los objetos y la consideración del tiempo de vida de los objetos (áreas de visibilidad), 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 proporciona medios para proteger contra desbordamientos enteros, requiere la inicialización obligatoria de los valores de las variables antes de su uso, maneja mejor los errores en la biblioteca estándar, aplica el concepto de inmutabilidad (immutable) de referencias y variables por defecto, y ofrece una fuerte tipificación estática para minimizar errores lógicos.

En la nueva variante de los parches, se continúa abordando los comentarios realizados durante las discusiones de la primera, segunda, tercera y cuarta versiones de los parches. En la nueva versión:

  • Se ha añadido a la sistema de integración continua basada en el bot 0DAY/LKP, apoyado por Intel, la verificación de componentes para el soporte de Rust y se han comenzado a publicar informes sobre pruebas. Se está preparando la integración del soporte de Rust en el sistema de pruebas automatizadas KernelCI. Las pruebas basadas en GitHub CI han sido trasladadas al uso de contenedores.
  • Los módulos del núcleo en Rust se han despojado de la necesidad de definir atributos de crate como «#![no_std]» y «#![feature(…)]».
  • Se ha añadido soporte para objetivos de construcción individuales (.o, .s, .ll y .i).
  • En las recomendaciones de formato de código se han definido reglas sobre la separación de comentarios («//») y la documentación de código («///»).
  • Se ha reestructurado el script is_rust_module.sh.
  • Se ha añadido soporte para primitivos de sincronización estáticos (variables globales compartidas) basados en la implementación de «CONFIG_CONSTRUCTORS».
  • Se ha simplificado la gestión de bloqueos: Guard y GuardMut se han combinado en un solo tipo parametrizado.
  • Se ha proporcionado la posibilidad de definir parámetros adicionales al registrar dispositivos.
  • Se ha añadido la abstracción «RwSemaphore», que actúa como un envoltorio sobre la estructura en C rw_semaphore.
  • Para utilizar mmap, se ha añadido un nuevo módulo mm y la abstracción VMA (envoltorio sobre la estructura vm_area_struct).
  • El controlador GPIO PL061 ha sido convertido para usar el macro «dev_*!».
  • Se ha realizado una limpieza general del código.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster