Last Updated: April 9th, 2013

A few days ago, I posted about a student project at a Russian University that aims to run two or more instances of Android at the same time on a single device. It's a technology called virtualization, and we already use it on web servers and developer machines everywhere.

At first glance, the idea sounds interesting, but seems to lack practical uses for the majority of people. Sure, some developers will save a few hours on testing, and industrious users might want to run the latest CyanogenMod nightly ROM alongside their daily driver, but this kind of stuff doesn't really appeal to your neighbors or parents. The fact is, this technology has been mostly a tool of a few high-tech fields and power users.

Thanks to the smartphone revolution, though, many nascent and fringe technologies have turned into mainstream necessities. There was a time when speech recognition, natural language interpreters, gesture detection, short range radio (e.g. Bluetooth and NFC), and countless other innovations were thought to have little value for regular people. The full range of possibilities are only starting to emerge, and many great ideas are already out there.

What Is Virtualization?

Virtualization is basically about creating an abstraction between an operating system and the hardware it's running on. This is done using a thing called the hypervisor, which creates and manages containers for the OS to live in and provides access to hardware as needed. The purpose is to have two or more operating systems running at once, and to effectively control resources like the processor, memory, and storage.

Image Source: Intel

Besides Tech-y Stuff, What Can We Do With This?

Samsung, Blackberry, and a few others have been touting their efforts in the BYOD (Bring Your Own Device) movement, promising that everybody can have profiles for work and home while keeping them separate. Here's the catch: none of them are close to getting it right, and most are pretty terrible for the employee and not very secure for the business. This is where completely separating environments would be great; corporations can create and install a tested and locked down version of Android in one instance while employees are free to customize their own instance without interference or risk. In this arrangement, even rooting one side will not violate the other, and privacy is maintained for both the employee and the business. By creating tightly contained environments, most of the attack vectors for malicious software won't even exist to be exploited.

Virtualization also offers a gateway for running different operating systems without many of the challenges associated with porting. We probably aren't going to see copies of Windows Phone or iOS right away, but they will come in time. You won't even have to miss out on platform exclusives like Infinity Blade or Tentacles (formerly limited to Windows Phone). I won't pretend there aren't any legal implications or licensing restrictions, but companies like Microsoft will probably consider making their platforms installable if it might raise distribution numbers. This would also give a fighting chance to new entrants like Ubuntu and BlackBerry 10, which relatively few people are willing to take a risk on.

However, the greatest benefits of running other operating systems won't come from competing phone platforms, it will be in the form of full blown desktop software. Wait... What? Ok, I'm not exactly talking about firing up Windows 8 and Photoshop on your HTC One to tweak a few pictures on that little screen. Instead, try to imagine walking up to a monitor, plugging in your phone, and instantly creating a complete desktop-like experience. Yeah, a truly portable workstation with all of your software, data, and customizations living in a single pocket-sized device. In case you haven't been paying attention, this stuff is Nirvana to power users, but everybody will want it. We aren't just talking about virtualizing Android, this is about breaking the ties between mobile devices and the software they are running.

This is far from being a new concept. Canonical hyped it with Ubuntu for Android, and ASUS has been playing at the idea for the last couple of years with its Padfone, Transformer tablets, and the AiO. Many people even expect Google to make Chrome OS a background feature of Android, building on the idea of Motorola's Webtop.

(pictured: Motorola Lapdock 500 Pro)

What Stands In The Way Of This Awesomeness?

It might come as a surprise that hardware is not much of an issue here. As the video from Parallels demonstrates, a two-year-old Galaxy S II is capable of running two copies of Android with hardly a stutter. Current devices are driving 1080p screens at 50-60 frames per second without breaking a sweat, thanks to significantly faster multicore CPUs and larger pools of memory.

Unfortunately, there are some software roadblocks between us and virtual goodness. First, it just needs to be said, mobile operating systems are still very young and haven't really been optimized for this environment. Even Android, which is built on Linux and has some support for virtualization baked in, has some of its own quirks. Many platforms were not built with this use case in mind, and some will require custom modifications to run well.

Before I get to the biggest problem, I should give one more bit of technical background. The aforementioned hypervisor comes in two flavors, native and hosted. Native virtualization is a lot like a custom recovery, it requires flashing hardware-specific software, but can be very efficient and flexible. On the other hand, the hosted approach works by loading a hypervisor within an already booted operating system. While the latter is easier to achieve, it is less efficient, less secure, and suffers some of the limitations of the host OS. Ideally, we really want the former, but that's where the problems start. Just to get things up and running for native operation, we must have drivers built into the hypervisor and an unlocked bootloader on the device. Obviously, these needs conflict quite a bit with the current environment and the interests of cellular providers and OEMs.

Fortunately, there is a natural solution to these problems. Rather than attempting to sell a confusing product line to end users with the potential to brick countless devices, virtualization companies can license their software directly to OEMs to be bundled as stock software. This fix might have a few side-effects, especially giving companies like HTC and Samsung an opportunity to lock in stock firmware. However, I won't mind that if it could make 3rd-party ROMs an officially supported feature. Who cares if you have to keep a Sense UI or TouchWiz ROM installed if you don't have to terminate your warranty to put CyanogenMod on there, too? Should anything go wrong, you will always have stock software to fall back on. Best of both worlds? I think so.

When Can I Have This On My Phone?

Again, you might be surprised to find out that we could be hearing a lot more about virtual machines and Android very soon. So far, we've only seen an early stage of what Parallels might have to offer, but it is not the only developer working on virtualization. VMWare, another strong company in the field, is also building its own solution. In fact, the developers have had an Android-based virtual machine working for more than a year, as mentioned in this video series from Feb 2012. (Jump to 11:10 if the video doesn't queue up properly in your browser.)

Hardware makers are also gearing up to add features where they see fit. Starting with the Cortex-A15, ARM is adding Virtualization Extensions to the architecture, which will offer a performance increase comparable to that of hardware accelerated graphics. In case you're wondering, the Cortex-A15 cores are already shipping and can be found in the Exynos 5 (Nexus 10 and the international Galaxy S4), Tegra 4 (but not the 4i), and OMAP 5 processors. Of course, we can't forget that Intel is just returning to the market. There isn't a lot to talk about yet, but the processor giant will be including VT-x in the upcoming Atom Z2580, which is rumored to be headed for some ZTE phones in the next few months. Even though the ARM architecture has a massive lead in the mobile world, the processors are quickly evolving to become more like desktop and server components, in which Intel has decades of R&D. This may be the battleground in which we finally see the x86 architecture taking a stand.

Conclusion (a.k.a. Take My Money)

If you, dear reader, can't tell that I'm excited by the promise of running two copies of Android at once, you obviously haven't been paying attention. This stuff is cool, I mean, really, really freakin' awesome! With all of the investment going into virtualization by the major chip manufacturers, there must be others that think it will be the way forward. We're not just looking at a neat new feature for a few people; this is an enabling technology, something that will ultimately change how we use the little computer you currently talk and text on.

The bits and pieces we can see now are just the calm before the storm. As virtual machines are improved and refined on our smartphones, our entire perspective on technology may change as we finally and truly become mobile.

Cody Toombs
Cody is a Software Engineer and Writer with a mildly overwhelming obsession with smartphones and the mobile world. If he’s been pulled away from the computer for any length of time, you might find him talking about cocktails and movies, sometimes resulting in the consumption of both.

  • http://twitter.com/punitvthakkar Punit Thakkar

    OMG imagine a phone running iOS and Android and reviewed by BGR!!

    • http://twitter.com/Bluewall Bluewall

      You Sir just did my day. I laughed so much my monday is now a good one, thank.

  • Chris Webster

    I think I dropped my jaw somewhere around here, can anyone help me find it?

  • dcgavril

    Even if I do believe it is interesting that a small
    device is capable of doing this and I have worked on developing a platform for
    application virtualization and streaming on multiple OSs, I think you know what
    is the major issue with smartphones these days… battery life… and this is not
    going to help at allL.
    Oh, and another thing, Android is still not working as fluid as it should be,
    even on S3 … so they better find a solution to optimize the load and the
    sandboxing, because you can have a million of instances of android on your
    phone, but if none of them are fluid enough, what’s the point?

  • denbo68

    Let's take some baby steps then and have dual-boot

  • http://www.androidpolice.com/ David Ruddock

    Virtualization is indeed very cool. I do think companies like Parallels / VMWare have a very strong chance of licensing an enterprise product for BYOD / testing purposes on Android devices. The niche is clearly there, and so is the need for a solution.

    I have a much harder time believing this will be as big for regular consumers. The "dumb terminal" future in which we carry our computing power with us has been sold as a concept for decades now. Maybe smartphones are finally the form factor that can make that future a reality, but I really kind of doubt that for a few key reasons.

    1. Tablets. The tablet is slowly killing the laptop, and I see more and more people toting around iPads with mini-keyboards every year for doing work on the go. Tablets are highly portable, have great displays, and the flexibility a touchscreen offers. The laptop-as-smartphone-dock paradigm seems outmoded by comparison - people are already finding a solution that is significantly more elegant.

    2. Consolidation != simplification. It's very neat to think about a world in which we just snap in / hook up our smartphone to a laptop or monitor or television and everything "just works." But I think it's very important to realize that these devices are attached to our hips - we check them religiously. What if I need to make a call on my phone while I'm hooked in? Making it on a laptop might be awkward in a public place. I want to walk around with my phone. You have to unsnap it, break your workflow, and then start again - you can't multitask. Now, if it were a totally wireless system, then this wouldn't be an issue so much, but that's a whole other technological hurdle. And what about battery life? I don't have to worry about a tablet battery draining when I use my phone as things exist now.

    3. Business. Companies like selling you a line of products. A world in which a single device powers all of your computing doesn't make for a very diverse product ecosystem. It's the nature of the tech business to constantly fight a war with consumers over the maximum amount of product specialization the market is willing to bear over the level of integration that is required to remain competitive / relevant. That, and it's bad business to put all of your eggs into a single product 'basket.'

    If there is a future where we all carry around super-powerful computers that are the hubs powering every aspect of our digital life, I think it's still a very long way off.

    • Fatty Bunter

      How about when all the displays that your phone could connect to are wireless?

    • Justin Swanson

      Good points.

      One that hasn't been mentioned: Multitasking. I don't mean switching between one app to another. I mean TRUE multitasking. I need 2 Word documents open, 1 Spreadsheet, 2 Powerpoints, Outlook and 2 different browsers full of different tabs. Oh and I need to switch between them on a whim.

      In order for any solution that requires you to dock your phone, it would have to be capable of this. I think tablets are a great medium and I love my N7. But trying to do anything similar to what I do at work on it would be catastrophic.

      However if I had a VM of Android (normal use) and a VM of Linux (or Windows) that I could do all of my work while my tablet (not phone for the reasons listed above by David) then I would be interested. It would be nice if the dock could automatically switch me to my Work VM and resume whatever session I had been working on. Obviously I would need to able to switch manually as well, but it needs to be streamlined because normal users can be illiterate when it comes to this stuff and some will even refuse to learn.

      I once suggested a similar idea where you would be issued a tablet and it would be docked at your desk and sync up with your monitors. When you have a meeting, you pick up your tablet and take it to your meeting (where there are docks on the table) so you can take notes/send emails/collaborate/whatever is required in the meeting. You could have displays in the meeting room that you send your screen to.

      I don't think we're too far away from this. I think it's even more feasible with VM on tablets. You could easily set up multiple OSes for different purposes. Work, Home, School, etc. (provided each OS has support for the hardware architecture)

    • http://codytoombs.wordpress.com/ Cody Toombs

      I was careful to avoid calling out dumb terminals specifically, although it remained something at the top of my mind while writing that part. I agree that the classic paradigm is outdated and fundamentally flawed for exactly the reasons you gave. People have to disconnect and reconnect frequently, which seems contradictory to having the basic component be something like a phone. However, I also see wireless communication or possibly the offloading of VMs as a viable solution here, too...but that would be a little over-technical for this piece.

      At the same time, when I get the opportunity, I plug my laptops into bigger displays and turn on bluetooth for keyboards and touchpads. In effect, I'm already re-creating the end result of the dumb terminal for my laptop, but I would be better served by carrying around something pocket-sized or smaller. We always have to carry around a smartphone, at the least, and usually laptops or some messy collection of accessories to power a tablet. In most of those cases, we don't care about the precise hardware (beyond personal preference) as much as we care about the software configuration and data.

      Ultimately, the best solution will be a merger of cloud systems and extremely flexible platforms which live on/with us. In a perfect world (short of brain implants), we would be able to walk up to any computer which instantly recognizes and loads all of our data and preferences from the cloud. The next step down from that is that we connect something we carry that contains those things or links/authentication to get those things. Don't get me wrong, I doubt we're even close to any of that in reality, but I think virtualization on mobile devices is one of the puzzle pieces necessary to make that happen...eventually.

  • Craig M

    Why would I care if something appeals to my neighbors or parents? I want to experience the latest tech as it appeals to MY wants and needs. If we judged all of the bleeding-edge tech on whether it would be useful to the non tech savvy, we would never move forward.

    • http://www.facebook.com/profile.php?id=667020551 Jose Torres

      "Why would I care if something appeals to my neighbors or parents?"

      Because if it doesn't sell like crazy then most companies want nothing to do with it, making money is still a HUGE part of why to make most products in the first place. Remember that Android exists partially because of it's ease of access and appeal to the masses.

      • http://codytoombs.wordpress.com/ Cody Toombs

        All true, but what about Glass? I don't think Google is delusional enough to think it will be profitable or highly successful in its first generation.

        Some products exist for the purpose of creating a market, experimenting in a market, or even using the early adopters as beta testers. A few products get really lucky and sell amazingly well (like the iPad, which Apple's execs only expected to sell a million or two), and other products languish for several iterations before catching on (almost everything made by Microsoft).

        • http://www.facebook.com/profile.php?id=667020551 Jose Torres

          It's essentially a different approach to the same thing. Google can afford to release an idea and let it sit for some time as the market develops before they make the big bucks, but I have the feeling that they will earn their profits by LICENSING the idea (even MORE reason to wait and develop the market). It may not sell like crazy at first, but it still has to sell like crazy eventually.

          Remember the promo video showing the things that you can do with Glass that -guess what- are things your neighbor and parents do?

  • Christopher Robert

    Isn't SAMSUNG's enterprise solution KNOX a version of this already?

    • blahmoomoo

      Looks like KNOX is just a security system that ties in to various aspects of Android, not virtualization. KNOX Container sounds more like a sandboxed environment, rather than a virtualized system.

      Virtualization could make it easier to make something like KNOX Container, but that isn't it's only use. But I guess what you mean is that KNOX is already a solution to the BYOD problem, assuming it works as advertised.

  • JLM

    I got so excited from reading this article. I can now see myself having one device for work and personal. Work PC/phone/tablet, personal PC/phone/tablet all in one main device with a PC dock or tablet dock as accessories. In addition to the pieces you already mentioned I see what Microsoft is doing with full Windows 8 running on the Surface Pro as another piece of the puzzle. You would basically only need two instances a work or personal for all of your functionality.

  • GraveUypo

    "There was a time when speech recognition, natural language interpreters, gesture detection, short range radio (e.g. Bluetooth and NFC), and countless other innovations were thought to have little value for regular people"

    when was that?

  • Steve Green

    If you root/pwn the host OS, the virtual machine itself, then nothing can protect guests against you. You can directly modify their RAM, so they cannot be safe from you.That means to do this securely you are back to locked boot loaders and only allowing users to modify the virtual machines. This is no better than a locked down OS then.

    If you exclude the corporate angle this could be a lot of fun for devs and rommers.

    • http://codytoombs.wordpress.com/ Cody Toombs

      Virtually all of that has to do with implementation details. If you're talking about hosted virtualization, all of that is obviously true (which is part of the reason I discourage it).

      If going the native route, a reasonably secured and lightweight hypervisor is really just serving to manage hardware resources (including RAM) and enforce separation between VMs. Assuming employees are allowed to install their own ROMs, the negative side of locked bootloaders is virtually non-existent/irrelevant (they only serve to prevent carrier unlocking or changing stock software). For that reason, far less people would care about unlocking the bootloader except to switch their hypervisor, which modders and rommers will want to do, but few others. It's not hard to believe that some OEMs will try to keep things the same as they are today with the added ability for corporations to install ROMs, but that doesn't make anything worse, it still puts better tools in the hands of people. No matter how you look at it, this is still far more secure and much cleaner than anything Samsung has with KNOX.

      • Steve Green

        Native Vs Hosted in todays tech is nearly no difference. There is always a Dom0, it must be there to offer management. That means if I own Dom0, or the equivalent I own all guests. All hosting techs in use today have some form of Dom0. There has to be an OS that is used to manage the virtual host. ESXi has it, Xenserver, etc. KVM and HyperV of course have a host OS as well. Heck, anyone who advises against hosted virtualization today is likely selling a competing product or operating on out of date information. There simply isn't that much difference anymore.

        If you think this makes locked bootloaders irrelevant, you should reconsider.

  • Rosh

    Although the idea of having a device with all your data on It is amazing, but I think you're forgetting about cloud computing.
    You really don't need to carry your data and your software with you. Instead, you would connect to the cloud and use it for whatever you need. Which is where probably Google is headed with chrome OS. I think... :D

    • JLM

      There is still the need to runs apps natively for when you don't have a good enough network connection. I can see it all going online at some point though when it becomes rare to not have a network connection. As of now it happens to me everyday when I take the subway.

      • Justin Swanson

        Your subways need upgrading man! In Seoul, they have repeaters everywhere in the subway... it does get congested during peak times though...

    • http://codytoombs.wordpress.com/ Cody Toombs

      I really did keep cloud computing in mind through the whole thing. It's not that we can't do a lot of stuff through the internet, but it really isn't good enough for everything. It might sound unnecessarily snarky, but if the cloud were good enough, why are people still building so many things to be native apps on different operating systems. Servers can go down, data syncing is still not iron clad (even drop box occasionally corrupts a few files), and we just can't get the performance sometimes.

      Even if we are pushing our data to the cloud, our smartphones will stay with us (until we start embedding chips in our brains). As long as we have them, there is no reason they shouldn't be extended to do these things that the web isn't good at yet.

  • eszol

    a lot of device now got dev support for dual boot kernel

    virtualising more than just two different android would be more "innovative"

  • Elias

    We would need more hardware. Just browsing the web I'm already maxing out the 2gb of RAM on my N4. For a cell phone I'd currently need 4gb of RAM to even think of virtualization, probably 8gb in a not-so-distant future. But I guess the inevitable octa-core A15 would be put to great use under a VM environment. Just remember to also get me a uranium battery.

  • mattj78

    Here is something I read a while ago on why virtualization could be huge on android - Faster Updates!!

    It's by Jason Perlow on zdnet. The whole thing is here http://www.zdnet.com/blog/perlow/android-virtualization-its-time/15588 - but here are the important pieces:

    "The downside of having such a successful Open Source platform like Android is that we've got multiple manufacturers building devices based on a development source tree coming from Google, and those manufacturers are on completely different schedules and their level of effort varies from company to company when it comes to testing and developing Android for their own hardware. This includes releasing updates to Android for their handsets.

    Packaging up a release of Android for a single handset or even a family of similar handsets is no trivial matter, as it requires building the platform from source, integrating device drivers and also performing carrier-specific customizations. Every single manufacturer of Android devices has to undergo this process, every single time an update to Android comes out.

    They may have some automation for building and testing in place, but this is still a huge pain in the butt to do. And this process of regression testing and quality assurance takes time.

    There is an answer and I've discussed this before: Device Virtualization.

    With built-in virtualization in Android, the very same benefits that companies like IBM, Dell and HP derive from hypervisors in the datacenter could also be enjoyed by HTC, Motorola, LG and Samsung.

    Regardless of which hypervisor gets chosen, the result is the same: Google builds ONE master Android image that is guaranteed to run on the hypervisor, which in turn runs on a multitude of handsets.

    So from the perspective of the handset manufacturer and the carrier, the customizations are done to the master image -- no need to build from source every time, no device driver debugging, et cetera.

    So instead of customizing an OS to run on specific vendor hardware, it becomes generic, and "templates" of that generic image can be built which can then be further customized as needed. That's where the carrier and manufacturers come in with their value add, and where the speed of getting OS updates out to the end-user is realized."

    • http://codytoombs.wordpress.com/ Cody Toombs

      I completely agree with that point, it's another one of the more immediate advantages of virtualization. There are a few technical issues that aren't really discussed there, particularly that each ROM still requires customizations for the particular form factor. Developers would still have to inject configuration settings for differences in screens (size, pixel density, etc) and certain other hardware details (physical keyboard, hardware or software navigation buttons, etc), and then there would be special features like Samsung's S-Pen to contend with. Most of that stuff would only take a few minutes to apply. There are some deeper technical issues, but most of them could be handled by the hypervisor if it is designed to cover them.

      Normally, I would say that the one drawback to this is an occasional unstable or incompatible update, but that's already a problem in the current landscape, just look at the LG Intuition.