|
Virtualization IssuesDespite its attractions, virtualization does have limitations. |
- VMs are coarse grain. A VM is meant to run its own operating system, and present its own universe. This limits the degree to which virtualization can be used to partition a system into protected domains. Given that modern embedded software often comprises millions of lines of code, only very limited fault-containment is possible.
- Resource partitioning in VMs is restrictive and does not support sharing. It is highly desirable to move resources—like memory—between subsystems. It is also important to share resources between subsystems, especially memory buffers, device drivers and system services This is not or only poorly supported by normal virtualization solutions, which are designed to enforce resource partitioning.
- Inefficient inter-VM communication. Subsystems in an embedded system must cooperate in order to fulfill the overall system mission, requiring frequent communication. Examples of this are devices and system services shared between subsystems, device drivers encapsulated in their own protection domains for robustness reasons, and fine-grained componentization. Hypervisors are optimized for partitioning, which conflicts with inter-domain communication.
- No interleaved scheduling. A hypervisor treats a VM as a black box, and only schedules complete VMs. This means that they do not support interleaving the scheduling priorities of threads in different VMs. This is desirable, as even a high-priority real-time VM will have low-priority threads that should only run if no other VM has important work to do.
back to top
Developers
Product Managers
- Learn about OK Labs virtualization
- Find out about secure, trusted computing.
- Explore our technology
roadmap
More
- Visit our
community portal
to download whitepapers and manuals
OKL4 Microkernel Technology
OKL4 is the world's most advanced microkernel, and the one with the most ambitious product roadmap.
