Wine, The Windows EmulatorActually, Wine is two things at the same time. First of all, it is a binary emulator that will let you run your Window 3.1/95/98/NT binaries without having to have a copy of Windows on your computer. You will require the DLLs your program uses, but Wine intends to supply replacements for all the standard ones.
When used this way, Wine loads your program and jumps to its entry point. Wine then intercepts all calls to the system DLLs and substitues suitable X-Windows calls. Assuming that we can substitute calls that are efficient, your program should run at regular speed. Moreover, we can integrate Windows programs and regular programs such that cut-and-paste operations work as expected.
(Other projects -- such as Bochs and to a certain extent Dosemu -- want to give you Windows running in an emulated PC. We wish them luck, but for this particular purpose we don't think that is the right way to go. They will have to pay Microsoft for that Windows copy and the integration between programs will suffer.)
Wine, The Windows API ImplementationSecondly, Wine is an implementation of the Windows API allowing you to compile Windows programs into Unix binaries -- if you have the source code, of course. Thus, Wine (Winelib, actually) is a GUI toolkit, but since we don't intend anyone to develop directly for it, we don't see it as competing with GTK, Motif, Qt, and you name it.
We hope that Winelib can help transfer usable, free Windows programs into the Linux world with only little work. We also hope that developers -- who might want to spend the money doing a real port -- could use Wine as a quick way of entering the Linux world with their already-written programs.
StatusWine already runs your favourites: FreeCell, Solitaire, WinMine, and MSHearts. (Hey, that was 90% of the reason to use Windows already -- way to go, :-) MS Words and Excel are close to being useful; for some versions and people, they already are. Success has been reported for the Power Point viewer, but Power Point proper still needs some work. Also, the Forte Agent news reader is reported to be functioning well enough to be useful. More information can be found right here.
Since many programs are build with toolkits like MFC, we believe we are "close" to getting a lot of programs working. Time will tell.
ProblemsThere are three major problems in the Wine development:
- The Windows API is really, really big.
- Wine is thus a large scale operation. Luckily we can proceed one function at a time.
- Much of Windows is undocumented -- and programs depend on undocumented stuff.
- This is by far the worst problem. Implementation of some system call can be quite difficult when you have no clue what it does. In my humble opinion, the US Department of Justice should have demanded full disclosure of all documentation regarding all function calls ever called by a Microsoft application. (Recall that Explorer clearly was an application at the time it came out. The "integrated part of the OS" mumbo jumbo came later.) There really is no good reason why Microsoft's application writers should have such information denied competitors.
- Lack of Windows API knowledge.
- Many of the Wine developers don't know what they are doing, yours truthfully included. We have some Microsoft documentation, some books, lots of Unix experience. Then we start coding. This would work better if Microsoft's documentation was correct and complete, but it certainly isn't.
Wine DevelopmentThe Wine project operates a bit differently from other Linux projects. Developers tend to come and go. We live in USENET space although nowadays we also have the Wine HeadQuarters. (Sorry. We're not a multi-million enterprise; the /. effect will probably kick in sooner rather than later.) New versions come out biweekly and are edited by our fearless leader, Alexandre Julliard.
(PLUG type=shameless)Please help with Wine: test your favourite applications, regardless of whether Linux alternatives exist. Tell us what breaks and how. Better yet, send us patches for bugs and missing functions. Is it worth it? Well, read what Linus says about Wine:
Other benefits from participating in the Wine project:Wine, on the other hand, is in my personal opinion one of the most important linux projects currently under development. The ability to seamlessly run windows binaries among linux applications (all showing on the screen at the same time, with cut-and-paste working between them and eventually even maybe some kind of drag-and-drop setup) would be a huge advantage, mainly because windows has what linux lacks: end-user applications.
- You will get the occasional junk email about alcoholic fluids made from grapes.
- The resident
comp.emulators.ms-windows.winetroll will tell you that you are a member of one of the world's secret communist parties -- I kid you not! Their main activity seems to hinder Wine development, if our source can be trusted.
- "No, I am not playing games -- I am performing valuable testing of Wine."
-- Morten Welinder, firstname.lastname@example.org. A member of, but not speaking on behalf of the Wine team.