No dia 30 de maio, a NASA voltou a realizar lançamentos de seus próprios astronautas, graças à tecnologia da SpaceX. A empresa de Elon Musk, com isso, iniciou a era dos voos comerciais tripulados ao levar dois astronautas até à Estação Espacial Internacional (ISS). Já conhecemos detalhes sobre os veículos, mas o software também é peça fundamental para as missões. E a SpaceX escolheu o Linux.
Para o lançamento, a empresa utilizou o foguete Falcon 9 e a nave Crew Dragon, uma versão tripulada de uma nave que já operava para transportar carga à ISS. O Falcon 9 é equipado com motores Merlin e alimentado com uma combinação de combustível LOX e RP-1. Além disso, há supercomputadores, dispositivos de Internet das Coisas (IoT) e muitos outros dispositivos críticos a bordo.
Para gerenciar todo este hardware, a SpaceX escolheu uma versão simplificada do sistema operacional Linux, que roda em três processadores x86 dual-core. E são chips comuns, longe de serem as CPUs mais novas do mercado. É que eles foram desenvolvidos para naves espaciais que levam anos para serem projetadas e fabricadas. Por isso, quando o projeto do foguete sai do papel, o processador já está ultrapassado. Mas isso não é um problema, já que tudo foi projetado para funcionar em conjunto.
A própria ISS, por exemplo, utiliza CPUs Intel 80386SX de 20 MHz, de 1988. São antigos, mas funcionam bem até hoje, já que não é necessário atualizar softwares que ficam cada vez mais robustos e exigentes, como acontece no mercado da computação. Já os modelos dos chips do Falcon 9 são desconhecidos, mas é provável que tenham pelo menos dez anos de idade.
No entanto, apesar de comuns e relativamente antigos, os chips que entram no espaço precisam receber uma proteção especial contra a radiação. Esses processadores personalizados passam por anos de trabalho de design e depois mais anos de testes antes de serem certificados para voos espaciais – outro motivo pelo qual acabam ficando “ultrapassados” quando voam para o espaço.
Voltando aos softwares, uma equipe com cerca de 35 pessoas escreve todo o código para aplicativos do Falcon 9, do Grasshopper (protótipos do Falcon 9) e da Dragon. Eles também fazem o trabalho da plataforma principal e escrevem softwares de simulação, o software de comunicação e análises e testam o código de voo. Os programadores da SpaceX preferem usar C ++, e às vezes Python.
Além do sistema operacional Linux, eles usam o LabView, uma ferramenta de programação gráfica executada no Windows. Ele foi criado pela empresa National Instruments e facilita a interação virtual de hardwares, possibilitando a análise de dados e o processamento de sinais de forma mais eficiente. Quanto ao código do veículo, é da ordem de algumas centenas de milhares de linhas.
Antes de realizar o voo, a SpaceX testa seu software e o hardware em uma mesa, através de simulações de voo completas, incluindo falhas catastróficas. Isso garante prever todas as condições que causariam um acidente sem perder nenhum foguete.
A Crew Dragon também roda o Linux com um software de voo escrito em C ++. A interface da tela sensível ao toque é renderizada usando Chromium e HTML5, CSS3 e JavaScript. Se algo der errado com essa interface, os astronautas ainda têm botões físicos para controlar a cápsula.