Wine on Windows - wiki notes
shacklein at gmail.com
Wed Mar 11 17:55:34 CDT 2009
2009/1/1 Steven Edwards <winehacker at gmail.com>:
> Honestly though I think this is the wrong approach. If you want to
> emulate an older windows environment you should look at something like
> VMware's Thinapp. The Wine on Windows method is going to involve
> either emulating Win32 on Cygwin on Win32 or Win32 on POSIX on NTOS. I
> think its too many layers of abstraction and redirection. I don't know
> the internals of the Thinapp design, (if Ge van Geldorp is lurking he
> can explain more), but I believe it uses Side by Side assemblies to
> link on older versions of Windows dlls or Windows replacement dlls to
> trick the applications in to thinking they are on older Windows. You
> could take the existing Wine for Mingw32 dlls and a good bit of other
> Wine code and try to start a project doing something like this without
> the overhead of the wineserver and posix emulation.
> A FOSS Thinapp clone sounds like a reall fun project actually...
I see two advantages of Wine over VMware technology here.
1) Wine is free, VMware Thinapp is trial/commercial license
2) VMware is a virtual machine, even for Thinapp. You need a copy of a
complete operating system to run apps inside it.
The argument could be made that a virtual machine (e.g. VirtualBox
OSE, QEMU or KVM/QEMU) is a better solution to getting Windows
programs to run than using Wine (in particular VirtualBox which
supports hardware accelerated OpenGL and, using wined3d in the
development version, DirectX). So why has there been any development
on Wine at all over the past 16 years or so? Because Wine is *not* a
complete operating system, and because Wine is distributed under free
(beer and speech forms) licenses.
I also see two problems with the idea of creating a Wine-based thinapp clone.
1) Effort. You're talking about a redesign of Wine that involves
removing POSIX and wineserver dependence. This is not a trivial thing
in any way, shape or form. Wine is designed from the start to provide
a Win32 compatibility layer and environment on Unix and Unix-like
systems. You would also have to remove all X11 dependence. (I'm not
sure how Wine on Windows works right now, is there a DirectX
pass-through or does it use an X server?)
2) Wine already allows you to change what Windows version is reported
to applications on a per-app basis. I'm unsure what component is used
for this, but I suspect it's built somewhere into wineserver. Someone
correct me if I'm wrong :)
More information about the wine-devel