WINE Ascendant

January 13, 2009

I had an interesting realization on Sunday, and it took me a bit to wrap my head around it.

Imagine this conversation taking place in 1993:

  • Linux Hippies: Hey, Microsoft, we’d like to run Windows software on our OS.  Can you help us out?
  • Microsoft: Uh, whatever, you freaks.  Our OS is the result of millions of man-hours of development.  You can’t just …re-create it.
  • Linux Hippies: Oh, ok.  I  guess we’ll just have to re-implement the whole API, clean-room, from scratch.  You know, so it’s legal and all.
  • Microsoft: Hah! Good luck, suckers.
  • Everyone Else: Hah! Look at those crazy Linux guys, trying to re-create the Windows API!  That’s nuts, they’ll never get anywhere with that.

That was sixteen years ago.  Sixteen years is a long time.  Yet … the project continued.

I’ve been using WINE for a couple of years now.  In that time, the number of things that I needed to do to get various programs working has been steadily shrinking.  WoW was pretty much a breeze, as was Ventrilo – it turned out that all the instructions on the web were for older versions of WINE, and that just setting things to use ALSA worked.  Last week I downloaded and installed the Mount & Blade demo – and it just worked.  Two weeks before that, I bought Fallout and Fallout 2 from GOG.com, and they worked.  When I installed my new machine over the weekend, and switched to a Radeon 4850, things still worked.  (Insert rant about ATI’s undocumented command-line utilities here.)

As I was working on my new machine, it kind of came together for me.

The WINE team has succeeded.

Yep, there’s still lots left to do.  Yes, there are a lot of bugs.  Yes, they will never truly be finished, as long as Microsoft is putting out operating systems.  Yes, many things are still quite hacky.  But the WINE team has achieved the impossible – they have re-implemented the parts of Windows that are necessary to run Windows programs … on an entirely different operating system, right out of the box.

They are over the hump.  Take a look at the latest WWN issue, and the one before that.  The first important information is that the WINE test suite is starting to pass.  Some tests are still disabled, but the number of passing tests is growing.  There’s a good chance, based on the progress in 2008, that a lot more of the tests will begin to pass.  For each test that passes and each bug that gets fixed, more and more applications begin to work.  You can see that snowball beginning in the AppDB results.

The other bits of information coming out are more subtle.  Look at what is being reported.  OpenBSD integration, performance work on the DirectX engine (which apparently didn’t succeed), Wine64 work.  There are discussions about integrating WINE into the mainstream Linux distributions.  Games like EVE Online are being ported using WINE as a base, and now are officially supported on Linux.  Just-released games like Fallout 3 are mostly working right at release.  The last major roadblock for graphics was resolved in September 2008, when AMD/ATI fixed the WINE display corruption bug.

If these things are happening, mainstream acceptance of WINE is beginning to occur.  This presents a somewhat interesting possibility:  If Microsoft isn’t careful, WINE could become a better Windows platform than Windows.

Consider:

  • Due to WINE’s design, it can act as pretty much any version of Windows – 95, XP, Vista, or whatever, with varying degrees of accuracy.  This means that long after XP is gone, you will still be able to run older versions of software that require XP on WINE.
  • WINE has the ability to have multiple “installations”, each tailored to a specific application, with their own registry and their own configuration.  This makes running several different versions of an application alongside each other simple in most cases.
  • Those two things make WINE application installs fairly portable – you can simply copy them from one machine to another and generally expect them to work, barring issues with the video card or something like that.  These installs are also very easy to remove, re-install, and back up, since they are just directories.
  • WINE represents the critical subset of Windows functionality for desktop applications.  If your application doesn’t run on WINE, it’s now useful for developers to find out why it doesn’t run.  If your application does run on WINE, there’s a high percentage chance that it’ll run across a high percentage of Windows installations.  If you want your application to be stable, getting it running in WINE is a good indicator.  In other words, WINE is a reference platform for Windows.
  • WINE runs on Linux – which runs on just about anything.  This presents interesting possibilities for small businesses and their suppliers who run critical applications on Windows XP and need to maintain support, but don’t want to move to a newer Windows because it’s too expensive to buy or port to it.  Better security, same application, no cost – assuming WINE can handle it.
  • Better security.  For an attacker, you need to compromise a Windows application, gain control of it, and then use it in a very limited and specific environment to do something to the underlying Linux OS.  There are ways this would be possible in WINE, like accessing the user’s home directory through a drive mapping, for example, but … good luck with that.

Will WINE ever run every Windows application?  Probably not.  Will it run enough applications to make Windows a bad memory for a lot of people, especially gamers?  It could.  And it looks more and more likely with each release that it will.

To all the developers, testers, users, and customers, and with special thanks to Alexandre Julliard, who has shepherded the project for so long in the face of so much adversity:

Thanks, and congratulations.  You’ve done the impossible, and it is good.

3 Responses to “WINE Ascendant”

  1. Jeremy T Says:

    I’ve long felt that WINE is among the most important open source software projects out there. I’ve followed WINE for years, from a stage when my default assumption was “hell, this application probably won’t work, but I’ll try it” to “I’m pretty sure this will work with some tweaking” to “I’m surprised when an application doesn’t work in WINE out of the box.”

    WINE went 1.0 last year, and it really feels to me like it’s warranted. The nature of the project means that even in an ideal world it will always be lagging behind, but it’s come so far and has gotten so close. It’s ready for prime time.

    The significance of an open, unencumbered implementation of the Windows API may be lost on most people, but WINE is slowly dismantling one of the most crucial components of vendor lockin and is paving the way for a much brighter computing future for everybody. I can’t thank the WINE team enough for what they’ve accomplished.

  2. David Gerard Says:

    Ah, I wouldn’t bother trumpeting security. Wine runs with the powers of the user and can certainly utterly destroy their data. All malware has to do to break out of the sandbox is to do an int 0×80 for a Linux system call. It could then easily e.g. set up a server running as the user on a high port, run from their crontab. Or anything else.

    (And none of this is a secret – the bad guys already know this stuff is simple and obvious.)

    If you want to run toxic waste in Wine, best create it in its own user, or a dedicated VM! c.f. ZeroWine: http://sourceforge.net/projects/zerowine/ – if this gets popular with researchers, expect malware targeting Wine.

  3. ac Says:

    Great, you’ve set off another “research project” inside MSFT.


Leave a Reply