Desde Linux David Y. Naranjo  

RT-Thread 5.3: Integración de Rust, VirtIO 1.2 y Sockets Unix

RT-Thread

RT-Thread es un sistema operativo en tiempo real (RTOS) de código abierto, neutral y basado en la comunidad.

Hace pocos dias se dio a conocer el lanzamiento de la nueva version de RT-Thread 5.3, una actualización mayor que introduce una integración sin precedentes con el lenguaje Rust y una ampliación del soporte para microcontroladores y plataformas de virtualización avanzadas. Estas novedades buscan facilitar la adopción del sistema en entornos que demandan tanto alta eficiencia energética como máxima seguridad a nivel de programación.

Una de las características más relevantes de esta versión es la ampliación radical de la compatibilidad para desarrollar componentes en Rust. RT-Thread 5.3 ha incorporado enlaces nativos de este lenguaje para gestionar hilos, mutexes, colas de mensajes y operaciones con memoria y archivos. A nivel de infraestructura, se ha implementado soporte directo para Cargo y SCons, permitiendo la detección automática de plataformas ARM, AArch64 y RISC-V, e introduciendo macros procedimentales para simplificar la inicialización y el registro de comandos.

Ademas de ello, en la virtualización el sistema recibio el soporte completo para VirtIO 1.2. Esto habilita el uso de colas empaquetadas, transportes PCI/MMIO y sincronización de memoria de acceso directo (DMA). Se han añadido nuevos controladores para redes, dispositivos de bloques y GPU, junto a módulos específicos para criptografía y generadores de números aleatorios (RNG). Adicionalmente, el núcleo ahora incorpora el sistema de archivos 9PFS, fundamental para un intercambio de datos fluido entre el sistema anfitrión y las máquinas virtuales.

Gestión de energía y nuevos marcos de trabajo

Para optimizar el uso de los recursos en los sistemas embebidos, se ha implementado el marco de trabajo DVFS (Escalado Dinámico de Voltaje y Frecuencia). Este módulo gestiona de forma inteligente la frecuencia de la CPU y los dispositivos periféricos según la carga de trabajo, integrándose perfectamente con el firmware ARM SCMI para el control térmico y la gestión de energía.

El manejo del tiempo interno también ha sido rediseñado desde cero. El nuevo marco de trabajo «Clock Time» unifica la gestión de temporizadores de alta precisión y facilita la sincronización horaria entre múltiples fuentes, reemplazando de manera definitiva los antiguos componentes ktime, cputime y hwtimer. En términos de redes inalámbricas, la seguridad se ha robustecido con la integración de los estándares WPA3, Autenticación Empresarial (EA), WAPI, OWE y el mecanismo de aprovisionamiento DPP.

A nivel de comunicaciones internas, RT-Thread 5.3 introduce soporte completo para sockets Unix (AF_UNIX), abarcando tanto flujos (streams) como datagramas. Esta implementación incluye la vinculación de rutas, soporte para socketpair, sondeos (poll), tiempos de espera y el paso de descriptores a través de SCM_RIGHTS. En el entorno de red tradicional basado en lwIP, se han corregido las fugas de memoria por solicitudes excesivas en el servidor DHCP y se ha hecho obligatoria la verificación de certificados TLS cuando se configura una Autoridad Certificadora (CA).

Por otra parte, las llamadas como mq_send ahora se bloquean correctamente cuando la cola de mensajes está llena, cumpliendo con la especificación oficial. Asimismo, se han resuelto inconsistencias en la biblioteca estándar C relacionadas con las variables de condición en pthreads, la normalización de fechas en funciones de tiempo y la carga repetida de módulos dinámicos mediante dlopen.

Sistemas de archivos, herramientas y soporte

El núcleo ahora soporta operaciones atómicas de 8 y 16 bits de forma nativa. En el almacenamiento, el popular sistema de archivos FatFs ha sido actualizado a su revisión R0.16, mientras que se reforzó la validación de rutas y la gestión de fugas de recursos en RAMFS, TMPFS y ROMFS. Los procesos ligeros (lwP) han mejorado al extender su soporte hacia la arquitectura ARM, integrando el mecanismo vDSO (Objeto Compartido Dinámico Virtual) para trasladar manejadores del kernel al espacio de usuario.

Tambien se destaca la adición de soporte oficial para la Raspberry Pi 5 (procesador BCM2712/RP1) y la separación de las configuraciones para RP2040 y RP2350, ademas se integran placas de desarrollo como la familia NXP FRDM-MCXA366, las STM32H723 de STMicroelectronics y los procesadores RISC-V XuanTie C908X. Para los desarrolladores, el conjunto de herramientas (toolchain) ahora soporta la generación de bases de datos de compilación para VS Code, salidas deterministas en CMake y compatibilidad directa con los scripts de construcción del lenguaje Zig.

Finalmente si estas interesado en poder conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.

Artículo original

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.