Have you ever downloaded an application to your smartphone, only to find that it is not compatible with the operating system installed on your phone? Have you ever bought a new cell phone, only to realize that all your carefully backed up applications are incompatible with your new phone? The latest smartphones come installed with a variety of operating systems, all of them incompatible with each other. To top it off, none of these operating systems has a clear advantage. This confusion forces you to make trade-offs, trying to pick one operating system over the others. Your decision will usually depend on the application ecosystem, and its overlap with your requirements. As a result, no such decision will be perfect, because sooner or later you will run across an application which you want but cannot have. Mobile virtualization is a potential solution to such issues. In fact, enterprise research firm Gartner has predicted that by the year 2012, more than 50 per cent of all new smart phones will contain some kind of virtualization technology built into the handset by the manufacturer.
Over the last few years, virtualization has developed from a niche technology to one that is being increasingly used to run servers and data centers more efficiently than ever before. Most servers used for different applications usually run at 20 to 40 per cent of their maximum capacity. This is required since we need to provide a buffer for short periods when there may be extremely high load on the server. The rest of the time, the server stays idle with low utilization. With multiple servers installed in a data centre, you can see that the average utilization will be low while the power consumption and cooling expenses will be much higher. Though virtualization was initially implemented by IBM for increasing the utilization of its mainframe systems, it was only recently that people started using it on normal servers as well. So how exactly does virtualization help? Here’s how...
The core of virtualization technology is a piece of software called a ‘hypervisor’. This hypervisor runs on top of the system hardware in the form of a thin layer or interface between the hardware and the operating system. The advantage of the hypervisor is its ability to support multiple operating systems running in parallel on top of the hypervisor. Each operating system behaves as a separate machine, and has access to the hardware of the base machine through the hypervisor software. Each operating system is known as a virtual machine. Clearly, the advantage of this approach is that multiple virtual machines can be running at the same time on a single piece of hardware. The resources of the base machine are shared among the virtual machines by the hypervisor. The resource allocation can be changed dynamically according to demand to give more resources to virtual machines that are under a higher load. Virtual machines can even be moved from high utilization machines to those with lower utilization without having to shutdown the machine. Virtualization also simplifies backup and disaster recovery processes since the virtual machine can be copied to a backup location and recovered in the same way from the backup. As a result of implementing virtualization, the average utilization of the base server hardware is much higher. This in turn results in cost savings in terms of hardware, power and cooling expenses. Virtualization has been used for testing multiple operating systems as well as running web servers which have low average utilization among other uses.
Mobile virtualization is the latest form of virtualization to emerge in the IT industry. Mobile virtualization is similar to server virtualization, except that here we are running multiple mobile operating systems on top of a small software hypervisor. Due to the limitations of these mobile platforms, available memory is much lesser, requiring slim hypervisors which will not use large amounts of memory. The basic concept remains the same with some slight changes. For example, the virtual machine may be a smartphone operating system for complex tasks and applications running in parallel with a real-time operating system (RTOS) which takes care of the regular phone functions. There are different types of virtualization being implemented and tested by different vendors.
The most basic form of virtualization is actually application virtualization which is almost the same concept as the Java runtime environment. Here, the hypervisor software runs on top of a normal operating system and supports different applications running on top of the hypervisor. The advantage of this approach is that the developer does not need to develop separate applications for each platform or operating system since the hypervisor takes care of all interactions with the base operating system and hardware. Another advantage is that this can run on basic feature phones and provide advanced applications to users which are normally provided by smartphones.
Cloud-based virtualization is also gaining ground these days. With the advent of cloud computing and more and more enterprises moving data and applications to the cloud, mobile virtualization can also take advantage of this technology. Cloud-based virtualization involves a virtual client interface running on the mobile phone where all inputs are given while all the actual processing and storage actually occurs in the cloud. Cloud computing minimizes the need for powerful mobile processors since only display capability is required and also reduces power consumption. A major advantage of cloud computing is data security since the actual application and all the data resides on the cloud which can be secured in a much better manner than cell phones storing the same data. However, cloud based virtualization requires a constant online connection which may not be possible at all places.
Virtualization is also used for gaining remote access to machines running other operating systems such as Windows. This may be considered an extension of the cloud based virtualization model since we use the application to display data and information being processed at some other place.
The most useful kind of virtualization is the one most commonly used in servers around the world. Multi-OS virtualization is used to execute multiple operating systems on a hypervisor running on a common piece of hardware. The operating systems can either be running side by side or the machine may need a reboot to switch between the two operating systems depending on the implementation. In the rest of the article, we are going to look in more detail at multi-OS virtualization in mobile environments.
Mobile virtualization is useful for everyone, starting from handset manufacturers to application developers and end users.
A major application of virtualization is in terms of security. Users can have one secure virtual machine for business applications and a second one for personal use with ringtones, song, games etc. The advantage of this setup is that the secure virtual machine is protected from any issues occurring due to the personal virtual machine. Any malware or crash will only affect the personal virtual machine leaving the secure one intact.
With the help of mobile virtualization, users can also have multiple profiles on their phones, one for business use and one for personal use. This is particularly helpful for users who usually carry multiple phones with them to office etc. Depending on the particular implementation, the user may be able to use both profiles together or login into one profile at a time. This will also allow the user to bring a device of his choice to work since he can then use a secure corporate connection for business related activities.
This will also be helpful to corporate IT departments in their standardization processes since they can load the same secure operating system image on all phones without any hardware differences. Also, in case of any issues with the virtual machine, IT can simply wipe the secure virtual machine and copy a new one in its place without affecting any personal data stored on the device in other virtual machines.
Since its now possible to do more and more activities using smartphones, an increasing number of people are keeping their personal data on their phones. In case of mobile virtualization, all personal data is present in the virtual machine. So, any user upgrading to a new smartphone can simply copy his virtual machine to the new device, thus avoiding any issues with regards to applications or data.
The manufacturer can offer phones with a choice of operating systems since the operating system is just a virtual machine which can be installed at the point of sale. This increased choice to the user may indirectly increase competition between operating systems while giving more options to the user.
Mobile virtualization also results in cost savings for manufacturers in terms of the hardware used in the device. Instead of separate microprocessor chips for each function, virtualization and the software hypervisor enable a single core chip to perform all the different functions which are split into separate virtual machines.
Mobile virtualization also translates into a shorter time to market for operating system developers. This is because for traditional smartphones, every new phone has a different chipset and so the operating system for each new model must be tweaked for the specific hardware in the device. With mobile virtualization, the same operating system can be used on multiple devices since the hypervisor takes care of any differences in the hardware for each new model.
Application development becomes a much simpler process for developers in case mobile virtualization is being used. This is because they will only need to develop their application for one platform. Using mobile virtualization, the application can automatically be used on other smartphone platforms as well. e.g. an application written for the Android operating system can be run on a Windows Mobile smartphone using mobile virtualization which will run the Android operating system in parallel with the windows mobile operating system. The same argument holds true for users as well since they can use an application developed for a different platform on their smartphones using mobile virtualization and a corresponding virtual machine.
While we have just seen many advantages of mobile virtualization above, some challenges lie ahead for this technology as well. Under mobile virtualization, each virtual machine has its own scheduling processes and tasks running in the background. Unlike a single operating system, multiple virtual machines will not share data regarding scheduling requirements for different tasks and processes, etc. This can result in degradation of performance across all virtual machines running on that device.
Mobile virtualization suffers from some performance and battery life issues. There is a performance penalty since all commands to the mobile hardware must pass through the hypervisor which adds an extra layer of waiting time since multiple virtual machines are attempting to use common hardware. So the designers have to ensure that performance does not drop noticeably when multiple virtual machines are started on the phone hardware. Most smartphones are tweaked for battery life as part of a process that involves significant interaction between the operating system, device drivers and running applications. However, since each virtual machine functions in its own silo, none of them may be able to make decisions regarding energy management.
While time to market for the manufacturer decreases since they do not need to tweak the operating system each time, the hypervisor needs to be able to support the many different hardware combinations which may be used in the smartphone market. Companies like ARM license their chip designs to mobile companies who may make their own design modifications to the processors. In order to support that particular hardware, the chip design and modifications must all be verified by the company supporting the virtualization hypervisor.
The mobile virtualization hypervisor must be provided by the handset manufacturer as a built in feature when shipping the product. As a result, it becomes critical for the virtualization companies to partner with handset manufacturers and ensure that enough partners are on board to support and use their technology.
Now that we understand the technology, we can take a look at the major companies which are working on mobile virtualization.
The largest firm in this group is VMware Inc., owned by storage major EMC. VMware was one of the early pioneers in virtualization and is a global leader in the virtualization space. Though it is not available to manufacturers yet, VMware entered the mobile virtualization market with the VMware Mobile Virtualization Platform (MVP) which they acquired from Trango Virtual Processors in November 2008. The MVP software contains a hypervisor and supports mobile virtualization on ARM processors and multiple smartphone operating systems. VMware demoed a Nokia N800 running Android along with Windows CE at VMworld Europe in February 2009.
Open Kernel Labs is an existing provider of mobile virtualization solutions for multiple smartphone operating systems. It has partnered with heavyweights like Motorola, Citrix, ARM and a number of handset manufacturers for incorporating mobile virtualization into their products. It has already launched a phone based on mobile virtualization called the ‘Motorola Evoke QA4’.
VirtualLogix is another company in the mobile virtualization field. Cisco, Intel, Motorola and Texas Instruments (TI) hold a stake in this company for development of products based on mobile virtualization.
Xen is an open source project in the virtualization field which has also released support for mobile virtualization using ARM’s ARM 9 processor family. Samsung is developing cell phones based on mobile virtualization and the Xen project.
Research In Motion (RIM), the maker of the popular Blackberry software, have also announced that they will release a version of their blackberry operating system which will run on Windows Mobile phones. This is also based on Multi-OS mobile virtualization.
While VMware is a major player in the virtualization space, it does not have a smartphone based on the Mobile Virtualization Platform in the market yet. Both of its major competitors, Open Kernel Labs and VirtualLogix have already released products for mobile virtualization and are backed by large hardware companies who will benefit when mobile virtualization takes off. So these two firms may be targets for an acquisition once the mobile virtualization market develops further. The Xen open source project also has substantial technical expertise behind it. It was responsible for the drop in prices of server hypervisor software since open source software is free of cost. Hence, it too cannot be underestimated.
According to Gartner research, the mobile virtualization segment is expected to grow at a fast pace by the year 2012. However, the current market is growing quite slowly. While some of this can be attributed to the effects of the worldwide economic recession and reduced spending on IT, the fact remains that server virtualization also took some time to become prevalent in datacenters. The positive sign is the entry of established virtualization companies like VMware into this field because this shows that they are also expecting this market to grow in the future. Considering these facts, mobile virtualization companies have sufficient time to work on its negatives. On the other hand, looking at the benefits that users get from mobile virtualization, we can safely say that mobile virtualization is going to be mainstream one day.
There are seven smartphone operating systems that are widely used in the market today:
- Symbian OS: Symbian, owned by Nokia, has the largest share in the worldwide smartphone market although its market share is very small in North America. Although Symbian is used by other handset manufacturers as well, each of them uses its own implementation of Symbian due to which all applications are incompatible across the different versions.
- RIM Blackberry: Research In Motion’s Blackberry is a well-known business phone known for its strong email and productivity applications. RIM is soon going to release a version of Blackberry that will run on Windows Mobile as a virtual machine.
- Windows Mobile: Windows Mobile is Microsoft’s smartphone operating system, currently at version 6.5. Substantial improvements and better touch screen support are expected in the upcoming Version 7.
- iPhone OS: This is a lighter version of Apple’s Mac OS X. The latest version is 3.0.
- Linux: Linux is an open source operating system. Many companies, including Motorola, use it in their smartphones after changing the source code as per their requirements. Linux is available free of cost.
- Palm webOS: Palm has been losing market share over the last few years. The new Palm device, the Palm Pre has gotten good reviews as an iPhone challenger.
- Android: As of Q2 2009, Google’s Android had a 2.2% share of the worldwide smartphone market (Source: Gartner). It is based on Linux and is an open source operating system.