06-27-2011, 01:51 AM
That's right. WINE actually is an acronym that stands for Wine Is Not An Emulator. I've been active in the WINE-users forum this summer.
You have an operating system, the kernel, which is ran directly by the processor. The kernel, in turn, runs all other programs. A kernel can decide to fully run a program, run part of a program, or not run any of a program. It can deny a program access to anything because IT'S what's running it.
So the top half of the kernel is a "program intake" where programs go in and may or may not get their code passed onto the processor.
The bottom half of a kernel passes on accepted code to the processor and uses the processor as the kernel's eye into the hardware world. The bottom half deals with hardware.
WINE mimics the top half of the NT kernel ("NT" means "Windows" as far as we are concerned here) because Windows programs are ran through WINE (like the "top half"), WINE does have a very similar architecture to the NT kernel
, and it does manage the memory (RAM) of the programs ran through it.
But it is not a kernel because it doesn't have the bottom half. In fact, you cannot install a driver into WINE, it's main limitation. So Windows hardware emulation programs (which rely on a driver as the source of hardware emulation) like Daemon Tools cannot work in WINE.
Instead of bringing that code to a processor, WINE passes some of that on to the operating system to pass to the processor, and the parts that request function calls provided by Windows (and thus would have to be handled rather than passed to the processor), WINE translates into equivalent function calls the operating system can understand.
The result is that the operating system sees each Windows program, since it IS running them. They're just translated by WINE.
So if you run Oblivion (a game) through WINE in Mac OS X and bring up Activity Monitor, you will see BOTH the wine process and the oblivion.exe process! Mac OS X IS running Oblivion. No processor emulation, no virtual machines, no virtualization...none of that. In fact, it all gets rendered on your graphics card (if you have one)! That's because it translates the graphics calls; it doesn't compute them.
If you had VirtualBox in Mac OS X, had Windows in that, and ran Oblivion in there and then went back to Activity Montior in Mac OS X, you would see the virtualbox process, but you would NOT see oblivion.exe. What goes on inside VirtualBox is a blackbox to the host operating system.
Likewise, if you had a PlayStation emulator and ran a game in that, you would see the PlayStaion emulator process, but not the game inside.
WINE is Not an Emulator.
For the programs that work in WINE, WINE is a MUCH better alternative than a virtual machine because you don't have to put the load of a WHOLE OTHER OPERATING SYSTEM on your computer in addition to Mac OS X or whatever OS you have (at the same time). Also graphics get rendered on you REAL graphics, not emulated graphics. Plus you don't have to pay money to have a legal copy of Windows
. And you don't have to put the load of hardware emulation and a hypervizor on your computer (you have to emulate the hard drive, BIOS, network adapter, etc.). And you aren't slowed down by working out of image files. And you save all that hard drive space. And you don't have to put up with Windows.
WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X
WineHQ Forums View Forum - Wine Users
WineHQ - Wine Application Database
FrontPage - The Official Wine Wiki