# PikeOS

PikeOS ist ein Echtzeitbetriebssystem des Unternehmens SYSGO. Es bietet einen Hypervisor basierend auf einem Separation-Kernel mit verschiedenen Partitionstypen für zahlreiche Betriebssysteme (sogenannte Gastbetriebssysteme) und Anwendungen. PikeOS ermöglicht die Entwicklung zertifizierbarer intelligenter Geräte für das Internet der Dinge gemäß den Qualitäts- und Sicherheitsstandards verschiedener Branchen, insbesondere der Avionik, Automobilindustrie, Bahnwesen, Medizintechnik und der Industrie 4.0. Für sicherheitskritische Echtzeitanwendungen auf Controller-basierten Systemen ohne Memory Management Unit (MMU), aber mit Memory Protection Unit (MPU), ist PikeOS for MPU verfügbar.

## Details

PikeOS kombiniert ein Echtzeitbetriebssystem mit einer Virtualisierungsplattform und einer Eclipse-basierten integrierten Entwicklungsumgebung (IDE) für eingebettete Systeme. Das PikeOS-Echtzeitbetriebssystem wurde für sicherheitskritische Anwendungen mit Zertifizierungsanforderungen in den Bereichen Luft- und Raumfahrt, Automobil- und Transportwesen, Industrielle Automation & Medizin, Netzwerkinfrastruktur und Verbraucherelektronik entwickelt. Neben den Safety-Vorzertifizierungen ist der PikeOS Separation Kernel (Version 5.1.3) nach Common Criteria auf Stufe EAL5+ zertifiziert.
PikeOS ermöglicht die Ausführung von Anwendungen mit unterschiedlichen Sicherheitsstufen durch räumliche und zeitliche Trennung mittels Softwarepartitionen auf derselben Plattform. Eine Softwarepartition fungiert als Container mit vorab zugewiesenen Berechtigungen für Speicher, CPU-Zeit, Ein-/Ausgaben und den Zugriff auf eine Liste von PikeOS-Services. Der Begriff "Applikation" bezieht sich auf ein ausführbares Programm, das mit der PikeOS-API-Bibliothek verknüpft ist und als Prozess innerhalb einer Partition läuft. Dank der PikeOS-API können Anwendungen von einfachen Regelkreisen bis hin zu komplett virtualisierten Gastbetriebssystemen wie Linux oder Hardware-virtualisierten Gastbetriebssystemen reichen.
Softwarepartitionen werden auch als virtuelle Maschinen bezeichnet, da es möglich ist, ein vollständiges Gastbetriebssystem in einer Partition zu implementieren, das unabhängig von anderen Partitionen läuft und somit Anwendungsfälle mit gemischter Kritikalität unterstützen kann. PikeOS kann als Typ-1-Hypervisor betrachtet werden.

## Unterstützte Toolchain / CODEO IDE

Die Eclipse-basierte CODEO-IDE bietet grafische Konfigurationstools und integrierte Entwicklungswerkzeuge für eingebettete Anwendungen, darunter:
* Geführte Konfiguration
* Remote Debugging (bis hinunter auf die Ebene der Hardwareanweisungen)
* Zielhardware-Monitoring
* Bereitstellung von Remoteanwendungen
* Timing-Analyse
Durch grafische Ansichten zur Bearbeitung behält der Systemintegrator den Überblick über Aspekte der PikeOS-Systemkonfiguration, einschließlich Partitionstypen, Terminierung, Kommunikationskanäle, gemeinsam genutzter Speicher und E/A-Gerätekonfiguration innerhalb von Partitionen. Projekte können mit wiederverwendbaren Templates definiert und an Entwicklungsgruppen verteilt werden. Benutzer können vordefinierte Komponenten für ihre Projekte verwenden und weitere Komponenten definieren und hinzufügen.

## Für PikeOS unterstützte Zertifizierungsstandards

Safety:
* DO-178C
* EN 50128 / EN 50657
* IEC 61508
* ISO 26262
* IEC 62304
Security:
* Common Criteria
* SAR

## Partnersystem

Folgende Hersteller unterstützen PikeOS:
* Board-Lieferanten: Curtiss-Wright Controls Embedded Computing, Kontron, MEN, ABACO
* Silicon-Lieferanten: NXP, Renesas, TI, Xilinx, Infineon, Nvidia, Intel
* Software-Partner: CoreAVI, Aicas, AdaCore, ANSYS, RTI, PrismTech, Datalight, Systerel, Imagination Technologies, RAPITA
* Tool-Partner: Lauterbach, Vector Software, Rapita, iSYSTEM
* Unterstützte Architekturen: ARM, PPC, x86, SPARC, RISCV
Unterstützte Gastbetriebssysteme:
* Linux oder Android (idealerweise SYSGOs Linux-Distribution ELinOS)
* POSIX PSE51 mit PSE52 Erweiterung
* ARINC 653
* RTEMS
* Java
* AUTOSAR
* Ada (inkl. Ravenscar Profil)
* und weitere

## End-of-Life-Überblick PikeOS

| Produkttyp | Produktversion | Verknüpfte CODEO-Version | Verknüpfte ELinOS-Version | EOL |
| PikeOS | 3.4 (non cert) | 5.0, 6.0, 6.1, 6.2 | 5.2 | Seit 2017-12 |
| PikeOS | 3.4 (cert) | 5.0, 6.0, 6.1, 6.2 | 5.2 | LTS auf x86 |
| PikeOS | 3.5 | 5.0, 6.0, 6.1, 6.2 | 6.0, 6.1 | Seit 2017-12 |
| PikeOS | 4.0 | 6.0, 6.1, 6.2 | 6.0, 6.1 | Seit 2019-06 |
| PikeOS | 4.1 | 6.1, 6.2 | 6.1 | Seit 2021-04 |
| PikeOS | 4.2 (non cert) | 6.2 | 6.2 | Candidate |
| PikeOS | 4.2 (cert) | 6.2 | 6.2 | Aktuell |
| PikeOS | 5.0 (non cert) | 7.0, 7.1 | 7.0 | Aktuell |
| PikeOS | 5.0 (cert) | 7.0, 7.1 | 7.0 | Aktuell |
| PikeOS | 5.1 (non-cert) | 7.1 | 7.0 | Aktuell |
| PikeOS | 5.1 (cert) | 7.1 | 7.0 | Aktuell |
Erläuterung:
„Candidate“ bedeutet, dass derzeit darüber diskutiert wird, wann und wie der EOL-Prozess für diese Version beginnt.
„LTS“ bedeutet, dass langfristiger Support verfügbar ist.
„Aktuell“ bezieht sich auf die aktuelle Version.
„Planned“ bedeutet die nächste geplante Version.