IN THIS CHAPTER
Emulation versus virtualization
Working with bochs and QEMU
Since the earliest days of Linux, there has been interest in running software designed for other systems on a Linux system. For obvious historical reasons, many people wanted ways to run applications written for MS-DOS (or other DOS variants) or Windows on Linux. There has also been an interest in finding ways of running Linux or other complete operating systems on top of Linux.
Initially, the motivation for these attempts largely had to do with enabling desktop usage of DOS or Windows programs in a Linux environment. However, as time has gone by, and hardware has become more powerful, the emphasis has partly changed. There is now great interest in the idea of consolidating server loads by moving multiple existing systems into a virtual environment running on top of Linux.
We look at two main approaches in this chapter: emulation and virtualization. To some extent these two terms are interchangeable, and many forms of emulation involve a certain amount of virtualization.
Emulation refers to the idea of creating an environment (as a running program) that behaves in terms of input and output like the target system. For example, the
dosemu program is an emulation of a DOS system. Although it is just a program running under Linux, it responds to interactions from users just ...