PikeOS embedded Virtualization
PikeOS embedded virtualization is designed to manage virtualization along with the special requirements of complex embedded systems, e.g. real-time responsiveness, deterministic and diverse hardware and software support. While server or desktop virtualization mainly targets on space partitioning to make better use of a x86 hardware platform, PikeOS embedded virtualization offers more flexibility through time and space partitioning. PikeOS embedded virtualization provides partitions for multiple guest operating systems, so-called personalities, and supports diverse hardware platforms.
Partitioning according to ARINC 653

Partitioning according to ARINC 653: Embedded virtualization allows the separation of applications and their resp. RTOSs, APIs, and RTEs in safely encapsulated partitions.
Partitioning is a PikeOS concept described in the ARINC 653 specification for system partitioning and scheduling which is often required in safety-critical systems in the avionics industry. Partitioning allows to build multiple partitions on top of the PikeOS micro-kernel that can host real-time operating systems, run-time environments or APIs along with their world of application programs (see info graphic on the right). Each of these partitions receives its own set of system resources. By this means applications operate completely isolated and are controlled only by the PikeOS micro-kernel. There is no way for a program in one partition to affect or harm another. In this way multiple guest operating systems are able to safely coexist on a single machine and their individual functionalities can be tailored to match the requirements of their application programs. Partitioning helps to reduce the number of hardware in complex systems and makes software integration much easier.
Micro-kernel based para-virtualization
PikeOS embedded virtualization comes with a small micro-kernel which provides basic functionalities only. By means of these functionalities the system's resources, e.g. memory, I/O devices, CPU-time, etc., can be divided into separate subsets building the above shown partitions, i.e. virtual machines. The PikeOS micro-kernel serves as hypervisor or virtual machine monitor (VMM) and traps any attempts by user programs to execute privileged instructions or to otherwise access resources outside of their set. In this way, it implements para-virtualization similar to Xen.
Reduction of software complexity
Computers today generally do not suffer from lack of performance, but they often have severe reliability problems. In embedded systems, where malfunction of appliances can be a severe threat to the lifes of humans, software complexity is the core problem. With micro-kernel based virtualization, applications are no longer forced to unconditionally trust a huge monolithic kernel containing a lot of complex functionalities that the application may or may not need. Instead, each subsystem can choose the amount of code that it wants to trust, thus providing more stability and helping to reduce the complexity of the whole system.
Cost-efficient software integration and protection of intellectual property
Software integration becomes more or less a question of configuration. The flexible design of PikeOS embedded virtualization enables system architects to integrate software applications of different suppliers on one platform in a cost-efficient, safe and secure way. It even allows to integrate APIs supporting legacy code software. All applications reside in encapsulated partitions where the PikeOS micro-kernel controls access to, beyond that protecting intellectual property against unwarranted access.

