Running Windows Programs with the Wine API
The Wine compatibility layer lets Linux users run Windows programs. Unfortunately, configuring Wine is anything but trivial, and it helps if you enjoy experimenting.
Linux offers a number of options for users who need to run an occasional Windows program. You can emulate a complete machine using an application such as VMware or Qemu, or you can simulate a machine subset with Win4Lin. These solutions work quite well but also have some drawbacks: for one thing, users need to buy both the emulation environment and the operating system, both of which take up valuable space on the host machine. Emulation also taxes performance and soaks up memory. An average program running in an emulator will achieve just 50 to 80 percent of its normal native performance, even with increased static RAM memory use by the guest operating system. An alternative to emulation is simply to provide Windows libraries for the Linux system. In theory, this approach would allow the program to run in Linux. Unfortunately, this approach is complicated. First, the Windows library functions, or so called API (Application Programming Interface), is not adequately documented.