Role of Virtualization in Embedded Systems

ABSTRACT

System virtualization, which enjoys immense popularity in the enterprise and personal computing spaces, is recently gaining significant interest in the embedded domain. Starting from a comparison of key characteristics of enterprise systems and embedded systems, we will examine the difference in motivation for the use of system virtual machines, and the resulting differences in the requirements for the technology. We find that these differences are quite substantial, and that virtualization is unable to meet the special requirements of embedded systems. Instead, more general operatingsystems technologies are required, which support virtualization as a special case. We argue that high-performance microkernels, specifically L4, are a technology that provides a good match for the requirements of next-generation embedded systems.

1. INTRODUCTION

System virtualization has become a mainstream tool in the computing industry, as indicated by billion-dollar IPOs and sales of startup companies for hundreds of millions. The decoupling of virtual and physical computing platforms via system virtual machines (VMs) supports a variety of uses, of which the most popular ones are:

  • consolidating services that were using individual computers into individual virtual machines on the same computer. This utilises the strong resource isolation provided by virtual machines in order to achieve quality-of-service (QoS) isolation between servers;
  • load-balancing across clusters, by creating new virtual machines on demand on a lightly-used host, or even migrating live VMs. This utilises the platform abstraction provided by virtualization;
  • power management in clusters, by moving VMs off lightlyloaded machines, which can then be shut down (this is effectively load-balancing in reverse);
  • firewalling services which have a high risk of being compromised in order to protect the rest of the system. This also utilises resource isolation;
  • running different operating systems (OSes) on the same physical machine (e.g. Windows, Linux and MacOS), typically in order to run applications, which are specific to a particular OS. This use is mostly relevant for personal machines (desktops or laptops) and is also enabled by resource isolation.

A main characteristic of such usage cases is that typically all VMs run the same OS (or, in the last scenario listed above, “similar” OSes in the sense that they provide roughly the same kinds of capabilities and similar abstraction levels). Also characteristic of those scenarios is that VMs communicate just like physical machines—via (virtual) network interfaces (including network file systems). This is consistent with the VM view, which is, by definition, like that of a physical machine.

Download complete White Paper


More White Papers and Publications

▲ Back to Top