System Virtualization
System virtualization is a method for executing applications in which the applications are installed in and executed by a software representation of a real computer called a system virtual machine. System VMs, in turn, run on top of a software layer called the hypervisor. System virtualization is the underpinning for a number of IT transformations, such as server consolidation, shorter application deployment times, and virtual desktops, and is a key driver for cloud computing.
Benefits
System virtualization provides multiple benefits. For example, VMs encapsulate the application’s persistent state and runtime environments, making it easy to deploy, version, manage, and migrate the application and improve application availability. Moreover, the host computer’s physical characteristics are hidden from the applications and operating systems, improving application portability. Finally, hypervisors let multiple VMs 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.
This Month’s Theme
For the October 2009 theme of Computing Now, I selected five articles from IEEE Computer Society magazines that leverage and explore these benefits. The first three articles discuss the application of system virtualization, and the other two explore some of the issues that arise from its use.
In “Virtual Infrastructure Management in Private and Hybrid Clouds,” (login required for full text) the authors describe two tools that greatly simplify deploying applications encapsulated in VMs onto computing resources provided by private and public clouds and scheduling these clouds’ capacity. The second article, “System Virtualization Tools for Software Development,” (login required for full text) presents a tool that helps developers to quickly launch and test applications in production-level environments and could be deployed using the virtualized computing infrastructure described in the first article. “A Virtualization Infrastructure that Supports Pervasive Computing” (login required for full text) discusses how developers and system operators can use encapsulation, isolation, and interposition to safely and securely deploy the middleware required for pervasive computing. They can also use these techniques to construct and deploy pervasive applications that require access to local and remote I/O streams.
“The Paradox of Security in Virtual Environments” (login required for full text) explores the benefits of virtualization and its security implications. “Leendert van Doorn and Jörg Brakensiek on Virtual Machines” (login required for full text) explores some of the realities in using virtual machines as a platform for pervasive applications.
Related Resources
Numerous other articles touch on the issues relevant to system virtualization. (Some links may require login.)
- The Case for VM-based Cloudlets in Mobile Computing
IEEE Pervasive Computing, Oct.–Dec. 2009, pp. 14–23 - I/O for Virtual Machine Monitors: Security and Performance Issues
IEEE Security & Privacy, Sept/Oct 2008, pp. 16–23 - Virtual Machine Introspection: Observation or Interference?
IEEE Security & Privacy, Sept/Oct 2008, pp. 32–37 - Intel Virtualization Technology
Computer, May 2005, pp. 48–56 - Pervasive Personal Computing in an Internet Suspend/Resume System
IEEE Internet Computing, Mar/Apr 2007, pp. 16–25 - Virtual Machine Monitors: Current Technology and Future Trends
Computer, May 2005, pp. 39–47
Guest Editor
Keith Farkas is a staff engineer at VMware and a member of IEEE Pervasive Computing’s editorial board. Contact him at kfarkas at vmware dot com.