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


113

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

Inoltre, qual è il linguaggio di programmazione in tempo reale (preferito)? Ho sentito che Ada è usato in Boeing, quindi la mia domanda è: perché Ada? quali sono i criteri che i Boeing hanno dovuto scegliere questa lingua? (Immagino che Java non sarebbe un'ottima scelta se si svegliasse al momento del decollo del garbage collector).


11
Quando ho visto per la prima volta questa domanda, ho pensato che si stesse chiedendo dei sistemi che eseguono i film in volo e simili nella parte posteriore dei sedili. Una volta ero su un volo Delta in cui hanno riavviato quel sistema e si potrebbe dire che stava eseguendo Linux, credo una variante Debian.
Kris Harper,

1
@ root45: ahhhhhh ... ammetto che non mi è nemmeno passato per la testa. Avrebbe potuto essere. Ho visto alcuni eseguire QNX penso, e altri eseguono Windows Embedded.
Haylem,

17
"Che tipo di sistema operativo utilizza?" "Penso che sia Vista." "Moriremo!"
Stuper:

1
@StuperUser: uno dei miei episodi preferiti di IT Crowd. ( youtube.com/watch?v=8y4akOH8v8Q - 2:34 minuti). Inoltre, non solo le compagnie aeree commerciali, ma sarebbe interessante sapere di più su ciò che gli aerei militari usano, se non è lo stesso. Vista, lol.
Bratch

1
@Piskvor: ci sono VM in tempo reale per Java (come nella lingua, non nella piattaforma). Non so se le varianti JavaRT siano state usate per sistemi di volo seri (e abitati), ma l'ho visto usato per modelli o droni.
Haylem,

Risposte:


157

Avionics

Per i sistemi di controllo degli aeromobili, non parliamo di sistemi operativi ma di avionica , avionica integrata o sistemi aerei di computer in generale. E in realtà sono una combinazione di una moltitudine di sistemi indipendenti o interdipendenti, per diverse funzioni ( controllo del volo , prevenzione delle collisioni , condizioni meteorologiche, comunicazioni, scatole nere ...).

Ogni controller è di solito un modulo indipendente (hardware e software) per ovvie ragioni di sicurezza: sono sistemi di controllo e monitoraggio critici e se uno di essi dovesse guastarsi o danneggiarsi, sarebbe un "inconveniente" piuttosto grande per le persone che lo sono a seconda del velivolo. L'affidabilità assume tutto il suo significato quando si è nella macchina volante. Quindi di solito lo è

  • costruito su misura per lo scopo della loro missione,
  • costruito per funzionare in modo indipendente e interfacciarsi con altri sistemi,
  • costruito per essere tollerante ai guasti e ai guasti degli altri sistemi a cui è interfacciato (perché non si desidera che il sistema audio del pilota abbassi i controlli del motore, per esempio).

Non è un grande computer che esegue tutto. Se ci pensi dal punto di vista di un aereo militare piuttosto che di un aereo commerciale (anche se è simile a questo proposito, l'immagine potrebbe aiutare): se una parte viene colpita, preferiresti almeno avere altre parti in grado per andare avanti (la parte che controlla i sistemi di comunicazione e di sicurezza potrebbe essere interessante per rimanere in vita ...). Da qui anche il grande gruppo 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 pianificati da un micro-kernel (nella maggior parte dei casi, con supporto per funzionalità in tempo reale ).

Dipende da fornitori e paesi, ovviamente, ma di solito devono almeno seguire una serie piuttosto rigorosa di regolamenti, requisiti di progettazione e specifiche del protocollo, che consentono di:

  • il controllo della loro rigorosa conformità alle norme di sicurezza,
  • l'intercomunicazione con altri sistemi (molto meglio se quell'aereo con cui sei decollato a Reykjavik può "parlare" con quell'apparecchiatura di controllo a terra a Tokyo ...)

Sforzi di standardizzazione

Il DO-178B (rivisto nel 1992) e il suo successore il 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 dalla FAA (USA), l'AESA (UE) e Transport Canada, tra gli altri. Molteplici altre organizzazioni sono coinvolte nella creazione di tali documenti, come l' EUROCAE .

Tali sistemi aerei sono generalmente software su misura, ma i seguenti sistemi sono noti per essere utilizzati in alcuni aerei:

Per darti una vaga idea di elementi incorporati in un sistema avionico, questo elenco di acronimi avionici ne indica alcuni (con alcune sovrapposizioni).

Notevoli lingue utilizzate nell'avionica commerciale e militare

Oltre ai soliti sospetti che conosciamo nel mondo della programmazione "mainstream", scoprirai alcuni nomi spesso citati come Ada e alcuni linguaggi meno conosciuti come il (datato e ora "ritirato" dal 2010) JOVIAL .


Domande StackExchange correlate:


2
@mattnz: grazie. Ma onestamente è un po 'lontano da ciò che l'OP sta chiedendo. Ho cercato di fornire informazioni utili e indicazioni a scopo di documentazione, ma quando si tratta di dettagli di implementazione effettivi è più difficile trovare dati concreti.
haylem,

"E in realtà sono una combinazione di una moltitudine di sistemi indipendenti o interdipendenti", intendi dire che esiste un hardware separato per questi?
stijn

2
Sì, tendono ad essere hardware appositamente costruito. Non c'è un rack di x86 pezzi che eseguono il tuo aereo.
Rig

3
@stijn: Beh, sì. Pensare in questo modo. Sono sistemi critici di controllo e monitoraggio. Se uno di loro fallisce, ciò significa un grosso problema, con una F molto grande e meno educata di così. Quindi di solito è a) costruito su misura per lo scopo della loro missione b) costruito per funzionare in modo indipendente e interfacciarsi con altri sistemi c) costruito per essere tollerante ai guasti e ai guasti degli altri sistemi a cui è interfacciato (perché non voglio che il sistema audio del pilota abbassi i comandi del motore, per esempio). Non è un grande computer che esegue tutto.
Hayylem,

@stijn: pensalo dal punto di vista di un aereo militare piuttosto che commerciale, se questo aiuta: se una parte viene colpita, preferiresti almeno avere altre parti in grado di andare avanti (direi la parte che controlla i sistemi di comunicazione e di sicurezza potrebbe essere interessante da mantenere in vita ...). Da qui anche il grande gruppo di pulsanti che vedi nei jetliner, per tenere traccia dello stato dei diversi sistemi.
Haylem,

22

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

Airbus ne usa alcuni, tra cui INTEGRITY di Northrop-grumman e lo programma in C / C ++, Boeing usa VxWorks tra gli altri


2
L'affermazione "... RTOS per uso generale ..." banalizza ciò che serve a un RTOS per trasformarlo in un sistema avionico, è quasi lo stesso RTOS che utilizza in ACME Corps Digital TV Reciever.
Mattnz,

3
No, ma VxWorks può essere utilizzato per qualsiasi cosa, da una Mar Rover al tuo telefono Blackberry
Martin Beckett,

Mi dispiace è QNX utilizzato in Blackberry, non VxWorks. Ma si applica lo stesso principio - COTS rtos's può essere utilizzato in aereo
Martin Beckett,

12

Per quello che vale: per i veicoli spaziali (satelliti e interplanetari) C e C ++ sono ancora dominanti (e con una rigorosa conformità agli standard ISO), generalmente eseguendo VxWorks. I laboratori si attengono generalmente a C o C ++ in base alla familiarità degli sviluppatori, alla fiducia nella toolchain del compilatore e agli standard di codifica interna. Ci sono ragioni convincenti per entrambe le lingue per il software di volo in tempo reale, ma ogni organizzazione tende a rimanere fedele all'una o all'altra. Gli strumenti ausiliari, invece, sono comunemente programmati in Forth, C e in linguaggi di scripting sempre più moderni come Lua.


3
Di solito è anche un sottoinsieme di C o C ++, come MISRA C o JSF C ++, per quanto ho letto.
Coder,

10

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


Il mio professore l'ha effettivamente menzionato quando ha parlato di sistemi critici nell'ingegneria del software.
Vendite Dielson,

Credo che Airbus utilizzi SCADE per le specifiche funzionali dell'hardware e del software nei loro sistemi di controllo di volo. Lo strumento può generare il codice C o Ada.
dodgy_coder,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.