Hypervisor

Virtual machine technology is a secure and efficient way to build partitioned systems. A hypervisor, also known as virtual machine monitor VMM, is a layer of software that enables to run several independent execution environments or partitions in a single computer. The key difference between hypervisor technology and other kind of virtualisation is the performance. In bare-machine hypervisors the overhead can be very low maintaining the throughput of the virtual machines very close to the native hardware.

The low overhead and the reduced size of the hypervisor can be considered as an appropriated solution to achieve secure systems if it is designed following strict design criteria to meet security requirements. Its correctness can be sufficient to ensure the security of the system as a whole or, at least, the security of a set of trusted partitions. In a partitioned system, the partitions can accommodate different kinds of applications: real-time, trusted, non trusted, etc. As consequence, the partition’s operating system can be tailored to provide a set of specific services to its applications.

XtratuM

XtratuM is designed to achieve temporal and spatial requirements of safety critical systems. XtratuM is, according to the IBM categorisation , a Type 1 (bare-metal) hypervisor that uses para-virtualisation. The para-virtualised operations are as close to the native hardware as possible.

XtratuM permits the development of "cost-effective" solutions for partitioned secure and critical embedded systems:

  • Reduction of Hardware Costs, Increased Hardware Efficiency, and Increased Peak Performance.
  • Increased Safety.
  • Increased Security.
  • Multilevel-Security and Multilevel-Safety per partition.
  • Increased Flexibility, Interoperability, and Backwards-compatibility.

XtratuM is especially suitable for safety-critical and security-critical applications in the fields of Aerospace, Aeronautics, Automotive & Transportation, industrial Automation, Instrumentation, Network Infrastructure, and Consumer Electronic.

XAL

The XAL (XtratuM Abstraction Layer) is a minimal partition developement support for the development of C programs directly on top of XtratuM. It is provided jointly with the XtratuM core.

This abstraction layer provides the basic and minimal services to setup a basic "C" execution environment. XAL is useful for those partitions that are mono-thread and do not need an operating system. All services provided the XtratuM hypercalls are available to the application.

The XAL development environment is integrated by a library with the services and the minimal runtime to execute the partition and handle the virtualised interrupts. A XAL partition can:

  • Be specified as "system" or "user".
  • Use all the XtratuM hypercalls according to the type of partition.
  • Use the standard input/output "C" functions: printf, sprintf, etc. The available functions are defined in the include/stdio.h.
  • Define interrupt handlers and all services provided by XtratuM.