La risposta breve è che nessun sistema avionico critico per la sicurezza di cui sono a conoscenza usa Linux, e i sistemi con la più alta criticità spesso non usano affatto un sistema operativo commerciale. Tuttavia, Linux è utilizzato in altre applicazioni critiche per la sicurezza come Space X Falcon 9 e applicazioni mediche. Una spiegazione più dettagliata è difficile da fare senza entrare troppo in profondità, poiché la domanda è un po 'come chiedere "le cellule moderne sono realizzate con nanomateriali?", Dove una spiegazione dettagliata dovrebbe coprire i pro ei contro del materiale, luoghi dove il suo utilizzo ha più o meno senso, differenze nei produttori e una panoramica di ciò che viene utilizzato al suo posto, ecc. Cercherò di coprire tutti questi punti in modo succinto con collegamenti ad ulteriori informazioni.
Secondo questo rapporto FAA del 2001, alcuni dei principali sistemi operativi per l'avionica certificata erano VRTX, LynxOS, PSOS, VxWorks e l'OSE di Enea, sebbene l'avionica non critica a volte utilizzi altri sistemi come Windows NT. (Sì, LynxOS è basato su Unix e Linux è considerato "Unix-like", ma ci sono molte differenze tra i due, proprio come un Linux non è simile al Mac OS X basato su BSD). Tuttavia, i sistemi più critici non utilizzano affatto un sistema operativo commerciale. Notano "Con le prove disponibili oggi, in generale, si può affermare che i prodotti COTS in genere non soddisfano i requisiti per il software di criticità di livello A." In parole povere, ciò significa che la maggior parte dell'avionica sviluppata con software di terze parti, da VxWorks a Linux, non veniva testata e analizzata abbastanza da essere inserita in qualcosa di critico come un sistema di atterraggio, un'unità TCAS o un'unità di visualizzazione critica. Tuttavia, probabilmente è cambiato negli ultimi 10 anni da quando il rapporto è stato scritto. Ecco un articolo più recente sull'utilizzo del sistema operativo in tempo reale nell'avionica.
Cosa significano RTOS e COTS?
Un concetto importante qui è un sistema operativo in tempo reale, o RTOS. Un RTOS in poche parole fornisce garanzie che il software non esaurisca il tempo di elaborazione programmato, i messaggi tra le parti del software vengono passati in un breve lasso di tempo, la memoria non si esaurirà e altre attività importanti sono garantite invece di funzionare bene in condizioni normali, quindi rompersi in condizioni insolite. I normali sistemi operativi non possono fornire tali garanzie. Queste garanzie, o sostituti accettabili, sono necessari per la certificazione della maggior parte dei prodotti avionici.
Un altro concetto importante è la differenza tra i sistemi interni e quelli commerciali (COTS). I sistemi commerciali standard sono disponibili pubblicamente e non sono personalizzati molto per ogni produttore. Questo articolo fornisce un buon riepilogo dei pro e dei contro dei sistemi operativi commerciali e interni. Molti avionici ad alta criticità hanno ancora il software principale sviluppato internamente a causa dei vantaggi coinvolti.
Linux soddisfa i requisiti di certificazione?
Sì, Linux non è "certificato FAA" ma in realtà nessun RTOS è "certificato FAA" o "soddisfa DO-178C". DO-178C fornisce obiettivi che gli ingegneri del sistema avionico devono soddisfare per certificare il loro intero software avionico (gli obiettivi comprendono audit, test, analisi di sicurezza e scrittura dei requisiti, tra le altre cose). Quindi il meglio che il fornitore di sistemi operativi può fare è fornire software "pronto per DO-178C" o seguire le linee guida DO-178C. Si noti che DO-178C riconosce vari livelli di sicurezza, quindi ciò che è certificabile in DO-178C per un sistema di manutenzione potrebbe non essere certificabile in DO-178C per un'unità di visualizzazione critica. Il problema con Linux non è che Linux non sia "certificato sotto DO-178C", è che è difficile da certificare a causa delle sfide indicate di seguito. È possibile certificare un sistema usando Linux, ma farlo potrebbe essere proibitivamente difficile a causa dell'analisi extra, delle misure di sicurezza e della documentazione che sarebbero necessarie, specialmente per l'avionica più critica. Alcune di queste sfide e metodi alternativi di conformità sono delineati in questo rapporto FAA.
Vantaggi e svantaggi di Linux
Ci sono vantaggi nell'utilizzo di Linux, che sono in parte condivise con altri sistemi commerciali. Più dipendenti avranno già esperienza con Linux e il sistema operativo è stato progettato con più esperienza e tempo di quanto la maggior parte delle organizzazioni abbia a disposizione. I sistemi commerciali hanno anche un prezzo delle etichette molto più basso rispetto al software interno. I sistemi commerciali sono anche più adattabili e consentono modifiche all'hardware e spazio per la crescita futura senza tornare al tavolo da disegno. Gli strumenti per lavorare con il software sono più sviluppati e possono anche avere una cronologia di servizio più lunga che fornisce fiducia nel software.
Ecco alcuni dei problemi che Linux deve affrontare in un sistema avionico quando compete con un RTOS , da questo rapporto FAA:
-
partizionamento: se si suppone che due programmi vengano eseguiti in modo indipendente, è necessario provare che un programma non può interferire con un altro attraverso la struttura della memoria condivisa, le cache, il supporto della scheda e il firmware, gli errori, le interruzioni, ecc.
-
tempo di esecuzione nel caso peggiore: nel computer desktop va bene se impantanano il mio PC con troppe richieste o condizioni insolite contemporaneamente e il sistema rallenta o salta alcuni passaggi del programma. In avionica questo non è accettabile per ovvie ragioni. Il fornitore avrebbe bisogno di verificarlo tramite modelli di CPU, memoria, ecc. O rigorosi test di laboratorio e analisi dei tempi. Entrambi sono più difficili quanto più complessi sono l'hardware e il software.
- Copertura MCDC: i test sull'avionica più critica (Livello A) richiedono l'esecuzione di righe di codice e condizioni decisionali sufficienti per raggiungere l'MCDC standard di copertura del codice, che rientra tra "eseguire ogni riga di codice" e test esaustivi di ogni combinazione di condizioni. Alcuni sistemi operativi come Linux possono essere estremamente difficili da testare in modo sufficientemente approfondito da soddisfare questo standard.
- documentazione: analisi rigorose e stress test richiedono molta documentazione sul funzionamento interno del sistema operativo
- considerazioni sulla sicurezza: Linux in base alla progettazione ha più problemi di sicurezza di un'applicazione snella e interna. Questi problemi di sicurezza stanno diventando sempre più importanti, specialmente nel codice militare
- morto e irraggiungibile: disabilitare attentamente le molte funzioni inutilizzate di Linux e garantire che non possano interferire con il tuo software è solitamente richiesta per la certificazione
Altri settori critici per la sicurezza
Che dire di settori simili critici per la sicurezza? Lo Space X Falcon utilizza Linux in alcuni dei suoi computer di volo ( fonti). Sulla base di questa intervista, Space X sembra dare la priorità alla crescita futura, alla disponibilità, ai tempi di ciclo brevi e alle competenze rispetto alla semplicità e alla robustezza dello sviluppo interno in quest'area. Si noti che i computer di controllo del volo sullo Space X Falcon non sono direttamente analoghi a un LRU nella tipica avionica moderna, quindi è probabile che sia necessario un lavoro extra o un'architettura insolita per far funzionare Linux per le tipiche applicazioni avioniche.
Linux è utilizzato anche in molte applicazioni mediche critiche per la sicurezza, ma non senza problemi simili a quelli affrontati nell'aviazione. Ti consiglio di leggere "Choosing Linux for Medical Devices" di Wind River o questo articolo sugli svantaggi di Linux nelle applicazioni mediche critiche per la sicurezza.
Suppongo che tu stia parlando dei principali elementi avionici come la guida di volo, il pilota automatico, il fly-by-wire o i display. Altri sistemi di aeroplani potrebbero vagamente essere considerati critici per la sicurezza, ma non sono esempi tipici di dispositivi critici per la sicurezza, come borse di volo elettroniche certificate, soluzioni di connettività e software di manutenzione. A volte sono più adatti per un'applicazione Linux a causa dell'elevata complessità e di considerazioni di sicurezza meno rigorose.
Nota che non sono un esperto in questo campo e il mio consiglio non sostituisce il consiglio di uno specialista di certificazione.