March 4, 2021
Hot Topics:

Playing together nicely: Windows and Linux

  • By Jason Compton
  • Send Email »
  • More Articles »

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.


Wine ( 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.


A 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.


Plex86 ( 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.


Rounding 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

This article was originally published on October 4, 2000

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date