Interview - Jim White of the Darwine project 233
Kelly McNeill writes "The Darwine project intends to port and develop Wine as well as other supporting tools that will allow Darwin and Mac OS X users to run Windows Applications. It is an open source project led by a growing number of developers including Emmanuel Maillard, Pierre d'Herbemont and Sanjay Connare. osOpinion/osViews had the privilege to speak to with the project's administrator, (Jim White) to tell us more about Darwine and where the project is headed. For those that don't know, Darwine is Wine (Wine Is Not an Emulator) for OS X on PPC. The following is the transcribed dialog of their conversation which is also available in an audible format on osRadio.com."
Confused.... (Score:5, Interesting)
You can have it both ways! (Score:2, Funny)
Re:Confused.... (Score:5, Informative)
Re:Confused.... (Score:4, Funny)
Re:Confused.... (Score:4, Funny)
No problem, I got ya covered (Score:3, Funny)
Wine Isn't Not an Emulator
Wine Is Now an Emulator
Wine on os x Is doing some New things, possibly including a bit of Emulation
Re:Confused.... (Score:3, Insightful)
Re:Confused.... (Score:5, Insightful)
wine the program loader - the part you use to run windows binaries on linux is close to an emulator. Really just more like a binary format like elf or a.out that is run in user space rather than kernel space.
libwine is the library used to port the windows api to Linux. it is similar to gtk or qt in that it allows a program to make winapi calls and they get translated to the appropriate X calls similar to any of the other Linux GUI libs.
wine the program loader wouldn't be very useful on OSX because there probably isn't many apps for the windows ppc port. libwine on the other had will allow the easy porting of windows applications to OSX or Linux. So far this hasn't been exploited as much as it should be, mainly due to the wine folks wanting a perfect 1.0 release, when they may be better off getting what they have so far as stable as they can and doing a 1.0 release with X features supported and Y features not supported. then go from there. (their project their decision though)
Re:Confused.... (Score:5, Informative)
I got a better idea! (Score:5, Interesting)
I'm serious. It would be only fair since Wine is written to run Windows apps on an OS that Microsoft didn't intend.
-b
Trouble is... (Score:5, Insightful)
Kjella
Re:Trouble is... (Score:5, Insightful)
If you think about it, the main difficulty of getting Windows software companies to provide a Linux version is the tiny market share of Linux compared to Windows. However, companies that are producing software for the Mac are already serving a 3% market share plaform. If they can reasonably easily do an X86 build for Linux, they could almost double their potential market.
Re:Trouble is... (Score:2)
MOL (Score:3, Informative)
Re:Trouble is... (Score:2)
Why is this? I've never heard this. I would have thought the PPC instruction set to be simpler than x86.
Re:Trouble is... (Score:5, Informative)
In emulation, to keep things fast, you would like to dedicate one hardware register for each emulated register, plus you need hardware registers to actually run the emulator!
A RISC ISA emulating a CISC ISA will enough registers to do so. (r1 = AX, r2 = BX,
1) need to use the most flexible registers (AX) to run the emulator (e.g. load the RISC opcode from RAM into AX, extract the opcode field, compare it to your opcode table, and dispatch, because AX has the best support for bit operations, let's say)
2) also use the special-purpose registers to run the emulator (e.g. use an index register to index into your opcode tables)
3) leaving too few registers to hold all the emulated registers (oops, we only got r1..r3 in the left over registers; what about r4..r32...)
4) having to use "weak" or wrongly-specialized registers to hold the key RISC registers which are heavily used in the actual RISC program. (E.g., your program is trying to number crunch so it wants to do a lot of floating-point math on data which is being stored in some left-over CISC register which doesn't support floating point natively.)
[note, I'm well aware that x86 is not a CISC hardware implementation under the hood, but to the assembly programmer, it presents a CISC instruction set architecture. Emulating the underlying microcode RISC engine, however, would likely need even more registers, causing the same problems, so you would tend to emulate the CISC model.]
Re:I got a better idea! (Score:2, Interesting)
(I'm half-serious, by the way. GNUstep does implement a lot of the necessary APIs.)
Re:I got a better idea! (Score:5, Insightful)
Re:I got a better idea! (Score:5, Informative)
How about a way to run Max OSX apps in Linux???
Well, if you're on a PPC architecture already, there's Mac-On-Linux [maconlinux.org]. Though, I'm sure that by the tone of your comment, you actually meant x86. Well, ask and you shall receive. For the x86 folks (or just about anyone on Linux), there's PearPC [sourceforge.net]. And you know what? They're both open source...
You deserve to be modded up (Score:2)
Re:I got a better idea! (Score:3, Insightful)
Or try Sheep Shaver [uni-mainz.de], a portable PPC emulator, although they admit to not being able to run OS X yet. (And you still need a PPC ROM image)
Re:I got a better idea! (Score:2)
Re:I got a better idea! (Score:5, Informative)
Re:I got a better idea! (Score:5, Informative)
In light of all the excitement over C#/Mono, It's sad that nobody knows about this.
Re:I got a better idea! (Score:3, Informative)
The only real difference between GNUStep and Mono is that GNUStep apps use Objective-C instead of C#, and get compiled to native code instead of P-code (or whatever) and so don't require a virtual machine.
Re:I got a better idea! (Score:5, Interesting)
Only for linux on x86. Why does everyone assume that's the only place you'll ever find linux?
Re:I got a better idea! (Score:2)
Why does everyone forget about Linux for Alpha, Sparc, and MIPS? The world does not completely revolve around PPC and x86.
-Erwos
Re:I got a better idea! (Score:5, Insightful)
Re:I got a better idea! (Score:3, Insightful)
HTH
Re:I got a better idea! (Score:5, Informative)
One could argue that there are PC apps that have the same purpose as these apps, but some are merely adequate while others are near offensive.
(Shake would be included too, if it weren't for the fact it was a Linux app before it ever was a Mac OSX app. Still, the Linux version likely won't see updates anymore.)
Read the site (Score:5, Informative)
"Developers should be able to recompile their Win32 Apps using WineLib and make them work in Mac OS X..."
Re:Read the site (Score:3, Insightful)
like, not totally useless.. but pretty much. the reasoning being that app makers won't bother making such a port..
well, if they just want some opensource windows only programs ported more easier maybe then..
bzz was wrong.. (Score:3, Informative)
that comes later then.
A mature Darwine will be far from useless (Score:5, Insightful)
When the project is complete, OS X users will be able to open EXE files with Darwine. Darwine will use QEMU to execute the x86 instructions, however when the program makes calls to the Windows API, Darwine calls those functions in WineLib compiled natively for PPC.
So, where Bochs and VirtualPC and others like them emulate the entire operating system environment (Emulated BIOS, emulated hardware, emulated Windows, and finally the emulated x86 application
Thus for most Windows applications, the GUI and event handling and everything else the Windows API is good for will be executed in native PPC code. QEMU will then emulate an x86 processor for all the compiled code in the application.
Imagine some internal corporate application that uses all standard Windows widgets to let a user interact with some data: all those widgets plus the menu and root pane will be handled by the native WineLib code except when the programmer has included some special functions or number-crunching routines that are emulated on QEMU's fake x86.
Think about it -- It's a lot better than having an entire emulated instance of Windows 98 (and maybe even an actual x86 box) to do the same thing.
Good thing... (Score:2)
bad moderation (Score:2, Informative)
Sign me up! (Score:3, Interesting)
--
Re:Sign me up! (Score:2, Informative)
Re:Sign me up! (Score:2)
Clarification (Score:5, Insightful)
So yeah it will involve an emulator on PPC but remember that Darwin is also on x86. So WINE will still be NE but will be used in conjunction with something that IE (is an emulator).
The emulator part is... (Score:4, Informative)
Is there really a need? (Score:5, Interesting)
This seems like a solution looking for a problem to me.
Re:Is there really a need? (Score:5, Funny)
Did I miss any out
Re:Is there really a need? (Score:2, Insightful)
Sure, there's MySQL etc, but if you have to have Access, you have to have Windows.
Re:Is there really a need? (Score:5, Interesting)
I feel bad for anybody forced to use Access, it's an utter POS. There are way way WAY better personal databases than Access out there. That said, the strength of Access isn't its' db engine but rather it's Crystal Reports like interface that doesn't really require any underpinning DB knowledge to use so I can understand the attraction. As a total side note, are there any level 3+ *open source or free* MS Access JDBC drivers??? I found a bunch of proprietary implementations but nothing redistributable.
Re:Is there really a need? (Score:4, Insightful)
Re:Is there really a need? (Score:3, Insightful)
Re:Is there really a need? (Score:2)
What are they? (This is not a troll...I seriously would like to know, because I have a Mac and was thinking of getting FileMaker, which seems pretty cool with version 7)
Re:Is there really a need? (Score:4, Insightful)
And yes, there is an open source JDBC driver for Access. But it is so poorly supported (by developers that have no time to even write documenation of how to use it and who don't speak English) that you are much better off dropping $100 or so on one of the commercial replacements or writing your own.
Re:Is there really a need? (Score:3, Interesting)
Re:Is there really a need? (Score:3, Insightful)
Re:Is there really a need? (Score:3, Informative)
Or any of the thousands of PC only programs out there that people need to do there jobs. Many vertical market programs only run on the PC if it became easy to write for the Mac and PC using Winelib you could see some apps become available for both platforms
Re:Is there really a need? (Score:3, Insightful)
Core engineering applications are
1) Vital to the success of the products you are engineering
2) Usually the worst citizens in the Windows world, so they are the hardest to emulate.
3) Dwarf Windows in cost.
Who in their right mind is going to run a critical engineering app in an emulator?
1) Run into any issue, call up the CAD vendor and have them say "we don't support running it on anything but real 100% windows....click, dial tone,..."
2) Make critical engineeri
Re:Is there really a need? (Score:5, Insightful)
Why do they do it?
Because they can.
Re:Is there really a need? (Score:4, Informative)
Wine allows us to run these applications on Linux/x86. although this wouldn't be of much use for OSX wine is a very useful program and Office/Outlook are more like benchmarks rather than needed applications. with OpenOffice and evolution there is little to no need for Office and Outlook, there is a need for the hundreds of small un-replaceable un-portable applications.
I just realized this doesn't really answer your concern, but still I think it is good information so I will post it anyway.
More pollution of OSX UI (Score:4, Interesting)
Of course the paucity of applications must be addressed in some manner - its quite clear that many ISVs are not addressing OSX or have any plans on doing so as it meanders around 3% market share.
I'm continually amazed at how OSX has reached the unassailable status of Google, Linus, etc in the /. mindspace. My wife purchased a new system that manifested numerous oddities and inconsistencies that I would have though Apple would have dealt with. For starters - a second disk installed by Apple for which my wife did not have write access. Duh! Make preinstalled hardware work the way users think it should. When she went to repair this, I was asked "what is group wheel?" To which I replied it is something a Mac user should never have to know about. The unix stuff is still showing up in odd places.
Re:More pollution of OSX UI (Score:5, Insightful)
Its bad enough that Metal and Aqua are mixed interchangably without any rhyme or reason...mix in X11 apps and now Windows apps and I think we can safely say that visual consistency in OSX is gone.
There is actually supposed to be some rhyme and reason to the Aqua/Metal looks in OSX:
Apple Human Interface Guidelines [apple.com]
See the section on Windows -> Window Appearance -> Brushed Metal Windows
However, if developers choose not to adhere to these guidelines, there's little that can be done, unless the apps get hacked. Turning on metal is as simple as toggling a switch in XCode and Interface builder. You can disable the metal look in Safari by editing it's preferences as well...
Re:More pollution of OSX UI (Score:3, Insightful)
The OS X Metal look is rarely good UI, unfortunately.
Re:More pollution of OSX UI (Score:5, Interesting)
The whole POINT of this is that it is good UI to allow a person to manage a window using as much of the non-dynamic visual real estate as possible. But there's no way for a user to know what's dynamic and what's static.
This is what the metal look acheives. It says, "Hey, this part of the screen is not for user entry. So you can grab it." It is intended for data management forms and application launcher forms that have mostly static content aras -- programs that are mostly for dynamic user managed information (such as Word document windows, etc) should really be Aqua, because you're going to want to use as much of the screen as possible for user information.
I like the idea of Metal (because I like the idea of using otherwise useless space as a way to get a grip on the window), but I will admit it's damned confusing the way some windows CHANGE their L&F when their context changes. For example, if you close the toolbar on a Finder window (using the bubble in the upper right hand side), the window's L&F changes. It's a real WTF moment, especially since I don't consider the document source selector on the left hand side of the screen to be a toolbar.
I will not argue whether aqua or metal is the nicer interface. It doesn't really matter to me...they're both simple, monochrome designs that abstract the utilitarian nature of windows from the work inside them. They're pleasant without overshadowing the importance of the controls inside them.
Re:More pollution of OSX UI (Score:5, Interesting)
Re:More pollution of OSX UI (Score:2)
(yeah, the Classic menu bar is two pixels taller than it is under native Mac OS 9, but nobody cares.)
Wonderful... (Score:4, Funny)
Wine is a godsend....but..... (Score:5, Interesting)
There's also the famed Photoshop incompatibility, that crossover has managed to overcome. When will the code be incorporated back into Wine?
I realize Mac users have no need for a Windows version of photoshop, but I wonder if Darwin is going to be able to overcome the obstacles that Wine has not been able to.
Support for
Re:Wine is a godsend....but..... (Score:2)
Re:Wine is a godsend....but..... (Score:2)
in "second phase" with the darwine integrated to qemu you would be able to run native x86 windows apps.. or something.
just get the damn vpc or run them in full qemu'ed windows environment now..
Re:Wine is a godsend....but..... (Score:3, Informative)
that crossover has managed to overcome. When will the code be incorporated back into Wine?
Sorry to break your preconceptions, but for sometime now Crossover has been very diligent in submitting their improvements upstream into WINE. Photoshop compatibility should already be checked in...
Re:Wine is a godsend....but..... (Score:4, Informative)
Re:Wine is a godsend....but..... (Score:2)
The point is that the structure
Re:Wine is a godsend....but..... (Score:2)
Re:Wine is a godsend....but..... (Score:2)
Hell, I couldn't even get it to run Minesweeper! I copied over winmine.exe and I get:
Is there something more I need to do?
Best way to run Windows apps (Score:5, Informative)
I have a Windows box with XP Pro to which I connect using Microsoft Remote Desktop Client for Mac (There's a port of the OSS RDesktop app available too).
Bearing in mind how cheaply one can acquire an x86 PC capable of reasonable performance (no app run over remote desktop will ever be *fast*), this has to be the most efficient way for users of low-powered macs to run Windows apps.
You can even full-screen it and freak out your mac-addict friends by showing them a Mac with, apparently, Windows installed on it.
Re:Best way to run Windows apps (Score:4, Informative)
Literally months go by sometimes before I need to do anything with Windows. An emulator is much better suited for someone like me than another PC I'd rarely use.
Too bad it's not the other way 'round (Score:2, Insightful)
Anybody doing this kind of thing?
Re:Too bad it's not the other way 'round (Score:3, Informative)
Please stick to drivers at first (Score:3, Interesting)
Bert
Yum (Score:5, Funny)
Maybe I need to cut back on the Monday morning drinking.
Ignorant Question (Score:2)
If this i
Re:Ignorant Question (Score:2, Insightful)
Will this work on a G5? (Score:2, Interesting)
Re:Will this work on a G5? (Score:3, Informative)
I'd rather have winelib ported to the mac (Score:3, Insightful)
A few tweaks here and there for byte ordering stuff, and presto, a native Mac app. Plus you could have conditional logic to be even more mac-like. No drive letters, etc.
Any good reason not to take this approach?
cathedral vs Bizarre (Score:3, Funny)
I, for one, will always take the Bizarre approach.
But what about security ? (Score:3, Funny)
So, does this qualify as a security hole ?
After all, if this works well, then Mac users will get to enjoy all the Windows security holes...
Doesn't work (Score:3, Informative)
I'm just gonna check back when it actually works.
Re:Huh? (Score:5, Insightful)
Do you realize that in less time than it took for you to write your questions, you could have clicked the link and saw that it uses QEMU to map x86 to PPC instruction calls.
It didn't even require a 'googling' on your part, just a click.
Re:Huh? (Score:5, Funny)
Re:Huh? (Score:4, Insightful)
Re:Digital Convergence (Score:5, Insightful)
And this helps them sell Apple hardware, how, exactly?
Re:Digital Convergence (Score:4, Insightful)
Re:Digital Convergence (Score:4, Informative)
There, now you can have an iPod too.
Re:Digital Convergence (Score:3, Insightful)
Otherwise, it wouldn't be worth the development time, the support calls or the advertisement.
There just aren't that many Linux users period, even fewer who use a particular desktop toolkit (GNOME or KDE) and even fewer who would buy the iPod even if iTunes for Linux was available. If there's no money, there's no reason to port.
Besides, there are dozens of iPod management tools for L
Re:Digital Convergence (Score:2)
Re:Digital Convergence (Score:3, Insightful)
Re:What about the "INE" part? (Score:4, Informative)
Re:What about the "INE" part? (Score:3, Informative)
wine is split into two parts.
wine the program loader - the part you use to run windows binaries on linux is close to an emulator. Really just more like a binary format like elf or a.out that is run in user space rather than kernel space.
libwine is the library used to port the windows api to Linux. it is similar to gtk or qt in that it allows a program to make winapi calls and they get translated to the appropriate X calls similar to any of the
Re:Get these out of the way right off the bat (Score:2)
>Get some new material!
That was my whole point - they are tired, people still use them, so why not state them all at the front so some REAL discussion can happen.
Re:Cloning Cocoa? (Score:3, Informative)
Re:Cloning Cocoa? (Score:3, Informative)
Then you're not talking about cloning Cocoa, you're talking about cloning Quartz. Huge difference.
Start with GNUStep and GhostScript, and work from there.
Display Ghostscript (Score:2)
Re:Display Ghostscript (Score:2)