ABSTRACT

This chapter describes the DREAMS mixed-criticality layered execution environment with a special focus on virtualization technologies such as hypervisors. It also describes the layered execution architecture defined in DREAMS, based on an application layer, runtime layer, virtualization layer and hardware layer. The chapter provides two specific hypervisor solutions extended to provide DREAMS support: XtratuM and Linux-KVM. It discusses major hypervisor types with respect to implementation and provided virtual environments. According to the resources used by the hypervisor there are two basic types of hypervisors: type 1 hypervisors (bare-metal) and type 2 hypervisors (hosted). Considering the virtual environment provided by the hypervisor, there are two basic types of hypervisors: full virtualization and para-virtualization. There are basically two techniques that can be used to implement a full virtualizer: code analysis with binary translation and hardware assistance. The para-virtualization technique greatly improves the performance and simplifies the hypervisor.