top of page

Space X: ¿Qué lenguajes de programación usa?

  • alethiaimperia
  • 7 nov 2021
  • 4 min de lectura

Actualizado: 20 nov 2021


Los lenguajes de programación son empleados para diseñar e implementar programas encargados de definir y administrar el comportamiento de los dispositivos físicos y lógicos de una computadora. Pero estos han ido evolucionando con el paso del tiempo. En esta entrada vamos a hablar de Space X.


Space X puede llevar a los astronautas hasta la estación espacial de manera autónoma. Esto con ayuda de los lenguajes de programación. Ahora conocerás un poco de la implementación de las tecnologías de la información y de la comunicación en la Tecnología Espacial


Software de la pantalla touch en la cápsula de Space X


Hablemos de esta pantalla touch que parece sacada de las películas de ciencia y ficción. Como puedes observar, hay un gran salto de tecnología en esta capsula. Perp, volviendo a la pantalla touch, esta es una pantalla muy moderna ya que muestra la posición de la capsula con respecto a la tierra y la estación espacial. A su vez muestra los diferentes movimientos de aceleración y rotación sobre los ejes x, y Y z para poder acelerar o desacelerar. Entonces…¿de qué está hecho esto? Sigue leyendo y lo sabrás.



Sistema operativo usado en Space X


El sistema operativo con que opera todo es Linux. Y sí, es el mismo Linux con el que muchos nos familiarizamos para programar o administrar redes. Pero este a comparación de otros tiene un kernel personalizado que le permite funcionar en tiempo real para tener una respuesta mas rápida.


Lenguaje de programación usado en Space X


¿En qué lenguaje de programación está hecho el código? Todo el sistema de vuelo de la cápsula Dragon, el cohete Falcon, los satélites Starlink están hechos con el viejo confiable C++ usando POO (programación orientada a objetos). Aunque todo el proceso de tooling esté hecho en Python.


Siendo así, todas las herramientas que usa Space X para su trabajo del día a día está programado sobre Python. Pero, cabe destacar que usan un software bastante conocido que se llama LabView. Este software es muy utilizado para proyectos científicos o para procesos industriales.


Interfaz

Esta interfaz está hecha en HTML, CSS y Javascript. Estos son conectados con chromium que es un motor render que permite que HTML, CSS y Javascript trabajen en una versión gráfica. Estas interfaces se conectan al sistema de vuelo que está hecho como ya dije anteriormente en C++. ¿Y esta conexión no es muy arriesgada? Lo es y por esta razón incorporaron botones físicos de los que te platicaré a continuación.


Botones físicos

Debajo de las pantallas se encuentran estos botones y cada uno de estos permite controlar los sistemas más importantes de la capsula y del cohete. También hay controles físicos como el cronómetro de la misión y un indicador de aceleración (que es la que están sintiendo los astronautas).


Testing o pruebas de software


Space X utiliza como metodologías de desarrollo de software continuous integration and testing que es un método mucho más ágil y confiable.


Lógica de cómputo y procesadores


Las computadoras a bordo de la cápsula son tres. Cuentan con tres procesadores cada uno y cada procesador tiene cuatro núcleos. Las tres computadoras funcionan de manera paralela e independiente, cada procesador corre dos versiones del sistema operativo. Lo que significa que hay 6 versiones dentro de la cápsula ejecutándose. Pero…¿por qué se tiene seis computadoras a bordo de un cohete haciendo lo mismo?


Esto se debe a que en todos los sistemas de aviación hay que tener un respaldo, de esta manera si una falla el otro toma el control inmediatamente. Hay una razón importante del por qué se corren seis sistemas operativos en paralelo y esta razón son los rayos cósmicos.


¿Cuál es el problema de los rayos cósmicos y aparatos electrónicos? Si un rayo cósmico llega precisamente a una pieza electrónica de uno de los procesadores de la cápsula Dragon ocurre algo que se le conoce como Bit flips (esto no es más que cuando un bit cambia de 0 a 1). Los bits se agrupan en ocho, estos grupos de ocho son los bytes que es la forma en la que se transmite información, cada uno representa una instrucción o información.


En tal caso, imaginemos que un rayo cósmico llega a un procesador y cambia un 0 a 1. Esto hará que toda la instrucción o información cambie por completo. En un vuelo de un cohete puede ser catastrófico, ese bit puede cambiar el cálculo de la curva de la órbita y entonces el cohete en lugar de ir hacia arriba vaya hacia abajo, informes dicen que esto ha sucedido. ¿Cómo se soluciona esto?


Se soluciona teniendo seis sistemas operativos corriendo al mismo tiempo y que cada vez que generan una ecuación, el proceso revisa que las seis computadoras tengan la misma respuesta. Si generó la misma respuesta el proceso sigue normal, pero si una de las computadoras no generó la misma respuesta entonces el proceso reinicia la computadora (un método que un ingeniero en sistemas sabe perfectamente).


Pero… ¿Cómo se reinicia una computadora que está en un cohete y que viaja a 11 veces la aceleración tradicional de la gravedad? Pues bien, solo buscas la memoria RAM de una de las computadoras con el sistema operativo que está corriendo bien y la copias, entonces automáticamente la computadora está en el mismo estado con el que estaba antes.


Se pueden desarrollar escudos de radiación, pero eso es muy costoso y hace que la cápsula pese más. Por lo que tener sistemas redundantes es la mejor opción hasta el momento. Aquí lo más interesante es que el mismo sistema operativo y bases de código funcionan en el cohete Falcon, cápsula Dragon y Starlink.



Como pudiste analizar no siempre se trata de usar la tecnología más avanzada o de moda, se trata de usar la tecnología que nos permita contratar más ingenieros y que me permita movernos más rápido dependiendo del problema a resolver.

Comentarios


bottom of page