A resposta curta é que nenhum sistema aviônico de segurança crítica que eu saiba usar o Linux, e os sistemas de maior criticidade geralmente não usam um sistema operacional comercial. No entanto, o Linux é usado em outros aplicativos críticos de segurança, como o Space X Falcon 9 e aplicativos médicos. É difícil fazer uma explicação mais detalhada sem se aprofundar demais, pois a pergunta é como perguntar "as estruturas modernas são feitas com nanomateriais?", Onde uma explicação detalhada teria que cobrir os prós e os contras do material, lugares onde seu uso faz mais e menos sentido, diferenças nos fabricantes e uma visão geral do que é usado, etc. Tentarei abordar todos esses pontos de forma sucinta com links para mais informações.
De acordo com a este relatório da FAA da 2001, alguns dos principais sistemas operacionais para aviônicos certificados eram VRTX, LynxOS, PSOS, VxWorks e OSE da Enea, embora os aviônicos não críticos às vezes usem outros sistemas como o Windows NT. (Sim, o LynxOS é baseado no Unix e o Linux é considerado "semelhante ao Unix", mas há muitas diferenças entre os dois, assim como o Linux não é semelhante ao Mac OS X baseado em BSD). No entanto, os sistemas mais críticos não usam um sistema operacional comercial. Eles observam "Com as evidências disponíveis hoje, em geral, pode-se afirmar que os produtos COTS normalmente não atendem aos requisitos do software de criticidade de nível A." Para os leigos, isso significa que a maioria dos aviônicos desenvolvidos com software de terceiros, do VxWorks ao Linux, não estavam sendo testados e analisados o suficiente para serem colocados em algo crítico, como um sistema de pouso, unidade TCAS ou unidade crítica de exibição. Isso provavelmente mudou nos anos 10 + desde que o relatório foi escrito, no entanto. Aqui está um mais recente artigo sobre o uso do sistema operacional em tempo real em aviônicos.
O que significam RTOS e COTS?
Um conceito importante aqui é um sistema operacional em tempo realou RTOS. Um RTOS em poucas palavras fornece garantias de que o software não ficará sem tempo de computação programado, as mensagens entre partes do software serão passadas em um curto período de tempo, a memória não se esgotará e outras tarefas importantes serão garantidas em vez de funcionar bem em condições normais e depois quebrando em condições incomuns. Os sistemas operacionais normais não podem dar tais garantias. Essas garantias, ou substitutos aceitáveis, são necessárias para a certificação da maioria dos aviônicos.
Outro conceito importante é a diferença entre sistemas internos e comerciais (COTS). Os sistemas comerciais prontos para uso estão disponíveis ao público e não são muito personalizados para cada fabricante. Este artigo fornece um bom resumo dos prós e contras dos sistemas operacionais comerciais e internos. Muitos aviônicos de alta criticidade ainda possuem o software principal desenvolvido internamente devido às vantagens envolvidas.
O Linux atende aos requisitos de certificação?
Sim, o Linux não é "certificado pela FAA", mas, na verdade, nenhum RTOS é "certificado pela FAA" ou "atende ao DO-178C". O DO-178C fornece objetivos que os engenheiros de sistemas aviônicos devem cumprir para certificar todo o seu software aviônico (os objetivos abrangem auditorias, testes, análise de segurança e redação de requisitos, entre outras coisas). Portanto, o melhor que o fornecedor do sistema operacional pode fazer é fornecer o software "DO-178C ready" ou seguir as diretrizes do DO-178C. Observe que o DO-178C reconhece vários níveis de segurança; portanto, o que é certificável no DO-178C para um sistema de manutenção pode não ser certificável no DO-178C para uma unidade de exibição crítica. O problema com o Linux não é que o Linux não é "certificado pelo DO-178C", é difícil certificar-se devido aos desafios mencionados abaixo. É possível certificar um sistema usando Linux, mas isso pode ser proibitivamente difícil devido às análises extras, medidas de segurança e documentação que seriam necessárias, especialmente para os aviônicos mais críticos. Alguns desses desafios e métodos alternativos de conformidade estão descritos em este relatório da FAA.
Vantagens e desvantagens do Linux
Há vantagens em usar o Linux, que é parcialmente compartilhado com outros sistemas comerciais. Mais funcionários já terão experiência com Linux, e o sistema operacional foi projetado com mais experiência e tempo do que a maioria das organizações dispõe. Os sistemas comerciais também têm um preço de etiqueta muito mais baixo do que o software interno. Os sistemas comerciais também são mais adaptáveis e permitem alterações no hardware e espaço para crescimento futuro sem voltar à prancheta. As ferramentas para trabalhar com o software são mais desenvolvidas e também podem ter um histórico de serviço mais longo, que fornece confiança no software.
Aqui estão alguns dos problemas que o Linux enfrenta em um sistema aviônico ao competir com um RTOS, de este relatório da FAA:
particionamento: se dois programas devem estar em execução de forma independente, é preciso haver evidências de que um programa não pode interferir com outro através da estrutura de memória compartilhada, caches, suporte e firmware da placa, erros, interrupções etc.
pior caso de execução: na computação de mesa, tudo bem se eu atolar meu PC com muitas solicitações ou condições incomuns ao mesmo tempo e o sistema desacelera ou pula algumas etapas do programa. Em aviônicos, isso não é aceitável por razões óbvias. O fornecedor precisaria verificar isso por meio de modelos de CPU, memória etc. ou testes rigorosos de laboratório e análise de tempo. Ambos são mais difíceis, quanto mais complexo é o seu hardware e software.
- Cobertura do MCDC: Os testes nos aviônicos mais críticos (Nível A) requerem a execução de linhas de código e condições de decisão suficientes para atingir o padrão de cobertura de código do MCDC, que fica entre "executar todas as linhas de código" e testes exaustivos de todas as combinações de condições. Alguns sistemas operacionais como o Linux podem ser extremamente difíceis de testar completamente o suficiente para atender a esse padrão.
- documentação: análise rigorosa e teste de estresse exigem muita documentação sobre o funcionamento interno do sistema operacional
- considerações de segurança: O Linux, por design, tem mais problemas de segurança do que um aplicativo interno enxuto. Essas questões de segurança estão se tornando cada vez mais importantes, especialmente nas forças armadas.
- código morto e inacessível: Desabilitar cuidadosamente as muitas funções não utilizadas do Linux e garantir que elas não interfiram no seu software geralmente é necessário para a certificação
Outras indústrias críticas para a segurança
E quanto aos setores críticos de segurança similares? O Space X Falcon usa Linux em alguns de seus computadores de vôo (fontes) Baseado em Nesta entrevista, O Space X parece priorizar o crescimento futuro, a disponibilidade, os curtos tempos de ciclo e a experiência, em detrimento da simplicidade e robustez do desenvolvimento interno nessa área. Observe que os computadores de controle de vôo no Space X Falcon não são diretamente análogos a um LRU na aviônica moderna típica; portanto, provavelmente será necessário um trabalho extra ou uma arquitetura incomum para que o Linux funcione em aplicativos aviônicos típicos.
O Linux também é usado em muitas aplicações médicas críticas à segurança, mas não sem problemas semelhantes aos enfrentados na aviação. Eu recomendo a leitura de Wind River "Escolhendo o Linux para dispositivos médicos"ou Este artigo sobre as desvantagens do Linux em aplicativos médicos críticos para a segurança.
Suponho que você esteja falando das principais aviônicas, como orientação de voo, piloto automático, fly-by-wire ou monitores. Outros sistemas de avião podem ser considerados críticos para a segurança, mas não são exemplos típicos de dispositivos críticos para a segurança, como malas de voo eletrônicas certificadas, soluções de conectividade e software de manutenção. Às vezes, eles são mais adequados para um aplicativo Linux devido à alta complexidade e considerações de segurança menos rigorosas.
Observe que eu não sou especialista neste campo e meu conselho não substitua o conselho de um especialista em certificação.