exameinformatica

Uma parceria EXPRESSO

Siga-nos nas redes

Perfil

Software

RTEMS: nos satélites Galileo, o sistema operativo é português

Helder Silva, com o sistema operativo a correr no ecrã dos computadores de trabalho na Edisoft

Esta quinta-feira, descola da Guiana Francesa um lançador com quatro satélites Galileo, da ESA. A bordo segue um sistema operativo criado pela Edisoft, que gere todas as funcionalidades de cada um dos satélites

  • 333

Helder Silva pega numa placa de processador e faz as contas: «É um protótipo. Deve custar uns 20 mil euros». Até o mais leigo dos consumidores acabará por considerar o preço demasiado elevado para uma placa de CPU, mas o gestor de Projetos de Sistemas Embebidos da Edisoft lembra que o valor até pode ser considerado acessível quando comparado com as placas de processadores que foram instaladas nos 14 satélites Galileo que a Agência Espacial Europeia (ESA) enviou para o Espaço nos últimos dois anos: «Cada uma dessas placas tem um custo de cerca 540 mil euros».

Tanto o protótipo como a versão embarcada nos satélites Galileo são bem conhecidos de Helder Silva. Sem esse conhecimento, teria sido bem mais difícil desenvolver o sistema operativo que gere todas as funções da constelação de satélites que pretende disputar a liderança dos serviços de navegação com o GPS. «Cada linha de código deste sistema operativo está acompanhada de uma página de documentação a explicar essa linha de código. Os clientes, quando pegam neste sistema operativo, têm de saber o que lá está», acrescenta o especialista da Edisoft.

No Espaço, seja software ou hardware todas as coisas se distinguem por ter ou não voado. Se já voou, é porque já provou que funciona e resiste a condições adversas. Se ainda não voou, então a incógnita persistirá até ao dia em que for feito o lançamento inaugural.

Ilustração de um satélite Galileo

Ilustração de um satélite Galileo

ESA

Desde os primeiros tempos que o RTEMS foi desenvolvido com o propósito de voar. A primeira versão, encomendada pela Força Aérea à OAR, recebeu a denominação de Real-Time Executive for Missile Systems. Mais tarde o nome foi retificado para Real-Time Executive for Military Systems. E assim evoluiu nas décadas seguintes, com contributos da comunidade, numa lógica de código aberto, e conhecido apenas pela sigla RTEMS para facilitar a conversa. Em 2006, quando o sistema operativo já tinha adotado uma terceira denominação que enaltecia a vertente civil (Real-Time Executive for Multiprocessor Systems), a Edisoft decide pegar no RTEMS para criar um sistema operativo que pudesse ser usado por sondas, veículos espaciais ou satélites.

«Poucos anos depois da adesão de Portugal à Agência Espacial Europeia (ESA), surgiu um programa que dava às empresas a possibilidade de proporem iniciativas. Na altura, a ESA não queria ficar dependente dos grandes fabricantes da indústria aeroespacial e os sistemas operativos que costumavam ser usados eram caros. Não havia um concorrente de baixo custo. Foi assim que a Edisoft soube desta oportunidade de criar um novo sistema operativo para as missões da ESA», explica Tiago Sepúlveda, diretor da Área de Aeronáutica e Espaço da Edisoft.

Em 2010, é apresentada a primeira versão oficial do RTEMS criada pela Edisoft. Em 2014, é feito o primeiro batismo de voo, com o lançamento do primeiro satélite Galileo. Hoje, o RTEMS conta com 12 mil linhas de código nas linguagens C e Assembly. O conjunto de testes que garante a fiabilidade do sistema operativo totaliza 66 mil linhas de código. Na Edisoft, ninguém esconde que a “paternidade” do sistema operativo deve ser partilhada com a AOR, mas também ninguém esquece que foram as adaptações implementadas na empresa portuguesa que permitiram levar o RTEMS para os Galileo e para outras missões da ESA e de outras agências espaciais. «Fizemos algo parecido com o que fez a Google quando decidiu criar o Android a partir do Linux», refere Helder Silva, numa tentativa de ilustrar a forma como a Edisoft criou uma nova versão do RTEMS.

Ao contrário das diferentes versões do Android, o RTEMS produzido pelos engenheiros da Edisoft teve sempre de seguir requisitos de segurança pensados para ambientes de extrema adversidade. A programação foi feita em Assembly e C por serem duas das três únicas linguagens aceites pela ESA (a terceira é a ADA) para uso em sistemas embarcados em missões espaciais não tripuladas. A escolha do Assembly deveu-se à necessidade de usar uma linguagem de baixo nível, que tivesse menos “intermediários” nos comandos enviados para os diferentes componentes. «No caso do C, a escolha deveu-se ao facto de ser fiável e fácil de programar», sublinha.

Todos os programadores da Edisoft já sabem: Por muito promissora que seja cada uma das linhas de código introduzidas no RTEMS, nada garante que é usada tal como está. Antes de poder descolar rumo ao Espaço o RTEMS não só é posto à prova por uma extensa bateria de testes automatizados (as 66 mil linhas de código já referidas) como pela análise de cinco (5!) empresas especializadas na certificação de qualidade de software. «Um software que tenha bugs não pode ir a bordo de um satélite. No Espaço, apenas se aceita um software que tenha zero erros», sublinha Tiago Sepúlveda.

O facto de o RTEMS ser o sistema operativo que gere muitos outros módulos usados num satélite torna a inexistência de bugs num fator ainda mais crucial. As diferentes operações são efetuadas a uma velocidade que tem como referência ciclos de processamento de 10 milissegundos, mas há situações em que esses ciclos chegam mesmo a valores inferiores, na ordem dos microssegundos.

Na Edisoft, todos são unânimes em considerar que se trata de um sistema operativo rápido, mas logo recordam que há outra característica tão ou mais importante: o RTEMS foi desenhado para funcionar de forma determinística. O que significa que cada tarefa é executada no momento predeterminado seguindo os procedimentos definidos antecipadamente, e sem atrasos ou acelerações, independentemente da carga de processamento que estiver em causa.

«Imaginemos dados que são enviados de 100 em 100 milissegundos. Com o RTEMS, sabemos que esses dados são tratados nos 100 milissegundos, e não nos 101 milissegundos ou nos 99 milissegundos», explica Ricardo Conde, responsável pela Estação de Rastreio de Satélites que a Edisoft mantém ao serviço da ESA na ilha de Santa Maria, Açores.

Delfim Rego e Helder Silva nas instalações da Edisoft

Delfim Rego e Helder Silva nas instalações da Edisoft

Na quinta-feira, serão lançados quatro Galileos a partir da Guiana Francesa, mas a bordo desses satélites irão oito exemplares do RTEMS. Mais uma vez é a precaução e a redundância que ditam as regras: «No Espaço, há sempre redundância de hardware e de software. Há sempre uma versão A e uma versão B (do software e do hardware). E o sistema está sempre a comparar o estado e as funcionalidades executadas pelas duas versões», informa Delfim Rego, responsável pelas Operações de Observação da Terra da Edisoft.

Apesar de todos os requisitos de segurança, o RTEMS não é muito exigente no que toca ao desempenho dos processadores. Helder Silva recorda que o processador do Galileo que corre o sistema operativo criado pela Edisoft «é muito mais fraco que o processador de telemóvel». Os processadores dos satélites Galileo não vão além dos 24 MHz.

O uso das baixas frequências minimiza as interferências geradas pela radiação cósmica e permitem reduzir o consumo de energia. Helder Silva não se tem de esforçar muito para se lembrar dos nomes dos processadores em que o RTEMS pode correr: «ERC32, LEON2 e LEON3». Com estes processadores, o RTEMS nunca conseguirá ir além dos 100 MHz.

Helder Silva recorda que entre a órbita de um Galileo, a 22 mil quilómetros, e a Terra, a noção de tempo pode mudar drasticamente: «um processador de 100 MHz é o que temos hoje nos frigoríficos!». Indiferente à evolução dos eletrodomésticos na Terra, o RTEMS estará pronto para amanhã mostrar ao Universo que consegue levar a humanidade aonde nenhum frigorífico alguma vez conseguirá ir.

  • 333