Datasheet
Chapter 1: Overview of Virtualization
3
is the byte code produced by the compilers for the Java programming language ( http://java.sun
.com/
), although this concept was actually pioneered by the UCSD P - System in the late 1970s
(
www.threedee.com/jcm/psystem ), for which the most popular compiler was the UCSD Pascal
compiler. Microsoft has even adopted a similar approach in the Common Language Runtime (CLR)
used by .NET applications, where code written in languages that support the CLR are transformed, at
compile time, into CIL (Common Intermediate Language, formerly known as MSIL, Microsoft
Intermediate Language). Like any byte code, CIL provides a platform - independent instruction set that
can be executed in any environment supporting the .NET Framework.
Application virtualization is a valid use of the term “ virtualization ” because applications compiled into
byte code become logical entities that can be executed on different physical systems with different
characteristics, operating systems, and even processor architectures.
Desktop Virtualization
The term “desktop virtualization” describes the ability to display a graphical desktop from one computer
system on another computer system or smart display device. This term is used to describe software such
as Virtual Network Computing (VNC,
http://en.wikipedia.org/wiki/VNC ), thin clients such as
Microsoft ’ s Remote Desktop (
http://en.wikipedia.org/wiki/Remote_Desktop_Protocol ) and
associated Terminal Server products, Linux terminal servers such as the Linux Terminal Server project
(LTSP,
http://sourceforge.net/projects/ltsp/ ), NoMachine ’ s NX ( http://en.wikipedia.org/
wiki/NX_technology
), and even the X Window System ( http://en.wikipedia.org/wiki/X_
Window_System
) and its XDMCP display manager protocol. Many window managers, particularly those
based on the X Window System, also provide internal support for multiple, virtual desktops that the user
can switch between and use to display the output of specific applications. In the X Window System,
virtual desktops were introduced in versions of Tom LeStrange ’ s TWM window manager (
www.xwinman
.org/vtwm.php
, with a nice family tree at www.vtwm.org/vtwm-family.html ), but are now available in
almost every other window manager. The X Window System also supports desktop virtualization at the
screen or display level, enabling window managers to use a display region that is larger than the physical
size of your monitor.
In my opinion, desktop virtualization is more of a bandwagon use of the term “virtualization” than an
exciting example of virtualization concepts. It does indeed make the graphical console of any supported
system into a logical entity that can be accessed and used on different physical computer systems, but
it does so using standard client/server display software. The remote console, the operating system it
is running, and the applications you execute are actually still running on a single, specific physical
machine — you ’ re just looking at them from somewhere else. Calling remote display software a
virtualization technology seems to me to be equivalent to considering a telescope to be a set of virtual
eyeballs because you can look at something far away using one. Your mileage may vary.
Network Virtualization
The term “ network virtualization ” describes the ability to refer to network resources logically rather than
having to refer to specific physical network devices, configurations, or collections of related machines.
There are many different levels of network virtualization, ranging from single - machine, network-device
virtualization that enables multiple virtual machines to share a single physical-network resource, to
enterprise - level concepts such as virtual private networks and enterprise-core and edge-routing
techniques for creating subnetworks and segmenting existing networks.
c01.indd 3c01.indd 3 12/14/07 3:57:19 PM12/14/07 3:57:19 PM