A estas alturas ya nadie duda de lo increíblemente ambicioso que es Starlink, el proyecto de SpaceX para ofrecer acceso a Internet de manera global vía satélite. Ya son más de 1.000 los satélites puestos en órbita por el proyecto de Elon Musk para no dejar ni un rincón de nuestro planeta sin acceso a la red, y de cumplirse los planes a medio y largo plazo, su red completa alcanzaría los 42.000 satélites.
SpaceX se lleva muy bien con Linux. La compañía está utilizando el sistema operativo abierto no sólo en los ordenadores que llevan a bordo los cohetes Falcon o las naves Dragon, sino que también lo están utilizando en la constelación de satélites que han lanzado al espacio, con varios ordenadores en cada uno de ellos.
El Falcon 9, el cohete reutilizable que aterriza y que SpaceX usa en sus lanzamientos, utiliza una versión simplificada de Linux utilizando tres procesadores de cuatro núcleos con arquitectura x86 similares en potencia a un móvil, con código escrito en C/C++. Tal y como explicamos el pasado mes de noviembre, es necesario que todas las tareas se procesen a la vez en tres procesadores diferentes, ya que la radiación del espacio puede hacer que “salte” un bit y dé una información o cálculo erróneo.
Cada satélite de Starlink tiene más de 60 ordenadores con Linux
Por ello, se compara la información entre los tres procesadores (que funcionan a frecuencias muy reducidas), y si ésta es igual en dos y está mal en uno, se coge la que han obtenido la que coincide entre los dos procesadores. Esto es mucho más barato que tener que diseñar un procesador desde cero para el espacio.
Sin embargo, además de en las naves y cohetes, también están utilizando Linux en los satélites de Starlink. En junio del 2020 ya habían puesto 480 satélites en órbita, y a finales de esa semana esperan lanzar otros 60 más, acercándose a los 800 que necesitaban para empezar a dar servicio en Estados Unidos a finales del 2020 en forma de beta pública.
La ejecución de Linux se hace en tiempo real con un parche
Y es que cada satélite lleva incorporados más de 60 nodos de Linux, por lo que en cada lanzamiento tenemos más 4.000 nodos nuevos basados en Linux, sumando ya un total de 32.000 nodos con Linux en el espacio, además de 6.000 microcontroladores. Los ordenadores utilizan Linux con el parche PREEMPT_RT, que convierte Linux en un sistema operativo de tiempo real para realizar cálculos y correcciones en el menor tiempo posible. Además, han desarrollado sus propios drivers en Linux para interactuar con su hardware.
SpaceX confirmó que la nave Dragon utilizaba Linux con software escrito en C++, usando librerías open-source si éstas son de buena calidad, o desarrollando las suyas propias para tener el mayor control posible de todo. La pantalla táctil de la nave se renderiza usando Chromium y JavaScript. También hay un desarrollo conjunto con la interfaz que usan astronautas de la NASA y los satélites de Starlink, donde la tecnología que usan las pantallas de la tripulación, como mapas y alertas, forma parte de la interfaz de los dos primeros satélites (Tintin A y B) que Starlink lanzó en febrero de 2018. Así, SpaceX afirma que cualquier persona que desee trabajar en la compañía, ha de hacer que Linux sea un eje central en su formación.
La compañía ha puesto también mucho empeño en la seguridad en sus conexiones, donde todo usará cifrado de extremo a extremo y los satélites, los gateways y las terminales de conexión de los usuarios sólo podrán ejecutar software firmado por SpaceX. Además, han dicho que no usan ni Machine Learning ni IA, aunque no descartan hacerlo en el futuro. Sin embargo, no han dicho qué procesadores utilizan los satélites, pero por sus palabras dan a entender que son compatibles con IA y funciones de ese tipo.
Una vez que el servicio de banda ancha satelital de Starlink inicie, la seguridad de estos sistemas Linux se convierte en una de las grandes prioridades de SpaceX. Pero según contaron sus ingenieros, es un aspecto que ya han tenido bastante en cuenta:
"Cada pieza de hardware de nuestro sistema está diseñado para ejecutar sólo software firmado por nosotros, de modo que incluso si un atacante accede [al sistema], no podrá contar con un punto de apoyo permanente.
[Además] diseñamos el sistema para que usara una encriptación de extremo a extremo en los datos de nuestros usuarios, de modo que una intrusión en uno de nuestros satélites o de nuestras puertas de enlace será poco útil para un atacantes que quiera interceptar nuestras comunicaciones".
Comments