Because virtualization has become such a cornerstone technology, especially in the server world, it’s bound to evolve in ways that influence computing in any number of other realms. Here are a few future trends that are worth looking out for.
Virtualization mostly works right now as something supported by the OS and the hardware—that is, it's something the operating system and the underlying processor have the native capacity for, but which is only used when an application specifically asks for it.The next step up is for virtualization to be the default—for all OSes to run under a hypervisor as standard behavior, or to have the OS itself use a similar partitioning scheme to keep different user contexts separate. The hardware and OSes in question would talk to each other through an industry-standard set of interfaces, so it wouldn’t matter what hardware or OS was being used.
Another aspect of this will be tighter integration of I/O-intensive
resources such as network or disk hardware. Those advances require
close cooperation with hardware makers, but it’s ultimately in their
best future interest to create hardware that virtualizes well, that is
performs well under virtualization, and can offer a virtualization
environments features that wouldn't be possible in an unvirtualized
environment -- for instance, automatically creating a differenced
version of the same physical disk between two or more virtualized OSes.
This in turn means virtualization solutions of different scales will
be everywhere. Not just in the server, but on the desktop—especially
now that the desktop routinely has enough storage, memory and CPU power
to support virtualization solutions. It’s not clear how much further
native support the desktop OS of the future will provide for
virtualization or in what form (Windows 7’s XP mode comes to mind as a
first step), but once the capacity is there, it’s bound to be used.
Virtualization on mobile devices shouldn't be dismissed either,
especially with the appearance of products like VMware MVP, which
allows multiple mobile OSes on a single device via virtual machines.
Finally, it’ll be come more crucial for software makers to think about virtualization as a common element of the computing environment, much as they have been previously pressured to think about and plan for using multiple cores. An app that’s aware it’s running in a virtual container can intelligently activate or deactivate functions that complement such an environment—for instance, to talk to standard virtualization interfaces when applicable.