Emulation programs allow you to use your non-native programs in Linux. While there is often nitpicking about, or ignorance of, (depending on your point of view) the differences between emulators and virtual machines, in essence, you start an application that allows you to start non-native applications 'in' it.
These basically lie to the applications and pretend to be that application's native operating system, trapping and translating requests from that program to the kernel and feeding back responses that make the application 'think' that is running on DOS or Windows or OS/2 or any number of other systems. For an end-user, this is useful for running applications not available directly to Linux and, for developers, this is useful for cross-platform development.
- Emulators and virtual machines for a list of emulators.