Linux and Microsoft Windows may be light-years apart in their design philosophies, but that doesn’t mean Windows software can’t play nice on a Linux PC. Linux developers, both commercial and open source, have created a number of systems that let the Windows OS share your PC while Linux is loaded, with both operating systems sharing the same CPU and RAM allocations and, for most practical purposes, completely unaware of each other. Open source purists (or simply the frugal) have a range of choices, including Wine, Bochs, and Plex86, as well as the venerable DOSEMU. Except for DOSEMU, each is largely a work-in-progress. That’s good news for eager developers, but not so good if you need rock-solid compatibility and reliability. In that case, you’ll probably want to turn to either VMware Inc.’s VMware or Trelos Inc.’s Win4Lin. These commercial offerings have their open source counterparts beat on most counts of functionality, and virtually all counts of ease of use.
WineWine ( www.winehq.com ) is one of the oldest, and arguably the most unusual, Windows compatibility systems for Linux. Traditional emulators and virtual machines load Windows and look and act more or less like a computer-within-a-computer, loading the Windows desktop in an X window or a separate screen. But Wine doesn’t boot Windows. Instead, a Wine session consists of one Windows program at a time. Wine inserts a Windows compatibility layer between the Win32 app and Linux/X, which (hopefully) means that the Windows program runs on your Linux desktop exactly as it would on a Windows system. Although Wine benefits from access to real Windows system DLLs, there is other, less reliable, DLL emulation available that can run some programs without any Microsoft code whatsoever. Wine also stands alone in the entire Windows emulation/virtual machine universe in that it actually has a modicum of DirectX support. It’s far from perfect, but despite its warts and often user-hostile nature, Wine is actually one of the better platforms for Windows games under Linux. The trouble with Wine is that it is still very much an alpha-grade program, with an extremely dense and imposing configuration file and a host of Windows incompatibilities. Wine cannot reliably run many important Windows applications, including Microsoft Office. It is also extremely difficult to install Windows applications using Wine alone, because some setup.exe programs will not work with the Wine compatibility layer. Wine is open source with a BSD-style license, which is why it has been adopted into commercial software like Corel WordPerfect, which skips porting some of the Windows code to Linux by simply simulating the Windows OS responses through Wine.
BochsA more conventional choice is Bochs ( www.bochs.com ), which provides a complete PC emulation and can run Windows 95 and Windows NT as well as DOS. Despite a semblance of a GUI, Bochs is still fairly tricky to configure, although you can boot and install Windows from a CD. Because of its built-in 486/Pentium CPU emulator, Bochs is the best (and for all practical purposes, the only) choice for non-x86 users looking for open source Windows compatibility. That CPU emulator is something of a hindrance for users on a real x86 Linux PC, however, because it cannot be disabled. All of the other Windows emulators are technically virtual machines that share the x86 processor, but Bochs suffers an unnecessary performance hit by creating another x86 CPU in software. There has not been a public update of the Bochs code since MandrakeSoft purchased the program and released it as open source under LGPL back in late March. Bochs author Kevin Lawton is instead spending his time developing Plex86, an LGPL open source virtual machine system which, when complete, will presumably be able to run all Windows variants as well as DOS, Linux, and potentially other x86 compatible operating systems as well.
Plex86Plex86 ( www.plex86.org ) was founded to provide an open-source alternative to the commercial, closed source VMwarein fact, the original name of the project was “FreeMWare.” Plex86 looks promising, but is currently in the earliest developmental stages, and is only experimentally able to boot DOS and Linux.
DOSEMURounding out the open source options is a selection that deserves honorable mention: DOSEMU ( www.dosemu.org ). As the name suggests, you cannot run Windows (only 3.x works, and barely at that), and support for protected mode DOS applications is spotty. However, it is reasonably stable, and commonly included in Linux distributions. It’s good to have around in a pinch if you occasionally need to run DOS text-mode applications.
|"For stable, reliable Windows networking programs, VMware is the better choice, and the only choice if you need to run server applications or operating systems."|
VMware ( www.vmware.com ) is currently the biggest name in commercial-grade Windows compatibility for Linux. In addition to full support for all versions of Windows since 95 (including NT4 and 2000, as well as experimental support for Windows ME), VMware also allows emulation of most major versions of Linux as well as FreeBSD and Novell NetWare. DOS and Windows 3.1 are partially supported, and some users have even successfully booted Solaris in a VMware window. VMware makes a very conscious design decision to shield as much of the real Linux PC’s resources from the emulation sessions as possible. For example, it is not possible to directly mount your Linux filesystem, or any disk partition currently mounted by Linux, in a VMware session. You need to use a network file system protocol like NFS or SMB over a virtual Ethernet link created in software instead. On the plus side, this helps shield your main Linux session from any unhealthy activities that the emulated OS might be asked to perform (like a trojan horse that tries to delete every file it can see.) However, this can be remarkably inconvenient at times. Unless you’re a Samba wizard, you need to install VMware’s customized Samba server in order to swap files between Linux and a live VMware Windows session–and the Samba server tends to interfere with any other SMB activity you may be running with real Windows PCs on the outside network. VMware charges $299 for a commercial license (or $99 for noncommercial users.) A full-featured 30-day trial license is available. The program can be downloaded from the company’s Web site, or purchased on a CD-Rom from Linux distributor SuSe Inc.