Spring 2010








C Programming



VMWare Resources

VMware is a virtual computer that emulates the hardware of a machine so that you can run an entirely different operating on top of one that is already running. This is ideal for operating system development because if something goes wrong with the system that is running on the virtual machine, the entire computer does not crash. A pair of VMware ESX servers is installed, and VM guests will be allocated on these servers.

To use VMware on the ESX servers, you first need an MRL account . If this is the first time you setup this account, or if you reset your password, you must then change your password in the MRL lab at least once.

Each student will have his/her own VM guest. To be allocated a VM, send a request by email to the TA's. A VM will be instantiated for you from the course template. The VMs will have a user w4118 for you to login. When your VM is ready for use you will get a confirmation email. The password is common for everyone when assigned and it will be broadcasted to you all.

By default, each VM runs a special utility called VMware Tools, that provides useful functionality between the host and the guest VM. This utility depends on the specific kernel that runs in the VM. Therefore, when you install a new kernel for the first time (or when you make substantial changes to an existing kernel, such as changes to include files), it is necessary to adjust the VMware Tools accordingly. To do this, boot the new kernel, and then run
(hit Enter at all prompts)

  • Connecting to the VM via Virtual Infrastructure web interface: You can access and control your VM via VMware's web interface through here.Windows users can use IE with no issues. If you are using Firefox on certain Linux systems, you may experience some difficulties using the console plugin. This can be fixed by copying the plugin files (viewer and remotemks) from:
	/.mozilla/plugins  /usr/lib/firefox/plugins
  • Connecting to the VM via ssh:  Our VMware servers are set up to allow users to ssh into their virtual machine through a dedicate gateway machine (vm-gw01). The best way to find out the IP address of the VM is on your machine is to boot up the virtual machine (using X or VNC) and type 'ifconfig' to get the IP information. If the VMware tools are setup correctly in the VM (by default they are), then you can look up the IP in the "summary" tab via the control interface.  Then you can use the IP address to ssh or ftp into the machine from the host machine. This is only a local IP address, so you cannot ssh directly into the VM from the outside world.
  • X Server
    If you are running a Unix-based operating system or have an X Server running on your local computer, you can use X to access your virtual machine. X-Win32 is available for running X on Windows PCs. This is probably the easiest way to use VMware, but you may run into firewall problems if you are off campus.
    To do this:
    • From a Unix-based computer, just run:
      $ ssh -X
    • If you're running Windows, you can find instructions on how to forward remote X connections using different ssh programs here
    • Now you can run VMware, Emacs, or any other application that requires X with no problem.

  • VNC
    According to the VNC website: "VNC stands for Virtual Network Computing. It is, in essence, a remote display system which allows you to view a computing 'desktop' environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures."
    There is a free client available for VNC, so it is very easy to access. It is also extremely lightweight and can save your session on the server in between logins. However, it can be slower over the network.
  • SSH
    Once a virtual machine is up and running, you can ssh into it from the machine on which the VM is running. This requires that the VM be started either locally on the machine itself, or from a VNC or X session. Once this is done, the IP address can be used to connect to the VM after ssh-ing into the local machine.