- By Steven J. Vaughan-Nichols -
I was recently bemused to see some people praising to high-
heaven the upcoming arrival of Lindows, which promises to enable Linux users to run Microsoft's Windows. It's funny because 1.) other than a catchy name, Lindows is
vaporware and 2.) we've already have had MS Windows running
on Linux, and before that Unix, for years.
There are already several Windows and Linux (WAL) programs out there. The three most popular are
VMWare's VMWare 3.0 Workstation 3.0; NeTraverse's Win4Lin 3.0; and WINE. They all take very different approaches to
bringing Windows to Linux users and each works best for different users.
VMWare, for example, is not a Windows emulator at all. It's not a Linux product either. Instead, it's a
platform for running multiple operating systems concurrently.
VMWare likes to call each instance of an operating system
running a "VMWare world," but most people call them virtual
machines (VM). It has more in common with IBM's
Multiple Virtual Storage (MVS) operating system for
mainframes than it does with Unix.
The key word in VMWare is that it runs operating systems
"concurrently." You're not running Windows on top of
Linux; you're running Windows and Linux at the same time on
the same machine with VMWare playing system resource
The good news is that you get essentially the full functionality
of, say, XP Professional with SuSE 7.3 or your choice of many
Intel-based Linux distributions. The bad news is there's a price to
pay for VMs, and that is performance.
For example, if all you really want Windows for is to play
games, VMWare will let you run almost any game. But, the
same game will run much better on the same hardware if you
run pure Windows on the machine. The same is
also true of office software.
So who should run VMWare? Developers will love it. Will that
code run on Caldera Linux and Red Hat Linux? With VMWare,
it's a snap. It's also helpful to trainers, help desk workers or
system administrators--anyone who really needs to switch
operating systems in a hurry.
Like VMWare, Win4Lin requires a real copy of Windows (95 or
98 only) before you can run Windows. The key technical
difference between the pair is that Win4Lin runs Windows, and
any of its applications, on a virtual hardware platform. When
Windows calls for a file under VMWare, for example, it uses its native file system -- either FAT-32 or NTFS.
Under Win4Lin, Windows will use your Linux file
Win4Lin does this by running an entire set of servers and
drivers that create a virtual PC. From the Windows perspective,
it has an entire PC to itself. It's actually running on top of the
Win4Lin VM and its underlying Linux system.
The win for Windows users is that Win4Lin uses far fewer system
resources than VMWare. This, combined with the use of native
Linux file systems and network stacks, makes Win4Lin
Windows very responsive. Unlike some stories you may
have heard, this doesn't make Win4Lin Windows as fast as
native Windows on the same hardware, but it does make Windows
fast enough to use enjoyable on a system with as little as
128MB of RAM and a Pentium 350MHz processor. Only
someone with great patience would want to run VMWare on
this level of hardware.
On the other hand, because Win4Lin presents a virtual PC to the
operating system, you're limited to the VM's emulated
resources instead of the hardware's real resources. For example,
you can't use USB or FireWire devices because the virtual PC
only supports serial and parallel ports. You also can't use
advanced writeable devices such as CD-R and CD-RWs.
There are also a few other quirks. For example, DirectX, used by
many games for better graphics performance, isn't supported.
Some modern games, such as Diablo II, will run under
Win4Lin, but don't expect full functionality. In my own case,
I've been unable to find any way to run Diablo II in its
multiplayer Battlenet mode.
Still, if all you really want to do is to run today's bread-and-
butter Windows home and office software, Win4Lin is hard to
beat. Because Win4Lin is limited to Windows 95 and 98 and
Microsoft is intent on moving users and applications to XP as
fast as possible, Win4Lin will need to play catch-up in the
future to insure that the next generation of Windows software
will run on it. When all you want is for you or your office to use
office applications, like Microsoft Office, Intuit Quicken, Lotus
SmartSuite and Notes, and the like while keeping the power
and stability of Linux, Win4Lin is your best choice. In short,
Win4Lin is the Windows on Linux for most office and home users.
WINE doesn't hold with running VMs on
hardware (VMWare) or the operating system (Win4Lin).
Instead, WINE creates a set of programs that emulate Windows
3.x and Win32 APIs in Unix.
WINE is a series of Unix programs that, from a Windows
application's viewpoint, look and act just like the original
Windows dynamic link libraries (DLL)s. And yes, that includes
faithful reverse engineering of Windows bugs as well.
The result is a pure Unix/Linux environment where you can run
many Windows programs with varying degrees of success.
Despite years of effort, because WINE must perpetually chase
Microsoft's constant changes to its Windows APIs and DLLs,
how well a given Windows application will run with WINE is a hit-or-miss affair. The WINE people come right
out and tell you that after seven years of work, WINE is still a
developers' only release. They're right.
You can use WINE today. Just be ready,
even with well-supported applications like Office 97, to do
some tweaking with the installation before you're running
Microsoft Word in a KDE window.
You can sneak around the problems still lurking in WINE by
having it use Windows native files and DLLs in a Windows
partition. But let's get real: if you're doing that, you might as
well be running VMWare or Lin4Win instead.
Will the application you want run on WINE? Check
CodeWeaver's WINE application database. Don't assume, though, that because a program is listed it will run.
Why would you want to use WINE? There are some
technical reasons. For instance, unlike Win4Lin, WINE does
have some DirectX support and has more complete device
support. Practically speaking, WINE's most popular application
is the popular first person shooter, Half-Life. Other games are
also best-selling WINE programs.
The real reason to use WINE is if there is a
supported Windows application that you absolutely must use,
and you don't want to spend a single solitary dime on a
Microsoft operating system license. WINE is limited Windows
support for people who hate Windows.
Still interested? I highly recommend using CodeWeaver's WINE implementation. That version, available as an RPM, is the most polished one
Is Win on Lin a Win?
It's bottom-line time. If you're a developer or anyone else who
needs fully functioning Microsoft and Linux operating systems
on one machine at your beck and call, VMWare is for you. If
you just want support for most basic home and office
applications, Lin4Win really should be your program of choice.
And, if you can't stand Microsoft, but you really want that one
Windows application or game on your GNOME desktop and
you're comfortable with HOWTO files, you should have some
Lindows? Sorry, it's hard to do
anything with vapor. Technical details have been sketchy, but
essentially Lindows will build on top of WINE. While
WINE has not been the best-supported Open Source project
over the years, I find it hard to believe that even with CEO
Michael Robertson's millions and a dedicated staff of 20, that
Lindows will be able to significantly improve on WINE's
current compatibility level anytime in the near future.
One point all these efforts miss is that
resources spent on bringing Windows and its applications to
Linux are time, expertise and money that could be spent in bringing
better Linux applications to Linux. I can understand
the short-term desire to run Windows applications on Linux. I
do it myself with both Win4Lin and VMWare. But, in the long
run, chasing Microsoft is probably a losing game for the Linux
desktop. 100% Windows running on its own
dedicated hardware will always do the best job of running 100%