The term "emulation" comes from the verb "emulate," which means to imitate or reproduce. Therefore, computer emulation is when one system imitates or reproduces another system. This can be done using hardware, software, or a combination of the two. However, since hardware is expensive to reproduce, most emulation is done via software.
One of the most common types of software emulation involves running different operating systems in a virtual environment. For example, programs like Parallels Desktop, VMware, and Apple's Boot Camp allow Windows and other operating systems to run on an Intel-based Macintosh computer. Sun Microsystems' xVM VirtualBox allows multiple operating systems to be run on Windows, Mac, and Unix platforms. These applications are collectively referred to as software emulators, since they emulate different computer systems.
Another popular type of software emulation allows console video games, such as Nintendo, Sega, and PlayStation games, to be run on a PC. The program ZSNES, for example, allows Super Nintendo (SNES) games to be played on a Windows or Unix machine. The Virtual Boy Advance emulator allows users to play Game Boy Advance games on Windows or Macintosh computers. Games for these emulators are saved as ROM files, which are exact copies of a game cartridge or disk. Therefore, instead loading a physical cartridge, video game emulators simply load ROM files from the computer's hard drive.
A third type of emulation uses a type of file called a disk image. While ROM files are used to emulate game cartridges, disk images can be used to emulate optical media and physical hard disk. For example, an .ISO file (Windows) or .DMG file (Mac) can be mounted on the desktop, which makes the operating system view the file as a physical disk. This provides an easy way to make exact copies of CDs, DVDs, and hard disks. Disk images are also commonly used to create virtual installer disks that can't be modified by the user.