Few embedded systems are developed from scratch these days. Components are purchased from third parties as commercial off-the-shelf components, components are out-sourced, and some are legacy. This of course causes many problems as there is no strong separation between the components. This can lead to a host of development-time problems (difference in OS requirements), but also to run-time problems (one component impacting another, difficult to debug which component is at fault).
A hypervisor provides capabilities for the embedded system developer that have not been previously available.
A hypervisor can provide separation between these components, each component can be allocated to a virtual machine ('a virtual board') and through this be separated from other components. Of course, multiple components can be combined in a virtual board as well, up to the discretion of the system architect.
Besides the obvious benefits of space and time separation and the capability to deploy the virtual boards to different cores in a multicore chip, the hypervisor allows each component to have it's own operating system or operating system version. It makes it easier for example to run one component on Linux version X and the other on Linux version Y, or run some components in a realtime environment like VxWorks.
This also helps with issues like GPL, instead of integrating a component (say an encryption algorithm) on a Linux virtual board, it can be integrated in it's own virtual board (possibly even without and OS) and thereby avoid potential licensing problems.
One of the things that is vital to make this work is inter-board communication, the components have to communicate efficiently and flexibly, overhead needs to be minimal or the benefits of the separation will be lost.
All these benefits are available using the Wind River Multicore Software solution and I have had the opportunity to visit many customers talking about these types of benefits in the past months. This frequently leads to heated white board discussions where the customer-in-question tries to see how they can utilize these new capabilities to their benefit. After a while, you see realization seep in that this is really cool and useful technology for them.
That discussion and seeing that realization take hold is my favorite time in any customer meeting.
Comments