There are two Linux-related projects that will be of particular interest to those who come from the more traditional “IBM Compatible” circles. One of these projects is a DOS emulator called DOSEMU. The other is an MS-Windows emulator called Wine.
The two projects are quite different from each other. DOSEMU allows you to run a version of MS-DOS under Linux and then run your DOS programs in that environment. Wine, on the other had, requires no Microsoft code to allow you to run MS-Windows applications. It does this by interfacing to your MS-Windows applications at the Applications Program Interface (API) level. Wine then translates these requests for a particular service to the equivalent X-Windows function. We hope to have articles on bother projects in a future issue of LJ. For now, here is a status report on the Wine Project.
Wine Status Report - January 26, 1994Thanks to the work of Alexandre Julliard and Martin Ayotte, we have eliminated all Xt code from Wine. Wine is now faster and looks more like MS Windows.
We have a new mailing list!!! Hopefully, it will result in faster turnaround times and less confusion.
We now have e30% of the major API functions defined. We have received our first donations of money and equipment. We still could use more, though. Our current plans are to use monetary donations to buy programming time from student programmers. Work continues at an amazingly rapid rate.
If you are interested in contributing to this project, join the wine-users mailing list. You can join by sending the message:subscribe wine-usersto: firstname.lastname@example.orgTo send to everyone on the list, send mail to email@example.com. New releases come approximately every Tuesday. All releases are announced to the Wabi channel. Also, I will do my best to answer any question mailed to me. However, we really need people who can dedicate 10 or more hours per week. This project requires people who can learn on their own. My address in firstname.lastname@example.org.
If you don't have time to donate, how about money or equipment? This project has exploded into one of great general interest. We have attracted the attention of many individuals and several prominent organizations. Monetary contributions will be accepted to pay contributors for their time. Equipment is also needed. Most notably, disk space is a big problem. If you would like to make a contribution, please contact me by e-mail.
The Wine project is an attempt to write something with similar functionality to the Wabi that was developed by Sun. The basic goal is to be able to take an MS-Windows binary and run it under X-Windows. Currently Wine is supported by two operating systems, Linux and NetBSD. Other operating systems may be supported in the future. The finished product will essentially consist of two parts:
a) A program loader. This will load the Windows binary into the virtual memory of the user process, provide a means for adjusting the ldt of the processor so that the 16-bit segments typically used with Windows binaries will work correctly, and provide a means for calling the Windows binary in the first place—allowing the Windows binary to call back to the 32-bit mode program. This will allow the 32-bit mode program to call back again to the Windows binary (i.e., Windows callbacks). In each case, the arguments being passed will have to be pulled from the appropriate stack and loaded on th the other stack (there will be a 16 bit and a 32 bit stack).Finally some application specific DLL libraries will have to be loaded, and dynamic linking will have to be performed.
b) The second part of the finished product is an emulation library, which takes calls to Windows functions and somehow translates theses into calls to X11 in one fashion or another, so that equivalent functionality is achieved.
It should be pointed out that the Windows binary will be running directly—there will be no need for machine level emulation of the instructions. Sun has reported better performance with their version of Wabi than is actually achieved under MS=Windows—theoretically, the same result is possible under Wine.
The project got started as a result of discussions on comp.os.linux in early June 1993. A mail channel was set up for discussions, and this directory was created. At the moment, all the files that are uploaded are in the private directory and then in a hidden directory. The reason for this is that the program is really useful only to developers right now. Once something is ready for public consumption, it will be uploaded to a publicly visible directory.