Como a SpaceX usa o Linux

Uma notícia do site Slashdot perguntou se C ++ era “uma linguagem realmente terrível”, e Elon Musk respondeu no Twitter com sua resposta em uma única palavra. “Sim.”

O ZDNet ressalta que os processadores “comuns” são frequentemente necessários devido ao tempo de desenvolvimento de vários anos para a espaçonave que eles alimentam. O artigo deles observa que a Estação Espacial Internacional realmente roda nos processadores Intel 80386SX de 20 MHz, vintage de 1988:

É claro que, embora esses chips antigos funcionem para o multiplexador/desmultiplexador de comando e controle da estação, eles não são muito bons para qualquer outra coisa. Para o trabalho diário, os astronautas usam o HP ZBook 15s executando Debian Linux, Scientific Linux e Windows 10. Os sistemas Linux agem como terminais remotos para o multiplexador/desmultiplexador de controle, enquanto os sistemas Windows são usados ​​para e-mail, a web e divertido.

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 por 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 de design 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 de uso geral, uma variante ARM A53 que você conhece do Raspberry Pi 3, esteja pronto para ser executado em 2021.

A interface touchscreen da espaçonave Dragon é renderizada usando Chromium e JavaScript. Se algo desse errado com a interface, os astronautas têm botões físicos para controlar a espaçonave.

A equipe de software da SpaceX respondeu a perguntas no Reddit, Como a SpaceX usa o Linux, revelando que usa o Chromium com uma biblioteca reativa desenvolvida internamente e que ” Todos os nossos computadores de bordo executam Linux (com o patch PREEMPT_RT) ou são microcontroladores que executam bare-metal código “Posteriormente, eles enfatizaram que, para os softwares Falcon 9 e Dragon,” todo o software autônomo em nível de aplicativo é escrito em C ++ . Geralmente, usamos técnicas de programação orientada a objetos do C ++, embora gostemos de manter as coisas simples. que possível.

“Usamos bibliotecas de código aberto, principalmente a biblioteca C ++ padrão, além de algumas outras. No entanto, limitamos o uso de bibliotecas de código aberto apenas a bibliotecas de qualidade extremamente alta e, muitas vezes, optamos por desenvolver nossas próprias bibliotecas quando possível, para que nós podemos controlar a qualidade do código “.