System Emulators / Virtual Machines
Emulators for x86
- QEMU (homepage)
is a fast, robust program that emulates a bunch of different processors
(including x86 and PowerPC) and runs on a bunch of different
processors. I've got local mirrors for:
- The 10-second guide to QEMU includes:
- Boot from any disk image with: "qemu disk.vmdk" (Add "-L C:/Progra~1/Qemu" on Windows so QEMU can find its BIOS images.)
- Build a new blank 2GB disk image with: "qemu-img create -f vmdk disk.vmdk 2G".
- Boot from an install or live CD: "qemu disk.vmdk -cdrom /dev/cdrom -boot d".
- VMWare Player
emulates an x86 machine on another x86 machine. The commercial
version of VMWare is expensive, but the player is free (player allows
you to run virtual machines, but not easily create or manipulate them).
- Bochs is an older x86-only emulator. It's not nearly as good as QEMU or VMware player.
- Xen
is an x86-only virtual machine that requires a modified guest operating
system (at least until x86 virtualization hardware improves).
Getting Data Into and Out of Virtual Machines
- The "-net user" command-line option to QEMU will emulate a
'user-mode' network (gateway 10.0.2.2, DNS 10.0.2.3, with DHCP),
forwarding traffic into and out of the virtual machine.
This means you can download code from web and FTP sites from inside the
virtual machine. Note that this works in addition to other -net commands that emulate a virtual network.
-
The "mkisofs" command (part of cdrtools for linux or Windows)
can create a .iso CD image for importing data into a virtual
machine. Build the image like "mkisofs -J -R -o out.iso
my_stuff", and then run "qemu -cdrom out.iso ...".
- The 30-day evaluation version of WinImage can mount, read, and write .iso or .img RAW disk images.
- On a UNIX or Linux box, the root command "losetup -o 32256
/dev/loop0 disk.img; mkdir -p tmp; mount /dev/loop0 tmp" will mount the
first partition of a RAW disk image for read or write. You can
convert your .vmdk image to RAW format with "qemu-img convert disk.vmdk
-O raw disk.img".
Runnable Emulated x86 System Images
- For UAF students, I have a collection of virtual machine
images I prepared for CS 493/693. The collection is available on
DVD (stop by my office) or for download (only works from the uaf.edu domain). The Windows images can only legally be run on UAF-owned hardware.
- I've collected a few images hosted locally in the x86 directory:
- QEMU Linux Test is a tiny installation of Linux. (6MB download; 10MB unpacked)
- ReactOS (project) is a free clone of a Windows-like operating system. (10MB download; 50MB unpacked)
- H2K is my own small distribution of Linux, including compilers and network servers. (26MB download; 90MB unpacked)
- Bochs hosts a bunch of really tiny bootable installed disk images. Some of these are broken, but others work fine.
- VMWare hosts a number of community VM images for Linux and other free OSs. Some of these are VMWare-specific, and won't work in QEMU.
- FreeOSZoo has fairly large images of every flavor of Linux, FreeBSD, NetBSD, OpenBSD, FreeDOS, and other OSs.
Emulators for other machines
- PearPC emulates the PowerPC processor. It runs under x86 on Windows and Linux.
- minivmac emulates the Mac Plus (Motorola 68000 processor). BasiliskII
emulates the Mac II/Quadra line (68020, 68030, or 68040). It's
not legal to run these emulators unless you own ancient Mac hardware.
- SPIM is an emulator for the (now obsolete) SGI MIPS processor. I used this in Dr. Roth's CS 301 back in 1996!
O. Lawlor, ffosl@uaf.edu
Up to: Class Site, CS, UAF