I want an iPhoneStormDroid

Wind River's Multicore Software Hypervisor solution permits multiple embedded OSes to run on a single device. Wouldn't it be great if you didn't have to actually choose between an iPhone, a BlackBerry, or a Google Android?
Written by Jason Perlow, Senior Contributing Writer

Wind River's Multicore Software Hypervisor solution permits multiple embedded OSes to run on a single device.

Wouldn't it be great if you didn't have to actually choose between an iPhone, a BlackBerry, or a Google Android? What if all those device operating systems could run simultaneously on your handheld? Embedded systems software vendor Wind River is trying to make that happen.

Click on the "Read the rest of this entry" link below for more. 

Currently, embedded systems design often requires building specialized versions of OSes for specific devices -- unlike PC or Mid-range computer systems, you can't just pre-load a generic Windows,  Linux or Mac OS,  you have to specially tailor the environment to your target device, which could run on a multitude of different embedded chip architectures and use a wide variety of device drivers for system components, such as flash memory chips, network interfaces, display types, et cetera -- not to mention run a myriad of different embedded OSes that have to be customized to the device, such as iPhone OS, BlackBerry OS, embedded Linux, Windows CE, vxWorks and Symbian. Just to name a few.

What Wind River is proposing is a radical departure from the way things are currently done --  to virtualize the embedded OS using a Hypervisor -- not unlike how VMWare's ESX, Citrix's Xen, Microsoft's Hyper-V , Red Hat's KVM and IBM's z/VM are used on enterprise server systems today.

Virtualization is becoming the de-facto cost reduction tool for enterprise server consolidations, but the idea of running Virtual OSes on a device is simply mind boggling, as it challenges today's model of vendor device differentiation  and would greatly simplify software development in embedded environments.

There are a number of obvious benefits to doing things this way. For starters, it would allow embedded device OSes to be "imaged" using a standardized build process (such as say, AT&Ts implementation of Blackberry's OS versus Verizon's) which could simply be flash copied to the target device, all of which could have entirely different hardware, such as different screen sizes, different network controllers, different input devices, et cetera. From the perspective of the OS, it wouldn't care and would have no idea if it was running on a Blackberry Storm device versus an iPhone or a HTC G1  -- things would "Just work".

Instead of having the OS talk directly to the hardware, the hypervisor isolates the embedded OS and does all the low-level dirtywork -- all the programming would be done via high-level API calls instead.  If the CE industry approached devices the same way the IT industry deals with enterprise servers, the turn around time to release new devices and OS updates on handhelds and other consumer electronics would be minimal compared to what it is today. Got a set top DVR box but want to run TiVo's OS instead of DirecTVs? With embedded hypervisors, it will be a snap to provision and switch.

Initially, virtualized embedded OSes might run one instance on one device. But embedded processors are getting more and more powerful every year, and soon we may approach a paradigm for devices that is not too dissimilar from what we have on PCs and servers, where devices have multiple cores and could run multiple OS instances virtualized, as depicted  in the illustration above.

So imagine in five years or less what a typical consumer purchasing a mobile device might do. Instead of buying an "iPhone" or a "BlackBerry" or an "Android", you choose a generic device for raw hardware feature set you want -- the screen size, the keyboard, the memory, the mulitmedia capability -- and have the provider image the device with the OS you want to run, or even say, iPhone and BlackBerry at the same time, as long as the hardware can handle it. Or even create theoretical best of breed devices that use modules from several different embedded OSes at once, where Linux/Android may act as your firewall, but Blackberry is your GUI. Corporate customers could create their own special builds with their own applications, and the provider could simply image the device with the required software.

While we might not see something like this happen to consumer devices for a while, Wind River is already working with device manufacturers in other industries -- such as their newly announced partnershipwithHUGHES Telematicsin the automotive industry -- to install general purpose computing devices for cars which run several virtualized embedded OSes simultaneously, instead of having several specialized devices do the same job. The end result for these vertical market applications is simplification of systems development and cost reduction.

What would your dream virtualized consumer or vertical market device be? Talk Back and Let Me Know.

Editorial standards