¿Alguien trabaja en un "linux de nave espacial"?

Hay bastantes adaptaciones industriales de Linux, como en el firmware de su enrutador o en el sistema operativo Android. A largo plazo, probablemente cualquier nave espacial necesitará ejecutar perfiles más o menos estándar de paquetes de software, como navegación, comunicación... creo que cuanto más OSS (software de código abierto), mejor. Todos deberíamos saber el valor que brinda la comunidad OSS a las industrias de la Tierra. (Suponga también que habrá un aumento del hardware abierto de aviónica también).

Entonces, la pregunta: ¿hay algún enfoque continuo para una distribución de "Linux para naves espaciales"?

Lo que suelo ver es un middleware comúnmente desarrollado que puede ejecutarse en varias plataformas, pero he votado a favor de su pregunta porque tengo curiosidad por saber si alguien se ha esforzado por crear algún tipo de distribución común.

Respuestas (3)

Actualizaciones: se agregaron Astro Digital y Planet Labs en la parte inferior.

No existe una distribución de Linux específica para naves espaciales. Al menos no todavía. He oído hablar de grupos que básicamente tomaron Buildroot para construir solo la cantidad de sistema Linux que necesitaban para un satélite. Más allá de eso, necesitaban proporcionar el middleware o las aplicaciones personalizadas.

Es tentador poner Linux en satélites pequeños de bajo costo (es decir, CubeSats), hay que recordar que estos satélites tienen presupuestos de energía extremadamente ajustados, dictados por la cantidad de energía que pueden reunir de los paneles fotovoltaicos. Es decir, este es un entorno en el que la eficiencia del código y el bajo consumo de energía superan con creces la productividad del programador.

En cuanto a los grupos que trabajan en Linux en naves espaciales, aquí hay un par que se puede discutir públicamente: Tyvak (activamente) y Boeing (porque la NASA y AF lo requieren). (Y ahora he agregado Astro Digital a continuación).

Tyvak Nano-Satellite Systems mantiene su propia distribución de Linux para software de vuelo. Ver: Capacidades de Tyvak

Han construido tableros tolerantes a la radiación para la aviónica de CubeSat. De hecho, solían tener una placa de aviónica espacial basada en ARM específica en su sitio web, que ejecutaba Linux. Pero ya no lo veo por su nombre. (Recuerdo el nombre "Intrepid"; alguien podría encontrar esto en algunos trabajos de investigación publicados).

Boeing obtuvo recientemente el contrato para desarrollar un chip de procesador de computación de vuelo espacial de alto rendimiento (HPSC) para la NASA y la Fuerza Aérea. El chiplet será un ARM Cortex-A53 de cuatro núcleos que utilizará bibliotecas de células estándar rad-hard by design (RHBD). El requisito de software para el chip es ejecutar una combinación de Linux y un sistema operativo en tiempo real. La Fuerza Aérea quiere esto para sus diseños avanzados de satélites. La NASA sabe que necesita procesadores avanzados con una mayor capacidad de autonomía en misiones robóticas en el espacio profundo y vuelos espaciales tripulados. Ver: Boeing desarrollará un procesador espacial resistente a la radiación de próxima generación basado en la arquitectura ARM

Hay un par de otras compañías comerciales de CubeSat que creo que usan Linux en sus satélites, pero no puedo encontrar esto fácilmente en sus páginas web. Por lo que vale, los dos en los que estoy pensando hacen observación de la Tierra y tienen grandes granjas de servidores en el suelo.

Actualización: una de las otras empresas que tenía en mente es Astro Digital; su nombre anterior es Aquila Space. Su Corvus-BC tiene (o tenía) Linux ejecutándose en ARM Cortex-A8. Diapositivas de Aquila Space de 2015 Hace aproximadamente un año, asistí a una charla de Astro Digital, donde uno de ellos dijo que incluso los ingenieros aeroespaciales (científicos no informáticos) podían programar la nave espacial porque estaban usando Python. Levanté la mano para comprobar. "Espera. ¿Python en la nave espacial?" Sí. Sonreí como cualquier pitonista serio debería hacerlo en este punto. :-) Tenga en cuenta que a medida que avanzan los CubeSats, las naves espaciales Astro Digital son bastante grandes. Tienen diseños de 6U y 16U, con arreglos de paneles solares preparados para alimentarlos.

Actualización: También tenía en mente Planet Labs, ahora conocido simplemente como "Planet". Resulta que hay una pregunta de Space Stack Exchange que aborda esto. Tienen su propia distribución interna que modifican para su flota de satélites.

@uhoh 'Potencia requerida para realizar las funciones necesarias', más probable. La asignación de memoria, por ejemplo, naturalmente requeriría más memoria integrada, y se necesita energía para ejecutar la memoria. Para una barra de DDR3, obtengo números en el rango de 5 W, bastante si tiene un presupuesto de energía ajustado. Por supuesto, los satélites probablemente no utilicen DDR3, pero el punto es firme: cuanto más liviano sea su software, más liviano debe ser su hardware, lo que se traduce en menos energía requerida.
@Rick0xfff "... este es un entorno en el que la eficiencia del código y el bajo consumo de energía superan con creces la productividad del programador". ¿Qué es exactamente la 'eficiencia del código'? ¿Número de líneas de fuente? milijulios por iteración? ¿Asignación de memoria?
@uhoh: Las dos últimas más el número de tareas que puede ejecutar por tiempo determinado (están relacionadas pero no necesariamente proporcionales). El problema es que la electrónica industrial se freirá en el espacio, por lo que tendrás que programar para una CPU de 100 MHz con 4 MB de RAM o algo así. En ese momento, todas las cosas que damos por sentado como programadores se vuelven críticamente escasas.
SpaceX usa Linux en todo su hardware de vuelo (no estoy seguro si en el espíritu de la pregunta, pero de todos modos) space.stackexchange.com/questions/9243/…
@uhoh: utilicé la "eficiencia del código" libremente, pero los milijulios para realizar una tarea, por ejemplo, ejecutar una función, son aproximadamente correctos en lugar de líneas de código fuente. Para tareas estrictas en tiempo real en las que no es necesario buscar, tiene sentido deshacerse de las MMU. Pero si tiene una carga de trabajo diversa que cambia con el tiempo y la fase de la misión, entonces la flexibilidad de una MMU es muy útil, razón por la cual la NASA postula Linux en una misión en el espacio profundo con un alto grado de autonomía.
@Giskard42: Escuché sobre SpaceX usando Linux en Falcon 9 y Dragon también. De hecho, en el caso de Falcon 9, escuché que se incorporó un esquema de tolerancia a fallas. Para la corta duración de un vuelo de Falcon 9, ese es un enfoque interesante frente a la costosa electrónica radical. Sin embargo, dada la rápida evolución del propulsor, no podría afirmar con confianza cuál es su enfoque actual sin hablar con los ingenieros actuales en aviónica. ... Dragón: Me imagino que las necesidades de energía de las computadoras de la nave espacial se ven eclipsadas por las necesidades de energía del soporte vital y las interfaces de usuario. :-)
@Rick0xfff gracias por la respuesta, esto es algo interesante y seguirá siendo cada vez más interesante. Un ejemplo es la potencia muy baja e intermitente; brandonlucia.com/pubs/chain.pdf y algunos antecedentes phys.org/news/2016-10-energy-harvesting-reliable.html el grupo abstract.ece.cmu.edu
Como nota adicional, se publicó un artículo reciente titulado "Uso actual de Linux en software de vuelo de naves espaciales". Compruébelo aquí: ieeexplore.ieee.org/abstract/document/8170152 Creo que el documento también está en ResearchGate si no tiene acceso a IEEE

La corporación Kubos ( divulgación: trabajo en Kubos ) tiene una distribución de Linux específica de cubesat y un sistema operativo en tiempo real (RTOS), para cubesats con presupuestos de procesamiento y energía más ajustados, ya que, como señaló Rick 0xfff, arriba, cubesats más pequeños no No obtendrá mucho de un presupuesto de energía.

Kubos, como se sugiere en su respuesta, tomó Buildroot y creó un Linux liviano para Soluciones innovadoras en Space OBC y Pumpkin (basado en BeagleBone Black) OBC.

El RTOS se ejecuta en varias placas de desarrollo económicas (MSP430F5529, STM32F407 Discovery, MicroPython) y los OBC ClydeSpace y NanoAvionics.

EDITAR: nuestro repositorio de GitHub para el software contiene nuestro código fuente abierto para los sistemas operativos.

¡Gracias por la respuesta! Agregué el enlace a su github a nuestra lista de recursos de software .

Definí FlightLinux tal vez hace 10 años. NASA/GSFC tiene una serie de software de aplicación de vuelo basado en Linux llamado Core Flight Software. También hay un sistema operativo llamado Core Flight System. Pat Stakem, tipo jubilado del software de vuelo de la NASA, en Linkedin.

Su respuesta podría mejorarse con información de apoyo adicional. Edite para agregar más detalles, como citas o documentación, para que otros puedan confirmar que su respuesta es correcta. Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda .
Un artículo sobre FlightLinux de 2001: linux.com/news/flightlinux-tux-space