|
|
Subscribe / Log in / New account

Common Wine Myths

January 21, 2009

This article was contributed by Austin English

Wine is one of the best known, but least understood open source projects. It is a mystic application that everyone knows about, many use, but few truly understand. Reading forum posts, blog entries and tutorials about Wine show that Wine is surrounded by many myths and half truths. In this article, we will attempt to clear up some of the misconceptions about the project.

Myth: Wine doesn't run any program well: There are currently 1863 applications with a Platinum rating (applications which install and run flawlessly on an out-of-the-box Wine installation) in Wine's Application Database (AppDB). Additional applications are receiving a Platinum rating at a rapid rate. Popular Windows applications such as Adobe Photoshop CS3, World of Warcraft and Microsoft Office 2007 all run under Wine.

Myth: Wine requires native Direct3D support: Wine implements the Direct3D libraries already. Direct3D 9 and earlier has been implemented for the most part. There are of course implementation bugs, but those are being worked on. The Direct3D runtime is a slow work in progress, and so may be missing some features. Direct3D 10 is unimplemented, but the core infrastructure is in place and future implementation is in the planning stages. Native Direct3D should not be used in Wine, except for the DirectX runtime library (d3dx9_*.dll), to work around missing features in Wine.

Myth: Wine requires native Internet Explorer 6: Wine comes with its own version of Internet Explorer based on Mozilla's Gecko layout engine for applications that use IE for rendering. See the Wine Gecko project for details. There is a ton of work being put into this area of Wine since it covers such a large area of code. As a result, many applications depending on Internet Explorer rendering may not run well. For those applications, using native Internet Explorer serves as a workaround. This is neither required nor recommended because Internet Explorer's license does not allow people without a Windows license to use it.

Myth: Wine is only for Linux: Wine should run on any POSIX system that has kernel threading. However, since most Wine developers are using some version of Linux, these other operating systems don't enjoy the same level of support or compatibility. Wine currently builds and runs applications on Linux, Mac OS X, FreeBSD, Solaris and OpenSolaris. Work is also being done to get Wine to work on NetBSD and OpenBSD, the effort is progressing well.

Myth: Wine is only 32-bit capable: This is partially true, but the situation is changing. Wine has the capability of running 64 bit applications, (see this December, 2008 thread), but it is not yet enabled by default. A ton of work is being put into making the internals of Wine 64 bit compatible. Checking the Wine commit log, one can see frequent additions of patches aimed at 64 bit Wine. Running 64-bit Wine currently requires the use of a special GCC compiler from SVN to compile, so it's mostly for developers at this point. It is worth pointing out though that about two thirds of the internal Wine conformance tests already pass.

This is, of course, different from running Wine as a 32-bit application on 64-bit hardware. Doing so works fine as long as your operating system has the 32-bit compatibility libraries installed. Wine is commonly used for playing games on 64-bit Linux distributions. In fact, most packagers already build 32-bit binaries for 64-bit operating systems.

Myth: Wine stole code from Microsoft! It's illegal to use! Wine is a clean room implementation of the Microsoft Windows API. Wine developers have never used leaked Windows source code or disassembled its output. The implementation is made and tested using a suite of conformance tests, ensuring that Wine has the same behavior as Windows. The conformance tests are built daily and tested on various versions of Windows and Wine. Results can be seen on the Wine Test Runs page.

Wine is a very complex piece of software that has come a long way in the past 15 years of development. Releasing its first stable version (1.0) this past year is a testament to the complexity and size of this program that took thousands of hours of development to implement what Microsoft did with many times the resources. While Wine does not yet have perfect compatibility with all Microsoft Windows applications, the Wine team is working hard to change this. Wine is a very mature, fast-moving and complex piece of software. There's no better time than now to try Wine. Binaries and source code are available here.


Index entries for this article
GuestArticlesEnglish, Austin


to post comments

Common Wine Myths

Posted Jan 22, 2009 2:37 UTC (Thu) by johnmccutchan (subscriber, #54000) [Link] (2 responses)

Do the readers of LWN.net really need these myths cleared up for them? I'm kind of shocked this made it past the editor.

Common Wine Myths

Posted Jan 22, 2009 14:41 UTC (Thu) by pr1268 (guest, #24648) [Link]

Do the readers of LWN.net really need these myths cleared up for them? I'm kind of shocked this made it past the editor.

Absolutely! I use Wine on a regular basis to run a few Windows-only programs, and I've been Windows-free (Linux only) for 4 1/2 years now. I am pleased that LWN's editors included this article.

Thanks to the Wine developers for your hard work.

Common Wine Myths

Posted Jan 22, 2009 19:04 UTC (Thu) by iabervon (subscriber, #722) [Link]

I'm a bit surprised that software exists that runs Windows programs flawlessly. The only time I tried using a Windows program recently, it promptly hung the system. Maybe I should have tried using Wine (instead of Vista).

Common Wine Myths

Posted Jan 22, 2009 4:24 UTC (Thu) by ncm (guest, #165) [Link] (2 responses)

When last I tried it, I couldn't get sound out of a PowerPoint presentation. Apparently PP tries to open the sound driver multiple times, and only the first succeeds; pulseaudio didn't help, because, perhaps, Wine depends on more of ALSA than pulseaudio emulates. It also completely failed to play Magic School Bus games/lessons. I wonder if these things work yet.

Common Wine Myths

Posted Jan 22, 2009 4:26 UTC (Thu) by jwb (guest, #15467) [Link] (1 responses)

Yes, while it's true that a great many things work perfectly in Wine (I myself use LTSpiceIV under Wine daily) it is also true that it's trivial to find something that doesn't work at all, or works very poorly.

Common Wine Myths

Posted Jan 22, 2009 18:22 UTC (Thu) by timschmidt (guest, #38269) [Link]

This is also true for Windows Vista and the upcoming Windows 7. The difference is that the majority of ISVs will be actively working to re-target their apps at Vista / 7, eventually solving most incompatibilities. Very few ISVs care about Wine (yet).

Nevertheless, it's here, it works for many applications already, and when ISVs decide they should start caring about the Linux desktop - it will be a much easier target for many of them to hit than an entirely different toolkit.

Common Wine Myths

Posted Jan 23, 2009 9:16 UTC (Fri) by luya (subscriber, #50741) [Link]

As an occasional gamers, Wine is not ready to fully support games using rootkit like gameguard from nProtect. Patch was already available for Wine by Oreans Technology with Themida on which Gameguard is based. Apparently, nProtect did not fix that.

Indeed not only 32-bit

Posted Jan 24, 2009 1:20 UTC (Sat) by mjr (guest, #6979) [Link] (8 responses)

What was unmentioned is that Wine can also run 16-bit Windows software, unlike, say, 64-bit Vista.

'course, probably not a major focus for either developers or users at this point...

Indeed not only 32-bit

Posted Jan 24, 2009 17:23 UTC (Sat) by nlucas (guest, #33793) [Link] (3 responses)

64-bit Vista runs 16-bit applications just fine, although in a virtual machine.

Nothing new here, as that is a limitation of the processor, not of the system (you can't run 16-bit code on 64-bit mode as you can on 32-bit mode).

But I don't actually run any windows machine, so can't test it.

Indeed not only 32-bit

Posted Jan 24, 2009 18:22 UTC (Sat) by mjr (guest, #6979) [Link] (1 responses)

Hmh. I read in a Finnish computer mag that doesn't tend to get things that wrong that it doesn't do 16-bit code. (If you're talking about running a 32-bit windows in a VM, of course that'll do it at the latest...) Actually, as for Wine, the 64-bit version was last I checked slated to run semi-similarly only 64-bit code, while you can run the 32-bit version for 16/32-bit Windows code using the host kernel's 32-bit userland facilities.

Anyway, I have no first-hand knowledge — or interest — either, was just trying to be funny.

Indeed not only 32-bit

Posted Jan 24, 2009 18:48 UTC (Sat) by nlucas (guest, #33793) [Link]

It may well be that this is one of those features only available on the "enterprise"/"professional"/"server" versions of Vista.
Maybe the "basic"/"home" versions don't include the virtual machine to run those legacy 16-bit applications.

Anyway, not much interested to know the truth either.

Indeed not only 32-bit

Posted Feb 1, 2009 23:46 UTC (Sun) by GregMartyn (guest, #52300) [Link]

16 bit programs will not run on 64-bit vista:
http://support.microsoft.com/kb/926657

no 16-bit in long mode

Posted Jan 25, 2009 3:13 UTC (Sun) by tialaramex (subscriber, #21167) [Link] (3 responses)

I would imagine that Wine is also unable to run 16-bit Windows software (Win16) on 64-bit machines. The CPU simply doesn't have the capability to execute 16-bit 8086 era instructions once in 64-bit mode. Presumably your process takes an invalid instruction fault SIGILL, maybe Wine would catch that and just kill the Win16 application, or maybe it doesn't catch that signal and the whole Wine session would exit.

no 16-bit in long mode

Posted Jan 28, 2009 0:13 UTC (Wed) by bluefoxicy (guest, #25366) [Link] (2 responses)

in 32-bit mode, areas of memory can be marked with a page flag that says they contain 16-bit code. In 64-bit mode, no such luck. You need a full context switch to 32-bit mode to run 16-bit code. 26-bit code can run under a 64-bit OS, but only running a process native in 32-bit mode, since 32-bit protected mode supports 16-bit instructions.

Entering full-blown virtual 8086 mode is impossible, however.

no 16-bit in long mode

Posted Feb 16, 2010 22:15 UTC (Tue) by yuhong (guest, #57183) [Link] (1 responses)

Nope, it never worked that way. The way it really works on 386 and later processors is that every code segment is marked with a default operand/address size, either 16-bit for old 16-bit protected mode apps, or 32-bit for newer 32-bit apps. In fact, 64-bit/compatibility mode switching in long mode is similar too, with another bit being used to differ from compatibility mode vs 64-bit code segments, with most of the rest of the segment attributes being ignored for 64-bit code segments. And yes, 16-bit default operand size in compatibility mode is supported in long mode.

no 16-bit in long mode

Posted Feb 17, 2010 4:26 UTC (Wed) by viro (subscriber, #7872) [Link]

There's no V86 submode in long mode. IOW, with 64bit kernels you can run protected-mode userland just fine, including 16bit pieces, but with real-mode 16bit code you have serious trouble, Segments will work as for protected mode 16bit, which is not going to make real mode code happy at all. In particular, the lower bits of value loaded to segment selectors are treated as privelege level, etc.

You can get around that by playing with amd64 virtualization (i.e. run a guest in legacy mode and use _that_ to run 16bit real-mode code). If you don't have that, you are SOL - you pretty much have to emulate 8086. Instruction set is there, but address translation is incompatible.

Common Wine Myths

Posted Jan 29, 2009 12:55 UTC (Thu) by renox (guest, #23785) [Link] (1 responses)

>Myth: Wine doesn't run any program well: There are currently 1863 applications with a Platinum rating

Now what could be the reason behind this myth?
Mmmm, perhaps it's because very important applications such as Microsoft Office are not platinium and still need improvement.

Common Wine Myths

Posted Feb 2, 2009 9:01 UTC (Mon) by archdev (guest, #56434) [Link]

Agreed. I'm not crazy enough to give MS Office a platinum rating even when running on Windows. Improvement definitely needed.

Great but be careful

Posted Feb 2, 2009 13:09 UTC (Mon) by hozelda (guest, #19341) [Link] (1 responses)

Putting aside the notion that wine will be able to closely mimic MS platform software (as opposed to implementing some published specs), the project can still market wine as actually being compliant with published standards (should they ever reach such a point) and maybe attract some Windows developers and ports that way ["we're more compliant than Microsfot"].

There are very real patent risks whenever you develop using technology/APIs invented/designed by a lover of patents that is threatened by you (FOSS); however, third-party (proprietary) developers may not mind making sure their already-built Windows apps work well on wine.

As long as wine and others don't encourage developers to target wine over, say, LSB, then I think the wine project is a great asset.

The following were written with mono in mind, but everyone should pay attention:
http://www.linuxtoday.com/news_story.php3?ltsn=2009-01-20... and
http://www.linuxtoday.com/news_story.php3?ltsn=2009-01-20...

Great but be careful

Posted Feb 2, 2009 18:22 UTC (Mon) by hozelda (guest, #19341) [Link]

Want to add..

Interoperability is a two-way street. If Windows developers were using open source tools instead of things like MSVisStudio, their apps might just work off the bat with a clean implementation of the specs, instead of being married to the MS platform in undocumented (eg, buggy) ways. Of course, with open source build tools, they might not get as acceptable behavior on Windows in the first place.

This is why I stopped targeting Windows (the lock-in and MS dependency at every turn) and want Linux to displace Windows as the standard.


Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds