Ulrich Weigand is the most prominent developer working on the core of the
WINE Windows Emulator. We tracked him
down and asked a few questions...
- what editor do you use?
Sometimes emacs, but mostly vi.
- do you use revision control systems of some kind, and have you any
serious thoughts on the matter
Well, I'm using CVS. I haven't really thought much about this topic,
as CVS seems to do what I want (and I'm not really using everything
it offers ...), so there wasn't any reason to.
- What is your favorite language, c,c++, some half arsed scripting
language like perl (duck)
I've used quite a few different languages, from assembly to higher-level
stuff like ML or Miranda; in general I'd say you should choose the language
depending on what you're about to do. It also never hurts to learn a new
language, just to get exposed to new ways of doing things ;-) My all-time
favorite general-purpose language still remains C, however.
- X vs console
Well, I hardly ever use the console; on the other hand, I'm running
X mostly to open lots of xterms ...
- window manager / gnome / kde environment?
I haven't really used either Gnome or KDE (I'd probably have to upgrade
my computer first, anyway :-/). I'm currently running a somewhat
customised fvwm95 setup on my home machine, and OpenWindows (with olwm)
at work (Solaris).
- Favorite hardware and os platform?
I'm using Solaris/Sparc at work, and I rather like it ...
On PC hardware, I prefer Linux.
- Did you ever attempt to write yet another
- window manager?
- widget set?
- X replacement?
No to those three. I guess I'm not really fascinated by UI design;
I prefer lower-level stuff...
Not really. As a teenager, I toyed around implementing a BASIC
extension for the C 64, but I guess that doesn't really count (it was
never released anyway).
- Operating system?
No. I never got that ambitious ;-)
- has anyone offered to pay you/hire you based upon your open source
- What application or component is linux most lacking?
That's hard to say; what annoys me the most is not the 'big' stuff, like
MS Office, that is not available on Linux. For this, there are IMO quite
reasonable replacements available in the meantime. The problem is rather
the many small applets, e.g. provided by hardware manufacturers, that run
only on Windows (one example: our in-house telephone switchboard can be
controlled via computer, but only by running a vendor-provided app that
communicates with the device; this app runs only on Windows, of course...).
Similarly, for many devices, drivers are provided only for Windows; software
to upgrade your computer's BIOS runs only on DOS/Windows etc...
Of course, every single one of these apps can be re-implemented on Linux
(provided you can figure out protocols and the like), but due to their large
number, the situation will probably remain problematical...
- Is that your first interview by anyone?
John "Kate" asks:
- Did you notice if software like VMware & Bochs has put a dent in Wine
Well, Bochs has been around for a long time, longer than I was involved
with the Wine project, so there shouldn't be any recent effect. As to
VMWare, I think it is likely that people who were just looking for any
solution to run the programs need under Linux, will now use VMWare where
Wine isn't yet stable enough ... As it is somewhat hard to put any
-even approximate- figures on Wine usage, I can't really say how much
effect VMWare actually had here.
As to Wine developers, I didn't notice anyone stopping to hack Wine
because VMWare became available ;-) Some developers are using
VMWare for Wine development now, so as to be able to compare Wine
to Windows behaviour without having to reboot all the time.
In any case, VMWare and Wine are not actually in direct competition;
their goals are really different, in the end.
- Do you ever get upset when yet anyother obscure feature of some
Windows program broke Wine? Upset enough to KILL maybe?
No :-) In fact, this is just what I find interesting: finding out
just how Windows works, exactly. [ B.t.w. it's features of Windows
that are the problem, not features of Windows apps ...
- What non-computing stuff do you do?
Well, I'm currently employed at the department for Theoretical Computer
Science here at the University of Erlangen, and what I'm working on
is not really 'computing stuff' ;-) [ Right now I'm mostly working on
my PhD thesis, in the field of mathematical logic / complexity theory ... ]
But I guess you meant what I do in my spare time; well, apart from hacking
I read a lot (preferably SF), and like to listen to good music
- Ever break bones doing it?
No. [ I don't really like those kinds of activities where you tend to
break your bones, anyway ;-) ]
- Have you ever been stalked over the internet?
Not that I'd noticed ...
Did/would you enjoy it the attention?
- Do you see Wine as a viable platform for game and demo
on Win32 and Linux?
I don't really know all that much about game development; so I'm not sure
whether all necessary APIs have been implemented in Wine already (e.g. support
for the latest DirectX version is certainly missing ...). But in principle,
this should be one of the primary purposes of Wine: to allow for parallel
development on Windows and Linux, using the Win32 API.
Especially if you already have a code base on Windows, it would probably be
much easier to use Wine to port your apps instead of rewriting everything to
use different APIs. If you want to start from scratch anyway, maybe you
should look also into APIs that are available on both platforms, like OpenGL
- Are you worried that the Wine effort will falter now that Microsoft
appear to be on the defensive and more developers are looking with
interest at Linux?
Not really. It is of course a good thing that more software developers
and companies are now thinking of releasing not only Windows versions but also
Linux versions of their products. Nevertheless, I think there will always
remain a need for something like Wine, not only because some companies (e.g.
Microsoft) will probably never release Linux software, but also because of
the huge number of already installed Windows applications ...
- Do you know anything about the Dreamcast/WinCE engine and is it
likely that WinCE functionality will be ported to Linux? (whatever that
functionality may be, links to text recognition libs, etc..)
I haven't looked into WinCE at all. We'll see whether the relevant APIs
will be included into Wine; as with all Wine development, this will happen
as soon as someone feels the need to do so ;-)
- Has the recent help from Corel helped much in development?
Yes, definitely. They have been (publicly) involved now for about a year;
a quick check of the ChangeLog reveals that about 15-20% of all CVS check-ins
during that year was code provided by Corel (where the ratio appears to go up
quite a bit lately ...).
- Related, do you feel that open source projects can do _a lot_ of the
ground work in a project but it may need a commercially focused
development team with deadlines to solve a complex problem in a timely
Actually, I prefer the open source development style where you release
something when it's finished, and not when some deadline arrives
And then John "Kate" pips in:
Could a current version of DirectX ever be implemented on Linux, or is
it too much of a moving target?
In Wine, at least parts of DirectDraw 4.0 are implemented; I'm not familiar
enough with DirectX to be able to judge whether more recent versions pose any
serious problems, or whether it's just work to be done ...
Other questions, various people ask:
- What's on your desk right now?
My thesis (which is supposed to be finished Real Soon Now ;-/)
- What don't you leave home without?
Depends on where I'm going :-/
- Which cartoon character would you choose as a role model?
I'm not really convinced cartoon characters would be ideal role models ;-)
- If you are in Ireland, will you drop us an email, and come to
one of the POTDs [Pub of the Day] with us, if we pay for the food & drink?
- What's your favourite colour?
- What's your favourite film quote, and why?
Sorry, no idea ...
- Where's the best place to get good halibut in your area?
That's a hard question ... Sea food in general is not really what
you'd call typical Bavarian fare; we do have excellent carp and trout
from local fisheries, however.
- Why WINE?
Hmmm. I came across Wine more or less accidentally, when I was trying to
run some Windows app on Linux, and it didn't work ;-) I started looking
for the reason, and digging into the Wine code, and got hooked ...
As I said above, what fascinates me most is that working on Wine, I finally
get to understand how Windows really works (at least in parts); I got
rather frustrated at times when using Windows because things wouldn't work,
and you simply couldn't find out why ...
- If you had to choose to work on some other project, what would it
Besides Wine, I'm also involved in the FreeMWare project; other things
I'd like to work on would be software tools like compilers, debuggers,
disassemblers/decompilers/binary translators and the like ...
- What did you use before Linux came along?
On PCs? That would be DOS and later Windows, of course. I've been using
several other machines as well, however (Sinclair ZX81, Commodore C 64,
Atari ST); at the university I've been working with several Unix variants
(mostly Solaris, but also AIX and HP/UX).
- Do you find yourself reminiscing about using them?
Hmmm. Those early machines really were fun ;-) I remember reading
the complete ROM listing of the C64 line by line (those great Data Becker
books ...), and knowing dozens of entry point addresses by heart, but
(except for SYS 64738) I've forgotten everything again ...
- Would you still use it, if Linux hadn't happened?
That's hard to say; but I'd probably have continued using Windows (on PC
hardware). The main point I dislike in Windows is that is tries so hard
to prevent you from finding out what it really does.
I don't really mind if something does not work (or even the occasional
crash), but I find it extremely frustrating if there is a problem and you
simply cannot find out what the reason is, because everything is hidden
under so much semi- or undocumented layers.
Even in DOS, while the available information was already sparse, you still
had a chance to understand what it does, because the whole system was still
simple in comparison. (E.g. I remember fixing a bug in COMMAND.COM of
DOS 3.3 or so using just Soft-ICE and a hex editor ;-) But Windows is so huge
and complex that it often becomes really impossible to understand what's going
on, even if you try.
So I probably wouldn't have cared to switch from Windows to another
proprietary system, with similar obstacles. Maybe I'd've tried out one
of the other free OSes if Linux hadn't come along, who knows?
- What are you reading at the moment?
- C.J. Cherryh: Rider at the Gate
- David Zindell: War in Heaven
- Iain Banks: A Song of Stone
- Neal Stephenson: Cryptonomicon
- Do you think the wine Project will be able to keep up with the
development of MS Windows or will the gap between what windows can do and what
Wine can do increase even further?
It appears that currently the main focus of Windows development is not so
much the OS core, but rather building more and bigger add-ons on top of it.
This has (for Wine) the advantage, that (provided you own a Windows license)
you can simply run those Windows DLLs on top of Wine. E.g. all the new
common controls in Windows 98 are contained in COMCTL32.DLL, which you can
simply run under Wine. On the other hand, KRNL386.EXE, whose functionality
has to be implemented by Wine itself, just added one single additional API
routine from Win95 to Win98 ...
We'll see how much changes with Windows 2000. (There have already been
reports that some of the Office 2000 apps appear to be close to working
on Wine; we'll see how difficult that will prove to be ...)
- Are you involved with the FreeMWare effort, if he is then there
could be huge benefits to be gained in combinations of the two . . . you
know cutting from an x machine into a windows VT on the same box and whatnot
Yes, I also work on FreeMWare (not very much at the moment, unfortunately).
In any case, FreemMWare is IMO not yet in a state where such specific features
are important; we are still hammering out the basics. As FreeMWare as such
is just a virtual machine that doesn't influence the operation of the OS
running inside, something like what you are proposing would need to be done
by an extra client app running inside the VM: say, a tool that queries the
Windows clipboard, passes the data through some 'magic' channel outside the
VM, where another tool converts the contents to X formats ... This format
conversion is indeed something where Wine code might be used.
- At the moment, WINE doesn't appear to have a clear goal for
release. When do you see Wine 1.0 coming out?
I agree that it would be important to have at least some kind of official
alpha/beta test version (all current Wine releases are still pre-alpha,
development only). But IMO there are still some core issues that have to
be fixed first (address space separation, thread-safety issues, modularisation
of Wine code into 'elfdlls', clean-up for non-Intel architecture ...).
I hope that we'll be able to solve these problems and get a stable version
out sometime next year. But as always with open source development, it won't
be released before it's finished :-)
- I managed one to get WineLIB to use a windows dll for VQF playing.
Do you forsee people using WineLIB to write applications in Linux that need a
closed source windows dll?
Sure. IMO that's one of the main features of WineLib: you can use it to
link native Windows DLLs into Linux apps. I think there are lots of
examples where this could be useful; think of ODBC drivers, video codecs,
etc. (That's why I recently added support for executing even 16-bit
DLLs inside WineLib apps, because Win95 drivers tend to thunk down to
- What sort of reaction have you had from Microsoft or have they
responded to you directly?
Well, I certainly have never directly contacted Microsoft on a matter
related to Wine, and I don't think any of the other Wine developers has
- How did you obtain information on closed Windows API? Did you
guess an implementation from a help file?
If there is information in a help file (e.g. the SDK/DDK documentation),
and that information is complete, then we can simply implement the routine
in question according to specs. It gets problematical when exported routines
are not documented at all, or when the documentation is inaccurate or
incomplete. In those cases I just try to find out what the routine does
- Have you ever had a problem with Microsoft deliberatly hiding
information from WINE developers?
Well, as there hasn't been any direct contact between Microsoft and Wine
developers AFAIK, you can't really say that ... On the other hand, there
are certainly cases where the official documentation of routines is not
quite complete, and there are other routines that are not documented at
all. Whether this is done to hinder projects like Wine, or simply because
MS doesn't want developers to use an interface they consider internal and
might want to change in a later release, is a matter of interpretation,
of course ;-)
As an aside, this interview was discussed on the Wine mailing list, the
best archived mail to start reading from is this
Michael Monty Widenius
About the author, Ken Guest.