, IBM T.J. Watson Research Center
, Columbia University
Pages: pp. 6-7
A system virtual machine is a software implementation of a real computer that can execute unmodified applications and an operating system. System virtual machines, also called hardware virtual machines or simply virtual machines, run on top of a virtualization software layer called the hypervisor.
For many reasons, virtual machines, hypervisors, and related system virtualization technologies provide an attractive basis for building pervasive computing software systems. For example, virtual machines encapsulate the application's persistent state and runtime environments, making it easy to deploy, version, manage, and migrate. Moreover, the host computer's physical characteristics are hidden from the applications and operating systems, providing benefits such as improved application portability. Finally, hypervisors allow multiple virtual machines to run concurrently on the same host computer while isolating them from each other and interfacing them to the host computer's devices. Therefore, distrusted and trusted applications can run in parallel safely, even when they require very different runtime environments.
Although virtual machines and system virtualization technologies have made and continue to make a significant impact on desktop and data center computing and are the underpinnings of cloud computing, they haven't historically played a significant role in pervasive computing. But this situation is changing. Perhaps the most significant driver is the growing number of increasingly capable pervasive devices—especially mobile phones—that enable more demanding applications. Various corporate efforts, such as those by VirtualLogix, Samsung, and VMware, are also making inroads in applying virtualization to pervasive devices. Products such as Apple's iPhone, Google's Android, and Microsoft's Mobile Software Development Environment are also spurring third-party application development.
Motivated by these trends, this special issue of IEEE Pervasive Computing explores the application of virtual machines and virtualization technology to pervasive computing through two papers and two interviews. We hope you find the authors' ideas stimulating and thought-provoking.
In "A Virtualization Infrastructure that Supports Pervasive Computing," Larry Rudolph discusses how we can use virtual machine features to safely and securely deploy the middleware required for pervasive computing as well as construct and deploy in production pervasive applications that require access to local and remote I/O streams.
In "The Case for VM-Based Cloudlets in Mobile Computing," Mahadev Satyanarayanan and his colleagues discuss one possible use of middleware: seamlessly offloading computation from mobile devices to nearby computers (cloudlets) to run applications that greatly exceed mobile devices' resources. Applications in the cloudlets run within virtual machines that the middleware rapidly customizes before each use with the virtual machine synthesis information uploaded from the mobile device.
Finally, because virtual machine use in pervasive computing is an emerging field, we solicited input from two experts, Leendert van Doorn and Jörg Brakensiek, to gain a better understanding. Van Doorn is a senior fellow at AMD in charge of its overall virtualization strategy, and Brakensiek is a principal member of the research staff at Nokia's Research Center and heads a team researching virtualization.
For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/csdl.