Emulation is a big area in Linux, it allows us to do things under Linux that we could not otherwise do. This is very good for playing games and using software that we otherwise could not get access too. Linux is a great operating system but if you are not ready to go cold turkey on WIndows quite yet you may want to look into emulation which is a very good alternative.
There are many ways to emulate Windows from the free WINE software to the famed Cadega which is more game focussed. I will also be looking into other emulators, for example the ones which play old console games and run old applications.
Wine is an open source framework which aims to allow you to run your Windows programs under almost any operating system. It is not an emulator as such as it does not do any CPU emulation, it instead introduces a layer of calls which the Windows programs can work with. This usually means there is not much latency between a real application and an application running under WINE. WINE is essential for people wanting to run older Windows programs and can even be installed inside Windows 7 for example to run Windows 98 programs that otherwise would not work.
While some people argue that a virtual machine is better, WINE is faster than running an application on a Virtual Machine because it runs directly on all of your hardware. However, WINE does not support all Windows applications and has tried to create a list of applications that are problematic and those that work in the AppDB.
There are many options if you would like to emulate an old console game. The legalities can be sketchy, but as far as I know the emulator is legal as long as you rip and use your own games. For the Gameboy and Gameboy advance you can use VisualBoyAdvance either natively for Linux, or you can use the Windows version with WINE mentioned earlier. I find the latter option to be the most effective for this emulator.
Many console emulators are cross platform and even if they are not they usually do not have any problems running in WINE, the only one I personally can run natively is ePSXe (Playstation 1 emulator) as the others do not work well with my version of Ubuntu and need to be run under WINE.
I hope this article has opened your eyes to some of the extensive options you have for emulation in Linux. I have not covered virtual machines in this article as I do not think they are a true emulator, but instead a full system. However, you can read more about them in this informative article.
If you have any problems running any of the emulators I have mentioned here, or just have a question about emulators in general please feel free to comment below.