Linux é uma das estrelas do SpaceX

Internet da rede Starlink da SpaceX se prepara para usuários beta

No último dia 30 de maio, a SpaceX tornou-se a primeira nave espacial e o primeiro voo tripulado pelos EUA em nove anos. A missão colocou com sucesso os astronautas da NASA Bob Behnken e Doug Hurley em órbita. Na bagagem, além da parafernália eletrônica do hardware e do combustível de foguete, havia o Linux que, literalmente, é uma das estrelas do SpaceX.

O sistema do pinguim move supercomputadores, dispositivos da Internet das Coisas (IoT) além de outros equipamentos. Portanto, o Falcon 9 voa com o Linux. E isso não foi de uma hora para outra. Este tipo de ação leva muito tempo. Os engenheiros de software da SpaceX explicaram como a programação do Falcon 9 funciona.

Na época, os desenvolvedores disseram:

A equipe da Flight Software tem cerca de 35 pessoas. Escrevemos todo o código para aplicativos Falcon 9, Grasshopper [o foguete de teste Falcon 9] e Dragon; e fazemos o trabalho da plataforma principal, nesses veículos. Do mesmo modo, desenvolvemos software de simulação, testamos o código de vôo e o software de comunicação e análise implantado em nossas estações terrestres. Também trabalhamos no Controle de Missões.

O sistema operacional a bordo do Falcon 9 é um Linux simplificado. Ele é executado em três processadores x86 de núcleo duplo comuns. O próprio software de vôo é executado separadamente em cada processador e é escrito em C/C ++.

Hardware antigo, porém, eficiente

As CPUs da espaçonave estão longe de serem as mais novas e melhores. Elas foram desenvolvidas para naves espaciais, o que leva anos – até décadas – para ir da prancheta de desenho ao lançamento.

Por exemplo, a Estação Espacial Internacional (ISS) é executada nas CPUs Intel 80386SX de 20 MHz vintage de 1988. No entanto, não se sabe quais chips o Falcon 9 usa. As chances são de que o design seja pelo menos uma década mais antigo do que o atual.

É claro que, embora esses chips antigos funcionem para o comando e controle da estação (C&C MDM), eles não servem para outra coisa. Para o trabalho diário, os astronautas usam o HP ZBook 15s executando Debian LinuxScientific Linux e Windows 10. Os sistemas Linux agem como terminais remotos para o C&C MDM, enquanto os sistemas Windows são usados para e-mail, web e diversão.

Normalmente, porém, os chips que entram no espaço não são chips comuns. As CPUs que ficam no espaço devem ser protegidas da radiação. Caso contrário, eles tendem a falhar devido aos efeitos da radiação ionizante e dos raios cósmicos. Esses processadores personalizados passam por anos de trabalho e depois mais anos de testes antes de serem certificados para voos espaciais.

Por exemplo, a NASA espera que seu processador de última geração, uma variante ARM A53 que você conhece do Raspberry Pi 3, esteja pronto para ser executado em 2021. Como o primeiro passo do Falcon 9 isso basta e os chips não precisam enfrentar radiação.

Linux é uma das estrelas do SpaceX

Linux é uma das estrelas do SpaceX

Por que três processadores?

Isso porque, conforme explicado no StackExchange Space Exploration, o SpaceX usa um sistema próprio (actor model) para fornecer segurança por meio de redundância. Nesse sistema, toda vez que uma decisão é tomada, ela é comparada aos resultados dos outros núcleos.

Se houver algum desacordo, a decisão será descartada e o processo será reiniciado. Somente quando todos os processadores tiverem a mesma resposta é que um comando é enviado aos microcontroladores PowerPC.

Esses controladores, que dão partida nos motores de foguete, recebem três comandos de cada um dos processadores x86. Se todas as três cadeias forem idênticas, o microcontrolador executará o comando, mas se uma das três estiver incorreta, o controlador seguirá a última instrução correta anteriormente. Se tudo der errado, o Falcon 9 ignorará os comandos do chip que falhou.

Redundância e segurança

O objetivo dessa tripla redundância é reduzir falhas. Aviões modernos, como os Airbus mais novos, usam uma abordagem semelhante em seus sistemas fly-by-wire.

Antes de voar, a SpaceX testa seu software e hardware. Lá, eles podem executar simulações completas com falhas catastróficas, sem perder um foguete.

A sonda Dragon também roda o Linux com um software de voo escrito em C ++. A interface da tela de toque é renderizada usando Chromium e JavaScript. Se algo der errado com a interface, os astronautas têm botões físicos para controlar a espaçonave.

ZDNet