La réponse courte est qu'aucun système avionique critique pour la sécurité que je connaisse n'utilise Linux, et les systèmes les plus critiques n'utilisent souvent pas du tout un système d'exploitation commercial. Cependant, Linux est utilisé dans d'autres applications critiques pour la sécurité comme le Space X Falcon 9 et les applications médicales. Une explication plus détaillée est difficile à faire sans entrer dans trop de profondeur, car la question est un peu comme demander "les cellules modernes sont-elles fabriquées avec des nanomatériaux?", Où une explication détaillée devrait couvrir les avantages et les inconvénients du matériau, des lieux là où son utilisation a le plus et le moins de sens, les différences entre les fabricants et un aperçu de ce qui est utilisé à la place, etc. J'essaierai de couvrir tous ces points succinctement avec des liens vers de plus amples informations.
D'après ce rapport de la FAA de 2001, certains des principaux systèmes d'exploitation pour l'avionique certifiée étaient VRTX, LynxOS, PSOS, VxWorks et l'OSE d'Enea, bien que l'avionique non critique utilise parfois d'autres systèmes comme Windows NT. (Oui, LynxOS est basé sur Unix et Linux est considéré comme "semblable à Unix", mais il existe de nombreuses différences entre les deux, tout comme la façon dont un Linux n'est pas similaire au Mac OS X basé sur BSD). Cependant, les systèmes les plus critiques n'utilisent pas du tout un système d'exploitation commercial. Ils notent que "Avec les preuves disponibles aujourd'hui, en général, on peut affirmer que les produits COTS ne répondent généralement pas aux exigences du logiciel de criticité de niveau A." En termes simples, cela signifie que la plupart des avions développés avec des logiciels tiers, de VxWorks à Linux, n'ont pas été suffisamment testés et analysés pour être intégrés à quelque chose de critique comme un système d'atterrissage, une unité TCAS ou une unité d'affichage critique. Cela a probablement changé au cours des 10 ans et plus depuis la rédaction du rapport. Voici un article plus récent sur l'utilisation du système d'exploitation en temps réel dans l'avionique.
Que signifient RTOS et COTS?
Un concept important ici est un système d'exploitation en temps réel, ou RTOS. Un RTOS en un mot fournit des garanties que le logiciel ne manquera pas de temps de calcul programmé, les messages entre les parties du logiciel sont transmis dans un court laps de temps, la mémoire ne sera pas épuisée et d'autres tâches importantes sont garanties au lieu de fonctionner. bien dans des conditions normales puis se brisant dans des conditions inhabituelles. Les systèmes d'exploitation normaux ne peuvent pas offrir de telles garanties. Ces garanties, ou des substituts acceptables, sont nécessaires pour la certification de la plupart des avions.
Un autre concept important est la différence entre les systèmes internes et commerciaux (COTS). Les systèmes commerciaux prêts à l'emploi sont accessibles au public et ne sont pas beaucoup personnalisés pour chaque fabricant. Cet article fournit un bon résumé des avantages et des inconvénients des systèmes d'exploitation commerciaux et internes. De nombreuses avionsiques de haute criticité ont encore le logiciel de base développé en interne en raison des avantages impliqués.
Linux répond-il aux exigences de certification?
Oui, Linux n'est pas "certifié FAA" mais en réalité aucun RTOS n'est "certifié FAA" ou "rencontre DO-178C". DO-178C fournit des objectifs que les ingénieurs de systèmes avioniques doivent remplir afin de certifier l'ensemble de leur logiciel avionique (les objectifs couvrent entre autres les audits, les tests, l'analyse de sécurité et la rédaction des exigences). Ainsi, le mieux que le fournisseur de système d'exploitation puisse faire est de fournir un logiciel «DO-178C ready» ou de suivre les directives DO-178C. Notez que DO-178C reconnaît différents niveaux de sécurité, de sorte que ce qui peut être certifié sous DO-178C pour un système de maintenance peut ne pas l'être selon DO-178C pour une unité d'affichage critique. Le problème avec Linux n'est pas que Linux n'est pas "certifié sous DO-178C", c'est qu'il est difficile à certifier en raison des défis mentionnés ci-dessous. Il est possible de certifier un système sous Linux, mais cela pourrait être extrêmement difficile en raison des analyses supplémentaires, des mesures de sécurité et de la documentation qui seraient nécessaires, en particulier pour l'avionique la plus critique. Certains de ces défis et méthodes alternatives de conformité sont décrits dans ce rapport de la FAA.
Avantages et inconvénients de Linux
Il y a des avantages à utiliser Linux, qui sont en partie partagés avec d'autres systèmes commerciaux. Davantage d'employés auront déjà une expertise avec Linux, et le système d'exploitation a été conçu avec plus d'expertise et de temps que la plupart des organisations n'en ont. Les systèmes commerciaux ont également un prix de vignette bien inférieur à celui des logiciels internes. Les systèmes commerciaux sont également plus adaptables et permettent des modifications du matériel et de la place pour une croissance future sans revenir à la planche à dessin. Les outils pour travailler avec le logiciel sont plus développés, et ils peuvent également avoir un historique de service plus long qui donne confiance dans le logiciel.
Voici quelques-uns des problèmes auxquels Linux est confronté dans un système avionique lorsqu'il est en concurrence avec un RTOS , de ce rapport FAA:
-
partitionnement: si deux programmes sont censés fonctionner indépendamment, il doit y avoir des preuves qu'un programme ne peut pas interférer avec un autre via la structure de la mémoire partagée, les caches, le support de la carte et le micrologiciel, les erreurs, les interruptions, etc.
-
Temps d'exécution dans le pire des cas: dans l'informatique de bureau, c'est normal si j'enlève mon PC avec trop de requêtes ou des conditions inhabituelles à la fois et que le système ralentit ou saute certaines étapes du programme. En avionique, cela n'est pas acceptable pour des raisons évidentes. Le fournisseur devra vérifier cela soit par des modèles de CPU, de mémoire, etc., soit par des tests de laboratoire rigoureux et une analyse temporelle. Les deux sont d'autant plus difficiles que votre matériel et vos logiciels sont complexes.
- Couverture MCDC: les tests sur l'avionique la plus critique (niveau A) nécessitent d'exécuter suffisamment de lignes de code et de conditions de décision pour atteindre le MCDC norme de couverture de code, qui se situe entre «exécuter chaque ligne de code» et des tests exhaustifs de chaque combinaison de conditions. Certains systèmes d'exploitation comme Linux peuvent être extrêmement difficiles à tester de manière suffisamment approfondie pour respecter cette norme.
- documentation: une analyse rigoureuse et des tests de résistance nécessitent beaucoup de documentation sur le fonctionnement interne du système d'exploitation
- considérations de sécurité: Linux de par sa conception a plus de problèmes de sécurité qu'une application interne allégée. Ces problèmes de sécurité deviennent de plus en plus importants, en particulier dans le code militaire
- mort et inaccessible: désactiver soigneusement les nombreuses fonctions inutilisées de Linux et garantir qu'ils ne peuvent pas interférer dans votre logiciel est généralement nécessaire pour la certification
Autres industries critiques pour la sécurité
Qu'en est-il des industries similaires critiques pour la sécurité? Le Space X Falcon utilise Linux dans certains de ses ordinateurs de vol ( sources). Sur la base de cet entretien, Space X semble donner la priorité à la croissance future, à la disponibilité, aux temps de cycle courts et à l'expertise par rapport à la simplicité et à la robustesse du développement interne dans ce domaine. Notez que les ordinateurs de contrôle de vol du Space X Falcon ne sont pas directement analogues à un LRU dans l'avionique moderne typique, donc un travail supplémentaire ou une architecture inhabituelle serait probablement nécessaire pour que Linux fonctionne pour les applications avioniques typiques.
Linux est également utilisé dans de nombreuses applications médicales critiques pour la sécurité, mais non sans problèmes similaires à ceux rencontrés dans l'aviation. Je vous recommande de lire "Choisir Linux pour les dispositifs médicaux" de Wind River, ou cet article sur les inconvénients de Linux dans les applications médicales critiques pour la sécurité.
Je suppose que vous parlez de l'avionique principale comme le guidage de vol, le pilote automatique, le fly-by-wire ou les écrans. D'autres systèmes d'avion pourraient être considérés comme critiques pour la sécurité, mais ne sont pas des exemples typiques de dispositifs critiques pour la sécurité, comme les sacs de vol électroniques certifiés, les solutions de connectivité et les logiciels de maintenance. Celles-ci sont parfois mieux adaptées à une application Linux en raison de leur complexité élevée et de considérations de sécurité moins rigoureuses.
Notez que je ne suis pas un expert dans ce domaine et mes conseils ne remplace pas les conseils d'un spécialiste de la certification.