# PikeOS

PikeOS est un système d'exploitation temps réel (RTOS) basé sur un noyau de séparation offrant une fonctionnalité d’hyperviseur avec plusieurs types de partition pour de nombreux autres systèmes d'exploitation (appelés GuestOS) et applications. Il permet à ses utilisateurs de construire des équipements ou appareils intelligents certifiables pour l'Internet des Objets conformément aux normes de qualité, de sûreté et de sécurité des différents secteurs industriels. Pour les applications en temps réel critiques en matière de sécurité et de sûreté sur des systèmes basés sur des contrôleurs sans Unité de gestion de mémoire (MMU) mais avec une unité de protection de la mémoire (MPU), PikeOS for MPU est disponible.
PikeOS est développé et commercialisé par la société allemande SYSGO (en) fondée en 1991. Cette société a été rachetée par Thales en décembre 2012.

## Résumé PikeOS

PikeOS combine un système d'exploitation temps réel (RTOS) et une plate-forme de virtualisation ainsi qu’un environnement de développement intégré (IDE) basé sur Eclipse. Le système d'exploitation temps réel PikeOS a été développé pour les applications critiques en matière de sécurité et de sûreté de fonctionnement avec des besoins de certification dans les secteurs de l'Avionique, du Spatial et de la Défense, de l'Automobile et des Transports, de l'Automatisation industrielle et du Médical, des Infrastructures Réseau et de l'Électronique Grand Public. La version 5.1.3 du noyau de séparation PikeOS est certifiée conforme à la norme de sécurité Common Criteria au niveau EAL5+. Historiquement, PikeOS est basé sur le micronoyau L4.
L'une des fonctions-clés de PikeOS est la capacité d'exécuter en toute sécurité des applications avec différents niveaux de sûreté et de sécurité simultanément sur la même plate-forme matérielle. Notamment grâce à la stricte ségrégation spatiale et temporelle de ces applications au moyen de partitions logicielles. Une partition logicielle peut être comparée à un conteneur doté de privilèges préalloués et pouvant accéder à la mémoire, au temps CPU, aux E/S, mais aussi à une liste prédéfinie de services PikeOS. Avec PikeOS, le terme application se réfère à un exécutable lié à une interface (API) proposée par PikeOS et tournant en tant que processus à l'intérieur d'une partition. Dépendant de la nature de l'API proposé par PikeOS, les applications peuvent aller de la simple boucle de contrôle jusqu'à des systèmes d'exploitation hôtes (GuestOS) tels que Linux, para-virtualisés ou bénéficiant des techniques de virtualisation matérielle.
Les partitions logicielles s'appellent aussi Machines Virtuelles (MV), parce qu'il est possible d'implémenter un système d'exploitation hôte (GuestOS) complet à l'intérieur d'une partition s'exécutant indépendamment des autres partitions et, par conséquent, d’être en mesure d'adresser des cas d'utilisation de criticité mixte (applications de niveau de criticité différente). PikeOS peut être considéré comme un hyperviseur de type 1.

## Chaîne d'outils prise en charge/IDE CODEO

L'IDE CODEO basé sur eclipse fournit des outils de configuration graphique incluant les composants dont les ingénieurs logiciel vont avoir besoin pour développer des applications intégrées ainsi que des assistants complets pour contribuer au développement de manière rapide et efficace en termes de coûts:
* Assistance dans la phase de configuration
* Débogage à distance (jusqu'au niveau de l'instruction matérielle)
* Supervision de cibles
* Déploiement d'application à distance
* Analyse temporelle.
Plusieurs écrans d'édition graphique dédiées assistent l'intégrateur système pour toujours conserver une vision d'ensemble d'importants aspects de la configuration du système PikeOS en montrant les types de partition, la planification, les canaux de communication, la mémoire partagée et la configuration de dispositif E/S à l’intérieur des partitions.
Les projets peuvent être définis facilement à l'aide de modèles réutilisables et distribués aux différentes équipes de développement. Les utilisateurs peuvent configurer des composants prédéfinis pour leur projet ainsi que définir et ajouter d'autres composants durant le processus de développement.

## Avantages-clés

* Système d'exploitation temps réel incluant un hyperviseur de type 1 conçu pour une configuration hautement flexible
* Permet des temps d'amorçage rapides et sûrs
* Permet la criticité mixte via un noyau de séparation
* Offre le partionnement spatial et temporel
* Permet l’utilisation de pilotes au niveau noyau ou au niveau espace utilisateur
* Garantit l’indépendance vis-à-vis des types et des familles de processeur
* Offre des processus simples de migration et une grande portabilité en simple-cœur et multi-cœur
* A été conçu pour permettre la certification pour de multiples normes de sûreté et de sécurité
* Réduit le délai de mise sur le marché via des outils de développement et de vérification standard
* Offre un large choix de types de systèmes d'exploitation hôtes supportés (API)
* Ne possède aucune restriction d'exportation ITAR (solution européenne).

## Standards de certification

Normes de certification de sûreté conformes
* RTCA DO-178B/C ou Eurcae ED-12B/C
* EN 50218
* EN 50657
* CEI 61508
* ISO 26262
* CEI 62304
Normes de certification de sécurité conformes
* Critères communs
* SAR

## Écosystème partenaire

SYSGO (en) s'engage à mettre en place les partenariats technologiques et commerciaux pertinents pour aider les ingénieurs à atteindre leurs objectifs. SYSGO collabore actuellement avec près de 100 partenaires dans le monde entier.
Veuillez trouver ci-dessous un extrait des partenaires classés par catégorie:
* Fabricants de cartes : Curtiss-Wright Controls Embedded Computing, Kontron, MEN ou ABACO
* Fabricants de semi-conducteurs : NXP/Qualcomm, Renesas, TI, Xilinx, Infineon, NVidia ou Intel
* Partenaires logiciel : CoreAVI, Aicas, AdaCore , RTI, Datalight, Systerel, Imagination Technologies
* Vendeurs d’outils : Lauterbach, Vector Software, Rapita, iSystem, ANSYS/Esterel, PrismTech,
* Architectures supportées : ARM, PPC, X86 ou Sparc (sur demande)

## Les différentes versions

| Produit | Version | Version CODEO liée | Version ELinOS liée | Date de sortie | fin du support |
| PikeOS | 3.4 (non cert) | 5.0, 6.0, 6.1, 6.2 | 5.2 | 07/2013 | Depuis le 12/2017 |
| PikeOS | 3.4 (cert) | 5.0, 6.0, 6.1, 6.2 | 5.2 | 07/2013 | LTS on x86 |
| PikeOS | 3.5 | 5.0, 6.0, 6.1, 6.2 | 6.0, 6.1 | 01/2015 | Depuis le 12/2017 |
| PikeOS | 4.0 | 6.0, 6.1, 6.2 | 6.0, 6.1 | 03/2016 | Depuis le 06/2019 |
| PikeOS | 4.1 | 6.1, 6.2 | 6.1 | 08/2016 | Depuis le 04/2021 |
| PikeOS | 4.2 (non cert) | 6.2 | 6.2 | 01/2017 | Candidate |
| PikeOS | 4.2 (cert) | 6.2 | 6.2 | 04/2017 | Courant |
| PikeOS | 5.0 (non cert) | 7.0, 7.1 | 7.0 | 06/2020 | Courant |
| PikeOS | 5.0 (cert) | 7.0, 7.1 | 7.0 | 08/2020 | Courant |
| PikeOS | 5.1 (non cert) | 7.1 | 7.0 | 01/2021 | Courant |
| PikeOS | 5.1 (cert) | 7.1 | 7.0 | 02/2021 | Courant |