Quali sistemi operativi vengono utilizzati negli aeroplani e in quali linguaggi di programmazione sono sviluppati? [chiuso]

108

Mi chiedevo se qualcuno sa qual è il sistema operativo utilizzato negli aeroplani commerciali (diciamo Boeing o Airbus).

Inoltre, qual è il linguaggio di programmazione (preferito) in tempo reale? Ho sentito che Ada è usata in Boeing, quindi la mia domanda è: perché Ada? quali sono i criteri che i Boeing hanno dovuto scegliere questa lingua? (Suppongo che Java non sarebbe una buona scelta se esattamente al decollo il garbage collector si sveglia).

    
posta adhg 18.06.2012 - 05:00
fonte

4 risposte

154

Avionics

Per i sistemi di controllo degli aeromobili, non parliamo di sistemi operativi ma di avionica , avionica integrata o sistemi di bordo per computer in generale. E in realtà sono una combinazione di una moltitudine di sistemi indipendenti o interdipendenti, per funzioni diverse ( controllo del volo , evitare le collisioni , meteo, comunicazioni, blackbox ...).

Ogni controller è di solito un modulo indipendente (hardware e software) per ovvi motivi di sicurezza e sicurezza: sono sistemi di controllo e monitoraggio critici e se uno di loro dovesse fallire o essere danneggiato, è un "inconveniente" piuttosto grande per il persone che dipendono dall'aeromobile. Affidabilità prende tutto il suo significato quando sei in la macchina volante. Quindi di solito è

  • costruito su misura per lo scopo della loro missione,
  • costruito per funzionare in modo indipendente e interfacciato con altri sistemi,
  • costruito per essere fault-tolerant ai suoi stessi guasti E ai guasti degli altri sistemi a cui è interfacciato ( perché non vuoi che il sistema audio del pilota abbassi i controlli del motore, ad esempio).

Non è un grande computer che esegue tutto. Se ci pensate dal punto di vista di un aereo militare piuttosto che commerciale (anche se è simile sotto questo aspetto, l'immagine potrebbe essere d'aiuto): se una parte viene sparata, preferireste almeno avere altre parti in grado di per andare avanti (la parte che controlla le comunicazioni e i sistemi di sicurezza potrebbe essere interessante da mantenere in vita ...). Da qui anche il grande mazzo di pulsanti che vedi nei jetliner, per tenere traccia dello stato dei diversi sistemi.

Di solito sono costruiti come componenti personalizzati che gestiscono il proprio sistema, oppure sono eseguiti e programmati da un micro-kernel (nella maggior parte dei casi, con supporto per in tempo reale capacità).

Dipende ovviamente da fornitori e paesi, ma di solito hanno almeno bisogno di seguire serie piuttosto severe di regolamenti, requisiti di progettazione e specifiche del protocollo, che consentono:

  • il controllo della loro rigorosa conformità agli standard di sicurezza e sicurezza,
  • l'inter-comunicazione con altri sistemi (molto meglio se l'aereo con cui sei partito a Reykjavik può "parlare" con quell'attrezzatura di controllo a terra a Tokyo ...)

Sforzi di standardizzazione

Il DO-178B (rivisto nel 1992) e il suo successore DO-178C (rivisto nel 2012) (e una serie di documenti associati) sono un esempio di certificazioni di riferimento per tali livelli di conformità e sono riconosciuti dal FAA (USA), EASA (UE) e Transport Canada, tra gli altri. Molte altre organizzazioni sono coinvolte nella creazione di tali documenti, come EUROCAE .

Questi sistemi aerei di solito sono software su misura, ma in alcuni aeroplani sono noti i seguenti sistemi:

Per darti una vaga idea di elementi incorporati in un sistema avionico, questo elenco di acronimi avionici indica alcuni di loro (con qualche sovrapposizione).

Lingue notevoli utilizzate nell'avionica commerciale e militare

A parte i soliti sospetti che conosciamo nel mondo della programmazione "mainstream", troverai nomi spesso di riferimento come Ada e alcune lingue meno conosciute come la (datata e ora" ritirata "dal 2010) JOVIAL .

Domande relative a StackExchange correlate:

risposta data 18.06.2012 - 05:21
fonte
22

La maggior parte degli aeromobili moderni utilizza un RTOS generico (sistema operativo in tempo reale) praticamente la stessa cosa utilizzata nell'automazione di fabbrica, nelle centrali elettriche, nelle navi ecc.

Airbus ne usa pochi, incluso INTEGRITY da Northrop-grumman e lo programma in C / C ++, Boeing usa VxWorks tra gli altri

    
risposta data 18.06.2012 - 05:22
fonte
12

Per quel che vale: per i veicoli spaziali (satelliti e interplanetari) C e C ++ è ancora dominante (e con una conformità molto severa agli standard ISO), generalmente con VxWorks. Generalmente Labs si attiene a C o C ++ in base alla familiarità degli sviluppatori, alla fiducia nella toolchain del compilatore e agli standard di codifica interna. Esistono validi motivi per entrambe le lingue per i software di volo in tempo reale, ma ogni organizzazione tende a restare con l'una o l'altra. Gli strumenti ausiliari, d'altra parte, sono comunemente programmati in Forth, C e in linguaggi di scripting sempre più moderni come Lua.

    
risposta data 18.06.2012 - 17:32
fonte
8

Vale anche la pena notare che i sistemi di controllo sono spesso sviluppati utilizzando la progettazione basata su modelli usando Simulink. Il design viene quindi convertito automaticamente in codice C. Gli umani continuano a leggere e convalidare il codice.

    
risposta data 19.06.2012 - 21:16
fonte

Leggi altre domande sui tag