### 12 Virtual Computing

#### 12.1 Virtual Network Computing (VNC)

Virtual Network Computing (VNC) allows the remote display of a computer “desktop” not only on the machine where it is running, but also from anywhere on the internet and on a wide variety of operating systems and hardware architectures.

##### 12.1.1 Pseudo colour displays

As I mentioned in section 11.7 you can use VNC as another way around the problems with Pseudocolor applications on Truecolor displays. Effectively you use VNC to display a self-contained 8-bit Pseudocolor X display on your desktop, programs which require such a display will then run happily in that window, and colour hungry applications which can run in True color can run outside it.

With VNC installed on your system, and the binaries in your PATH, to start a Pseudocolor window on any X display you must first start a VNC server using:

% vncserver -cc 3 -depth 8

New ’X’ desktop is mypc:1

Starting applications specified in /home/aa/.vnc/xstartup
Log file is /home/aa/.vnc/X.log

The first time you do this, you will be asked for a password for protecting your VNC sessions. This can be the same or different from the password you use for logging in on that computer. Choose it in the same way as you would a normal Unix password.

You must then start a VNC viewer using the display numebr reported by the preceeding command:

% vncviewer :1
vncviewer: VNC server supports protocol version 3.3 (viewer 3.3)

At this point type in the password you gave when you first ran vncserver. A window will now pop up on your screen, this is a new X Windows desktop. Run Starlink programs from xterms in that window, and they will pop up as sub-windows in that window and run without problem. Outside that window, the X display will carry on working as normal.

When you have finished with the pseudocolour desktop, close down the windows as in a normal X session and terminate the server, using the display number again:

% vncserver -kill :1

Figure 46 illustrates several aspects of the VNC system. Here we show a Pseudocolor VNC X Windows desktop (1024$×$768 pixels) running the twm window manager on a DEC Alpha using KAPPA to display a CCD image. The VNC desktop is being displayed ontop of a True colour X Windows desktop (1280$×$1024 pixels) running the WindowMaker window manager on a Linux PC.

You can customise the size of the pop up desktop by using the command line option -geometry, e.g.

% vncserver -cc 3 -depth 8 -geometry 1024x768
New ’X’ desktop is mypc:1

Starting applications specified in /home/aa/.vnc/xstartup
Log file is /home/aa/.vnc/X.log

While the applications automatically started along with the vncserver can be customised from the $\sim$/.vnc/xstartup script (created the first time vncserver is run) in your home directory. By default this script starts one xterm and the twm window manager. By editing $\sim$/.vnc/xstartup this behaviour can be modified; by copying or symbolically linking your .xsession or .xinitrc to it the VNC window can be given the same behaviour as your normal X session.

Additionally, it is not necessary to kill the VNC server at the end of a session, or indeed ever; the only important thing is not to leave an ever increasing number of unused servers running on the system. If it’s more convenient, you can simply close the VNC viewer window at the end of a session, and next time you wish to use it start vncviewer again, without having to rerun vncserver, and your desktop will be exactly as you left it.

##### 12.1.2 Computing by remote control

VNC also comes in other flavours, with versions for many different operating systems. If you think hard enough you can come up with lots of different possible uses, but one that has proved useful for teaching is the remote control of single user machines.

If you run a VNC server on a MS Windows PC and display the screen on your UNIX workstation (or even another Windows machine) you can control the machine remotely using the vncviewer, if you move the mouse inside your VNC window the mouse cursor on the actual machine will move with it. If you start a VNC server on every machine in a teaching lab then you can flick between them monitoring student progress, useful for remote diagnostic purposes.

Figure 47 illustrates this setup, showing a MS Windows 98 desktop (1024$×$768 pixels) being displayed ontop of a Truecolor X Windows desktop (1280$×$1024 pixels) running the WindowMaker window manager on a Linux PC.

#### 12.2 VMWare

What is VMWare? This is actually a fairly complicated thing to explain, although it is obvious whats going on when you see the application running. VMware is software that runs multiple virtual computers on a single PC – at the same time – without partitioning or rebooting. On top of these virtual machines you can then run the OS of your choice. In other words you boot your machine into, say, Linux which VMware refers to as the “host” operating system. You then run the VMWare virtual machine, which can run a variety of other operating systems, e.g. MS Windows, as a so called “guest” OS. This proceedure is illustrated in Figure 48, while an example of the application in action is shown in Figures 49 and 50.

This is not an emulator, you are not emulating the CPU or the hardware inside the virtual machine, you are just allowing another operating system to use it in parallel with the one you already have running. Each virtual machine can have its own IP number (if your machine is on a network) and you can treat it exactly as it it was another physical computer. Of course you don’t really have two computers so your guest operating system ends up sharing resources with your host operating system. Basically, the more RAM you have when using VMWare the better, although I’ve quite comfortably used it on machines with as little as 64Mb and gotten away with it.

This is not a boot manager; boot managers and VMware are complementary. Boot managers help you select one of several available operating systems and boot it on the computer. Only one operating system is ever running at one time, and moving to another requires rebooting the system. Adding an operating system also typically requires repartitioning a disk. By contrast, VMware allows multiple operating systems to run simultaneously on the same computer. VMware can work with existing disk partitions on an IDE drive or can support new operating systems in VMware logical disks without the need to repartition a disk.

VMWare supports two host operating systems, Linux and Windows NT, and a variety of guest opertaing systems including DOS, Windows, Linux and BSD dervided operating systems. Support for OS/2 and BeOS as guest operating systems is likely to be introduced eventually.

Although it is fairly cheap for academic purchase at US\$99.00 per user licence, VMWare is not free. More information about VMWare can be found online at http://www.vmware.com.

#### 12.3 plex86 (previously FreeMWare)

There is an open source competitor to VMWare, called plex86 (previously called FreeMWare). Since the last edition of this cookbook coding has advanced rapidly and is now actually able to run DOS 6.22 as a guest operating system. However the virtual machine only makes it part way through booting Linux, so for most purposes the application is yet to reach the “usable” stage. More information can be found at http://www.plex86.org/.

#### 12.4 The VMWare and plex86 Patent Position

The GIF legal problems are not the only ones in the software world. Very recently a new player in the virtualisation game has appeared called VOS, unknown until recently they have apparently filled broad ranging patent applications across the discipline. If legitimate this casts a shadow across the continued development of both VMWare and plex86. On the other hand the VOS web site looks somewhat suspicious and the current opinion in the community is that it might be a hoax, and since they are currently taking credit card orders, a malicious hoax at that. Even if this is not the case, there is a great deal of prior art in the field and it seems unlikely that these patent applications will be upheld in court. However, for anyone that is a heavy user of one of the main virtualisation products, VMWare or Bochs for instance, this is something worth following fairly closely.