I noticed an interesting virtualization article at EETimes today. Some good general points were made, but I do have a couple of comments…
This “type 1″ and “type 2″ (a.k.a. “hosted” and “bare-metal”) distinction is very popular in presentations and trade magazines. However, as a colleague has previously pointed out, it is also an academic issue and has nothing to do with the properties of actual virtualization implementations. Why is it so popular then? I think it’s because it provides a taxonomy for a very complicated area, and that brings (false) comfort to people confronted with virtualization for the first time. It also provides a nice straw-man for marketing material: “in contrast to those Type 2 hypervisors, ours is Type 1 and therefore much better!”
Also, can we all agree that binary translation has almost no applicability to embedded systems? The performance and memory footprint tradeoffs are quite large, and of course it throws any sort of determinism out the window. The only hypervisor that employs binary translation is VMware products on older hardware, and I’ve never heard anybody bring that up in the context of embedded systems… and I’ve heard a lot of far-flung embedded virtualization use cases!
In the article, isolation gets just a single paragraph of discussion, in which only aerospace and defense (A&D) applications are cited. There is a lot to be said about the engineering tradeoffs around isolation in virtualization, but I will just note that in most embedded systems, hardware vendors have seen fit to provide isolation enforcement mechanisms, and software designers have seen fit to use them, in markets far more diverse than A&D. I personally have been very thankful for those properties for bringup and debugging, regardless of vertical market.
At this point in the virtualization hype/adoption curve, I would like to see meatier discussion of these issues. It may be my skewed perspective, but I think most systems designers have heard something about virtualization by now, and it’s time to move the discussion from the abstract (“you should think about performance”) to specific technology issues that apply to real use cases.
That said, I do welcome all efforts to help dispel the myth that virtualization can solve everybody’s problems without drawbacks.