Playing together nicely: Windows and Linux
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.
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.
Page 1 of 2