PikeOS
Encyclopedia
PikeOS is a microkernel
-based real-time operating system
made by SYSGO
AG. It is targeted at safety and security critical embedded systems. It provides a partitioned environment for multiple operating systems with different design goals, safety requirements, or security requirements to coexist in a single machine.
If several programs having different criticality levels are to coexist in one machine, the underlying OS must ensure that they remain independent. Resource partitioning is a widely accepted technique to achieve this. PikeOS combines resource partitioning and virtualisation: Its virtual machine
environments (VMs) are able to host entire operating systems, along with their applications. Since PikeOS uses paravirtualisation, operating systems need to be adapted in order to run in one of its VMs. Application programs, however, can run unmodified.
Since each VM has its own, separate set of resources, programs hosted by one VM are independent of those hosted by another. This allows for legacy (e.g. Linux) programs to coexist with safety-critical programs in one machine. Unlike other popular virtualisation systems, PikeOS features not only separation of spatial resources, but also strictly separates temporal resources of its client OSes. This allows for hard real-time systems to be virtualised, while still retaining their timing properties. The PikeOS scheduling method
is patented.
Spatial and temporal resources are assigned statically to the individual VMs by the PikeOS System Software. Together with the PikeOS microkernel, this system software forms a minimal layer of globally trusted code
.
Due to the small amount of trusted code and the modular design PikeOS is suited for safety-critical projects requiring certification according to IEC 61508
, DO-178B
, EN 50128 and EN 62304 industrial standards. Known examples are the development of the Airbus A350
Integrated Modular Avionics
devices and the Airbus A400M
loadmaster workstation.
s, run-time environments and guest operating systems are available
In addition an AUTOSAR
run-time environment is currently under development
, x86, ARM
, MIPS
, SPARC
and SuperH
architectures. The strict separation of system resources requires that the processor has a memory management unit
or a memory protection unit.
Since version 3.1 PikeOS supports multi-core systems.
Microkernel
In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
-based real-time operating system
Real-time operating system
A real-time operating system is an operating system intended to serve real-time application requests.A key characteristic of a RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter...
made by SYSGO
SYSGO
SYSGO AG is a German company oriented in embedded software since its founding in 1991. The company is focused on the basic software building blocks for embedded systems used in critical environments such as airplanes, medical instruments or industrial automation...
AG. It is targeted at safety and security critical embedded systems. It provides a partitioned environment for multiple operating systems with different design goals, safety requirements, or security requirements to coexist in a single machine.
If several programs having different criticality levels are to coexist in one machine, the underlying OS must ensure that they remain independent. Resource partitioning is a widely accepted technique to achieve this. PikeOS combines resource partitioning and virtualisation: Its virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
environments (VMs) are able to host entire operating systems, along with their applications. Since PikeOS uses paravirtualisation, operating systems need to be adapted in order to run in one of its VMs. Application programs, however, can run unmodified.
Since each VM has its own, separate set of resources, programs hosted by one VM are independent of those hosted by another. This allows for legacy (e.g. Linux) programs to coexist with safety-critical programs in one machine. Unlike other popular virtualisation systems, PikeOS features not only separation of spatial resources, but also strictly separates temporal resources of its client OSes. This allows for hard real-time systems to be virtualised, while still retaining their timing properties. The PikeOS scheduling method
Scheduling (computing)
In computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...
is patented.
Spatial and temporal resources are assigned statically to the individual VMs by the PikeOS System Software. Together with the PikeOS microkernel, this system software forms a minimal layer of globally trusted code
Trusted computing base
The trusted computing base of a computer system is the set of all hardware, firmware, and/or software components that are critical to its security, in the sense that bugs or vulnerabilities occurring inside the TCB might jeopardize the security properties of the entire system...
.
Due to the small amount of trusted code and the modular design PikeOS is suited for safety-critical projects requiring certification according to IEC 61508
IEC 61508
IEC 61508 is an international standard of rules applied in industry. It is titled "Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems"....
, DO-178B
DO-178B
DO-178B, Software Considerations in Airborne Systems and Equipment Certification is a document dealing with the safety of software used in airborne systems....
, EN 50128 and EN 62304 industrial standards. Known examples are the development of the Airbus A350
Airbus A350
The Airbus A350 is a family of long-range, wide-body jet airliners under development by European aircraft manufacturer Airbus.A consortium originally comprising European aerospace companies from the UK, France, Spain and West Germany, Airbus is now fully owned by EADS and since 2001 has been known...
Integrated Modular Avionics
Integrated Modular Avionics
Integrated modular avionics represent real-time computer network airborne systems. This network consists of a number of computing modules capable of supporting numerous applications of differing criticality levels....
devices and the Airbus A400M
Airbus A400M
The Airbus A400M, also known as the Atlas, is a multi-national four-engine turboprop military transport aircraft. It was designed by Airbus Military as a tactical airlifter with strategic capabilities. The aircraft's maiden flight, originally planned for 2008, took place on 11 December 2009 in...
loadmaster workstation.
Programming interfaces and environments
Currently the following application programming interfaceApplication programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
s, run-time environments and guest operating systems are available
- PikeOS native interface
- ARINC 653ARINC 653ARINC 653 is a software specification for space and time partitioning in Safety-critical avionics Real-time operating systems...
APEX - POSIXPOSIXPOSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
PSE51 and PSE52 - LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
- Android
- Coqos
- Real-time JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
- AdaAda (programming language)Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...
- RTEMSRTEMSRTEMS is a free open source real-time operating system designed for embedded systems....
- OSEKOSEKOSEK is a standards body that has produced specifications for an embedded operating system, a communications stack, and a network management protocol for automotive embedded systems...
- ITRONITRON ProjectThe ITRON project is the first of several sub-architectures of the TRON Project.Originally undertaken in 1984, ITRON is a Japanese open standard for a real-time operating system initiated under guidance of Ken Sakamura. This project aims to standardize the RTOS and related specifications for...
In addition an AUTOSAR
AUTOSAR
AUTOSAR is an open and standardized automotive software architecture, jointly developed by automobile manufacturers, suppliers and tool developers...
run-time environment is currently under development
Supported hardware
PikeOS supports processors with PowerPCPowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
, x86, ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
, MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...
, SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
and SuperH
SuperH
SuperH is a 32-bit reduced instruction set computer instruction set architecture developed by Hitachi. It is implemented by microcontrollers and microprocessors for embedded systems....
architectures. The strict separation of system resources requires that the processor has a memory management unit
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...
or a memory protection unit.
Since version 3.1 PikeOS supports multi-core systems.