Open Kernel Labs Blog

October 13, 2008

Why not use enterprise hypervisors for embedded systems?

This is another frequently-asked question. I have dealt with some aspects of it in an earlier blog, but there, as in a white paper published earlier this year, the focus was on where the requirements of embedded systems are at odds with the concept of virtual machines as it has been understood for decades.

However, there are other significant differences in the requirements posed on hypervisors in the various application domains. I have examined those in a white paper entitled "Hypervisors for Consumer Electronics" which will be presented at the Consumer Communications and Networking Conference in Las Vegas in January. That paper argues that porting an enterprise-style hypervisor to an embedded platform doesn't make it suitable for embedded-systems use. The reasons are the intrinsic differences of servers and desktops on one side, and embedded systems on the other. These favour drastically different design tradeoffs, and hence re-targeting an enterprise hypervisor for embedded use would require an extensive re-design.

The probably most significant of those differences is memory size. On servers, memory is measured in Gigabytes, while for mobile systems it's Megabytes or even Kilobytes. Running a complete driver operating system (such as Xen's Dom-0 guest) adds relatively little to overall memory consumption on a server, but is prohibitive in a mobile device (but keep things in proportion, see my earlier blog on size). Remember, memory consumes power, and for mobile devices more power consumption meas less battery lifetime.

Real-time capability is another issue. Enterprise hypervisors aren't designed to be real-time capable, in fact, virtualizing time is an important property here. Embedded devices need real time, not virtual time. Other issues are inter-VM communication, and the size of the trusted computing base, an issue I have also discussed before.

Given enough resources, it might be possible to make an enterprise hypervisor suitable for embedded systems. But that effort is totally out of proportion with the benefits. As I explain in the paper, the total amount of code that had to be changed to port the Xen hypervisor to the ARM architecture is about twice the size of the complete OKL4 hypervisor! So, if you're looking for the right solution to satisfy your embedded virtualization needs, go with the leaders: Open Kernel Labs with the microkernel-based OKL4 hypervisor.

I would, however, like to point out that my assessment of hypervisors is made very much from the viewpoint of the consumer-electronics space, and mostly applies to many other types of embedded devices such as automotive, point-of-sales, medical devices, and even national-security uses. There are some classes of embedded devices where my arguments do not necessarily apply. An example is network infrastructure, which uses platforms that are very similar (if not identical) to servers. Consequently, enterprise-style hypervisors might be deployed in that domain.

 

Posted by Gernot Heiser on October 13 at 11:11 PM

blog comments powered by Disqus
Gernot Heiser's avatar

About Gernot Heiser:

Gernot Heiser, Co-founder and Consulting Scientist, never thought he would be in the business world. Prior to NICTA's creation in 2003, Dr Heiser was a full-time faculty member at the University of New South Wales. However, this die-hard academic couldn’t pass up the opportunity to see the commercialization of this research. Gernot still loves teaching, almost as much as he loves good wine and good food. And anyone will tell you that Gernot knows his wine.

Email Gernot Heiser

Ask GernotPermalink

▲ Back to Top