Software Emulators

        Spouses, space, money...there are many reasons why we can't always have all the hardware we want. Here are some workarounds: a variety of emulators that let you run programs on a platform on which they were not intended to run.

PC emulators

        VMware is "the global leader in virtualization software for industry-standard desktops and servers."

        VirtualBox is an open source x86 virtualization product that runs on Windows, Linux, Macintosh and OpenSolaris hosts and supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, Server 2003, Vista), DOS/Windows 3.x, Linux (2.4 and 2.6), and OpenBSD.

        QEMU is an open source processor emulator, promising to provide good emulation speed by using dynamic translation.

        Xen is an x86 virtual machine monitor that promises 'unprecedented levels of performance and resource isolation'.

        Bochs is a Portable PC Emulator For Unix. Bochs works by emulating each x86 instruction, so while it will run on your Sparc or PA-RISC box, don't expect to be able to play Windows games using this!

        Wine is an implementation of the Windows 3.x and Win32 APIs on top of X and Unix. It provides both a development toolkit (Winelib) for porting Windows sources to Unix and a program loader, allowing unmodified Windows binaries to run under Intel Unixes such as Linux, FreeBSD, and Solaris.

        ReactOS is 'dedicated to making Free Software available to everyone by providing a ground-up implementation of a Microsoft Windows® XP compatible operating system.'

        plex86 is another "virtual PC", but it differs from Bochs in that it attempts to natively run as much of the operating system and application software as possible. Architecturally, it promises to be much faster than Bochs, but at the time of this writing development seems to have been abandoned (last release was in 2003).


        It's not strictly Unix-related, but most serious Unix programmers will appreciate the GNU MIX Development Kit. MIX is Donald Knuth's mythical computer (described in the first volume of The Art Of Computer Programming), which is programmed using MIXAL, the MIX assembly language.

Big Iron

        Various hardware simulators (most interestingly: a virtual PDP-11) written by Bob Supnik.