China lanzó un satélite que incluye un kernel Linux dual escrito en Rust
Hace poco, se dio a conocer la noticia de que China lanzo el satélite, el Tianyi 33, que ejecuta una versión personalizada del kernel de Linux integrada con componentes en tiempo real escritos en Rust, utilizando abstracciones y capas proporcionadas por Rust.
Este lanzamiento se realizó junto con los satélites Honghu y Honghu-2 en el cohete Zhuque-2, marcando el tercer vuelo de este cohete de metano con capacidad para llevar 1.500 kg a una órbita heliosincrónica.
El Tianyi 33, es un satélite de investigación comercial desarrollado en conjunto de Spacety Aerospace Co., el Instituto de Investigación Changsha Gaoxinqu Tianyi en Hunan y la Universidad de Ciencia y Tecnología de Hunan.
En términos de software, el Tianyi 33 cuenta con un sistema operativo que incluye un kernel RROS dual. Este enfoque combina un kernel de Linux utilizado para resolver tareas generales y un kernel RROS escrito en Rust para operaciones que requieren estricto cumplimiento de tiempo real.
RROS se destina principalmente a satélites, abordando la creciente necesidad de realizar tanto tareas tradicionales en tiempo real, como comunicación y posicionamiento, como funciones de propósito general que requieren un soporte de software complejo y maduro, como compresión de datos y aprendizaje automático. La arquitectura de doble núcleo de RROS destaca, y su núcleo en tiempo real implementado completamente en Rust ofrece mayor seguridad y solidez. Además, RROS tiene aplicaciones potenciales en áreas como automóviles automáticos, IoT y control industrial.
Las ventajas de RROS son:
- Tiempo real difícil: RROS ofrece un rendimiento en tiempo real superior en comparación con RT-Linux. RROS está diseñado con un programador de tareas eficiente que puede responder rápidamente a eventos externos, reduciendo el cambio de tareas y los retrasos en el procesamiento.
- Compatibilidad: RROS es compatible con casi todos los programas de Linux, lo que permite una migración perfecta de aplicaciones Linux complejas como TensorFlow y Kubernetes. También puede modificar fácilmente sus programas generales de Linux para convertirlos en una contraparte más en tiempo real.
- Fácil de usar: RROS facilita la programación y depuración de programas en tiempo real. RROS utiliza la interfaz libevl para llamar a API en tiempo real para programas de usuario, lo que le permite utilizar herramientas como gdb, kgdb y QEMU.
- Robustez: El núcleo en tiempo real de RROS está cuidadosamente escrito en Rust, lo que lo hace más seguro y robusto, especialmente para problemas de memoria y concurrencia.
El kernel de Linux, en el Tianyi 33, se basa en de la rama 5.13 y aborda tareas generales como compresión de datos y procesamiento de modelos de aprendizaje automático. En contraste, el kernel RTOS está dedicado a funciones especializadas, garantizando tiempos de respuesta fiables para actividades críticas como posicionamiento espacial, recopilación de datos científicos y comunicaciones.
Además de ello, se menciona que esta dualidad, garantizará la ejecución normal de aplicaciones de capa superior y tareas de investigación científica, como medición de retardo de tiempo entre satélite y tierra, transmisión de video en vivo, servicios de chat web a bordo, experimentos pseudo-SSH, etc. Esta es la primera aplicación oficial del mundo de un sistema operativo de doble núcleo escrito en Rust en un escenario satelital.
El kernel es compatible con la API en tiempo real proporcionada por la biblioteca libevl y utiliza la arquitectura de doble kernel propuesta por el proyecto Xenomai/EVL. El kernel RTOS contiene un programador de tareas y mecanismos de sincronización separados, sus propias implementaciones de subprocesos y procesos, un nivel de traducción de direcciones, un subsistema de asignación de memoria, un caché y una pila de red con soporte para el protocolo UDP.
El desarrollo tomó dos años y fue llevado a cabo por un equipo de investigación de la Universidad de Correos y Telecomunicaciones de Beijing.
Finalmente, cabe mencionar que el código del Kernel utilizado en el Tianyi 33 fue desarrollado por un grupo de investigación de la Universidad de Correos y Telecomunicaciones de Beijing (BUPT) y está disponible para el público en general como código abierto bajo la licencia GPLv2. Puedes consultarlo en el siguiente enlace.