Under Linux, it is possible to run a number of Windows applications without having Windows installed at all. This is done with Wine. I'm not talking about the fermented beverage some of us are quite fond of, but a package that runs on Linux. Allow me to paraphrase from the Wine Web site . . . Wine Is Not an Emulator. Wine is a compatibility layer, a set of APIs that enable some Windows applications to operate on a Linux system running the X window system (the Linux graphical environment).
Wine will not run every Windows application, but the number of applications it is capable of running is increasing all the time. Some commercial vendors have ported certain Windows applications to Linux by making some of the code run in Wine. This has sped up the normal production cycle and made it possible for them to get their programs to Linux users faster.
Many Linux distributions include a version of Wine on the CDs, and some let you select Windows compatibility applications as part of the installation procedure. Keep in mind that the newer your Wine, the better. For the latest and greatest on Wine development, visit the Wine Web site (http://www.winehq.com/). A great deal of Wine development is being done at CodeWeavers (http://www.codeweavers.com/). Its version provides an installation wizard to guide you through the installation and configuration process for Wine. It makes the whole process extremely simple.
The Wine project has done some impressive work, but it will not run all Windows applications. Sometimes you just need to run the whole shebang, and that means a full copy of Windows. Because you don't want to boot back and forth between Linux and Windows, it would be great if you could run Windows entirely on your Linux machine. This is the philosophy behind VMware and it doesn't stop there.
VMware enables you to create virtual machines on your computer. Complete with boot-up BIOS and memory checks, VMware virtualizes your entire hardware configuration, making the PC inside the PC as real as the one you are running. Furthermore, VMware enables you to run (not emulate) Windows 95, 98, 2000, NT, FreeBSD, or other Linuxes. For the developer or support person who needs to work (or write code) on different platforms, this is an incredible package. Yes, you can even run another Linux on your Linux, making it possible to test (or play with) different releases without reinstalling on a separate machine. VMware knows enough to share your printers, network cards, and so on. You can even network between the "real" machine and the virtual machine as though they were two separate systems.
All this capability comes at a price, however. Aside from the dollars that you spend on this package (and it can be well worth it), there is a considerable price in performance. VMware is a hungry beast. The more processor power and memory you have, the better. A Pentium III with 96 or more megabytes should be your starting point. Unlike Wine, you do need a licensed copy of Windows (or whatever OS you are installing) to run.
VMware comes in a variety of packages and price points. Visit the VMware Web site (http://www.vmware.com/) for details.
Another alternative still requires a licensed copy of Windows. Netraverse (http://www.netraverse.com) sells a package called Win4Lin. This is a package designed to let you run Windows on your system but unlike VMware, only Windows (95, 98, and ME at this writing). It is, however, somewhat less expensive than VMware. Once again, remember that because you aren't emulating Windows but actually running a copy, you still need that licensed copy of Windows.
Win4Lin's magic is performed at the kernel level. Consequently, this requires that you download a patched kernel equivalent to what you are currently running or that you patch and rebuild your own. If you have compiled custom drivers into your kernel, you are going to have to go through the process again to get Win4Lin going.
What I have found interesting is that Windows installs and loads much faster under Linux than in native mode. Win4Lin works very well indeed and requires surprisingly little in terms of resources. I have run it on a Pentium 233 notebook with 64MB of RAM and found that it was reasonably peppy. You do take a performance hit, but it feels minor and should not distract you under most circumstances.