Fiquei me perguntando se alguém sabe qual é o sistema operacional usado em aviões comerciais (como Boeing ou Airbus).
Além disso, qual é a linguagem de programação em tempo real (preferencial)? Ouvi dizer que Ada é usado na Boeing, então minha pergunta é - por que Ada? Quais são os critérios que os caras da Boeing tiveram para escolher esse idioma? (Acho que o Java não seria uma ótima opção se exatamente ao levantar o coletor de lixo acordasse).
Respostas:
Aviônica
Para sistemas de controle de aeronaves, não falamos de sistemas operacionais, mas de aviônicos , aviônicos integrados ou sistemas aéreos por computador em geral. E, na verdade, são uma combinação de uma infinidade de sistemas independentes ou interdependentes, para diferentes funções ( controle de vôo , prevenção de colisões , clima, comunicações, caixas-pretas ...).
Cada controlador é geralmente um módulo independente (hardware e software) por razões óbvias de segurança: eles são sistemas críticos de controle e monitoramento e se um deles falhar ou for danificado, é um grande "inconveniente" para as pessoas que estão dependendo da aeronave. A confiabilidade assume todo o seu significado quando você está na máquina voadora. Então geralmente é
Não é um grande computador executando tudo. Se você pensar na perspectiva de uma aeronave militar em vez de comercial (embora seja semelhante a esse respeito, a imagem pode ajudar): se uma parte é atingida, você prefere que outras partes possam continuar (a parte que controla os sistemas de comunicação e segurança pode ser interessante para manter viva ...). Daí também o grande número de botões que você vê nos aviões, para acompanhar o status de diferentes sistemas.
Eles geralmente são criados como componentes personalizados operando seu próprio sistema ou são executados e agendados por um micro-kernel (na maioria dos casos, com suporte para recursos em tempo real).
Depende de fornecedores e países, obviamente, mas eles geralmente precisam seguir conjuntos de regulamentos bastante rígidos, requisitos de design e especificações de protocolo, que permitem:
Esforços de padronização
O DO-178B (revisado em 1992) e seu sucessor, o DO-178C (revisado em 2012) (e vários documentos associados) são um exemplo de certificações de referência para esses níveis de conformidade e são reconhecidos pela FAA (EUA), AESA (UE) e Transport Canada, entre outros. Várias outras organizações estão envolvidas na criação de tais documentos, como o EUROCAE .
Esses sistemas aéreos geralmente são softwares personalizados, mas sabe-se que os seguintes sistemas são usados em alguns aviões:
Para lhe dar uma vaga idéia de elementos incorporados ao sistema aviônico, esta lista de acrônimos de aviônicos aponta para alguns deles (com alguma sobreposição).
Línguas notáveis usadas em aviônicos comerciais e militares
Além dos suspeitos usuais que conhecemos no mundo da programação "mainstream", você encontrará nomes frequentemente referenciados como Ada e algumas linguagens menos conhecidas como o (datado e agora "aposentado" desde 2010) JOVIAL .
Perguntas relacionadas ao StackExchange:
fonte
A maioria das aeronaves modernas usa um RTOS (sistema operacional em tempo real) de uso geral, praticamente a mesma coisa que é usada em automação de fábrica, usinas de energia, navios etc.
A Airbus usa alguns, incluindo o INTEGRITY da Northrop-grumman e programa em C / C ++, a Boeing usa o VxWorks entre outros
fonte
Pelo que vale a pena: Para naves espaciais (satélites e interplanetárias) C e C ++ ainda são dominantes (e com uma conformidade estrita com os padrões ISO), geralmente executando o VxWorks. Os laboratórios geralmente aderem ao C ou C ++ com base na familiaridade do desenvolvedor, na confiança na cadeia de ferramentas do compilador e nos padrões internos de codificação. Existem razões convincentes para os dois idiomas para o software de voo em tempo real, mas cada organização tende a se ater a um ou outro. Os instrumentos auxiliares, por outro lado, são comumente programados em Forth, C e em linguagens de script cada vez mais modernas, como Lua.
fonte
Também é importante notar que os sistemas de controle geralmente são desenvolvidos usando o design baseado em modelo usando o Simulink. O design é então convertido em código C automaticamente. Os seres humanos ainda leem e validam o código.
fonte