One of the things that stands out in many customer visits that I do is that embedded virtualization often enables possibilities that the customer never thought possible. This of course is a good thing, it may enable them to put a new product to market that the customer had never thought of. In a few cases I have seen customers use virtualization to shift their business models from shipping custom hardware to shipping software only using COTS boards. Virtualization in this case is used to provide the customization that they formerly needed hardware for.
I went on a customer call earlier this year to a customer that was looking to go to multi-core. The customer was building a networking product and was using VxWorks on a single core Intel processor and wanted the additional processing power that a dual or quad-core could provide. They wanted to go to multi-core and came to Wind River to see what their options were. We discussed their business issues, came up with a set of requirements and decided that VxWorks SMP was their best bet.
The Symmetric MultiProcessing capability in VxWorks allows a customer to quickly utilize the additional cores, either by letting the operating system decide which process runs where, or by manually optimizing the configuration for whatever performance aspect is important to you (throughput, determinism, real-time response).
The reason that we settled on VxWorks SMP was that the customer had already split their application into tasks, each tasks was very independent in processing and memory usage and there was minimal locking between the tasks. On top of this the customer did not need strong separation between the tasks. VxWorks SMP was the easiest and fastest migration path with minimal risk for them.
However, as part of the discovery process we also found out that this VxWorks based product (let's call it product A) works with another product B that uses Linux and there is an additional management console C that uses Windows. Also as part of the discovery process we discussed embedded virtualization of course and how it could be used (for example) to combine products A, B and C onto a single quad core processor. This raised some eyebrows and there was some chatter between the participants, however at this point the company was selling each of them as independent products and they were okay with that. The immediate problem they needed to solve was to get their product A to multi-core.
Fast forward a couple of months. The company has been making great progress migrating their product A to a dual core processor. However, it turned out that the discussion on embedded virtualization had reached other levels of management level inside the company and they wanted to explore the possibility of introducing a new product combining A, B and C into a single box.
It turned out that the reason for the separation was scalability (as it often is). One management box C can be combined with several boxes running A and 2 boxes running B to build a particular configuration. The main market for these products was huge networking installations. However, for the bottom of the market this was complicated and expensive, a single box with a pre-integrated combination of A, B and C would open a new market segment of much smaller networking installations, something that without virtualization is either not feasible, or at the very least expensive to do.
Long story short, product ABC is now under development using a mixture of VxWorks SMP, Wind River Linux, Wind River Hypervisor and Microsoft Windows XP. The immediate target is a quad core processor, however, this can easily be extended to a higher core count product that includes multiple partitions running product A, a few B and a single C.
The funny thing (to me at least) is that we have a number of examples that are very similar in many other markets. The examples are the same in that the initial call with the customer is about migrating to multi-core, and how this can be easiest achieved and then morph into a combination of multi-core and virtualization to reach new markets to deliver new products.
It is a great proof point that indeed embedded virtualization opens up new possibilities and your Wind River representative is happy to talk to you about this to see how you can benefit from this exciting technology.