WINE for Mac OS X in Development 150
TylerL82 writes "The Darwine Project aims to get WINE up and running through X11 on Mac OS X/Darwin.
According to the site, WINE itself compiles rather well, and they'll be using Bochs for the actual x86 emulation.
Quite an interesting idea. It's crazy, but it just might work!"
wwwwoooorrrrrkkkkk (Score:4, Insightful)
It just might work... but veeeeeeery slowly, if Bochs is underneath it.
Re:wwwwoooorrrrrkkkkk (Score:5, Insightful)
Re:wwwwoooorrrrrkkkkk (Score:4, Informative)
Re:wwwwoooorrrrrkkkkk (Score:4, Insightful)
By the way, I hope your numbers are exagguration. If Bochs on a 600MHz processor is incapable of running a program faster than an 8088, then I will be somewhat disappointed.
Re:wwwwoooorrrrrkkkkk (Score:2)
Re:this post is ** OFFTOPIC ** read at your own ri (Score:2)
Re:wwwwoooorrrrrkkkkk (Score:2)
Basically, it's because Bochs is written for platform compatibility, not for speed. Because of that, hardware reordering optimizations and true dynamic recompilation are not possible. Bochs also couldn't be fully register and cache optimized or use some of the PPC hardware tricks such as byte swapping using the PC
Re:wwwwoooorrrrrkkkkk (Score:2)
No,
Re:wwwwoooorrrrrkkkkk (Score:2)
Re:wwwwoooorrrrrkkkkk (Score:2)
Re:wwwwoooorrrrrkkkkk (Score:2)
Re:wwwwoooorrrrrkkkkk (Score:2)
Normally just that case would be $60, that barebones bundle would normally be around $200 if it was decent hardware, and $120 if it was crap. But we'll go with $20 for that.
Memory $70
20gig drive $40
video card $40-$150
keyboard $20
mouse $20
Going with bottom of the line video card (this entire scheme makes for a web browsing box not a gaming box but hey) that's $210 including your mobo combo.
$400 is what MOST people are going to be able to get that box for.
Comment removed (Score:5, Informative)
Error in article - darwine intends to use qemu (Score:3, Informative)
This will be really slow (Score:5, Insightful)
Re:This will be really slow (Score:5, Funny)
True that, but what about other solutions [overclockers.com] for running PC software on your Power Mac G5?
Re:This will be really slow (Score:3, Insightful)
Re:This will be really slow (Score:1)
I'm going to have nightmares for a really long time.
Re:This will be really slow (Score:1)
2004-01-28 19:23:31 Apple G5 converted into a PC (articles,apple) (rejected)
Oh well, I tried.
Re:This will be really slow (Score:2)
----------------
HTTP Error 403
403.9 Access Forbidden: Too many users are connected
This error can be caused if the Web server is busy and cannot process your request due to heavy traffic. Please try to connect again later.
Please contact the Web server's administrator if the problem persists.
Re:This will be really slow (Score:5, Funny)
>I have to say that I'm happy - I can keep on using XP.
Re:This will be really slow (Score:2)
Re:x86 chips (Score:2)
Re:x86 chips (Score:2)
Re: (Score:2)
Re:x86 chips (Score:2)
Re:This will be really slow (Score:2)
Re:This will be really slow (Score:3, Funny)
"Slow" is relative (Score:5, Interesting)
When I want to play an old DOS game on my XP system, I don't mess with a compatibility layer (complicated and unreliable) or reboot to DOS (damned inconvenient). I run DOSBox [sourceforge.net], which emulates not just the CPU, but the sound card and video adapter as well! The overhead is horrendous (Sword of the Samurai takes more than half the cycles on my 1 Ghz Pentium III), but well within the capacity of my system. And that's a real-time application! I imagine the DOSBox would barely notice the overhead for something less CPU-intensive, like a word processor. One of these days, I'm going to have to try Windows 3.0...
I think most Windows desktop applications (database clients, productivity software) would have even less overhead than my old DOS games. But even if they had a lot more, consider the specs of a low-end Macintosh [apple.com]. Its CPU cycles as fast as my Dell's, and the raw crunching power of a G4 is possibly twice that of my PIII. Never mind a dual-processor G5!
Which isn't all that expensive. If performance and usability were the only criteria for buying a computer, I'd be a Mac fanatic. As it is, I hardly ever touch one. Oh well.
Re:"Slow" is relative (Score:2)
Re:"Slow" is relative (Score:2)
Re:"Slow" is relative (Score:2)
Still, you'd need some rather cunning dynamic recompilation to get anything less than a 10x slowdown in MHz terms.
Re:This will be really slow (Score:3, Interesting)
Re:This will be really slow (Score:2)
Re:This will be really slow (Score:4, Interesting)
Bochs, WINE, X-Windows... (Score:3, Funny)
Cool idea, I wish them the best, but I like apps to load within my lifetime...
Not much different from 68K-PPC conversion (Score:5, Interesting)
You have BOCHS run the actual application code. When the code makes a call to one of Wine's libraries, you hit an escape sequence and drop to native PPC code for the actual implementation. At the end of the call, you resume emulation. It would probably require some changes in the shim layers between the DLL exports and the core Wine code, but it could be done.
That worked well for MacOS because applications spent most of their time in OS code (which was native PPC). How well it would work for Windows programs remains to be seen.
This has been kicked around a bin on Winedev.
Disclaimer: IAAWD (I AM a Wine developer, in my own small way - I did some cleanup on the Joystick and ADPCM audio code).
Two things (Score:4, Insightful)
0) The PowerPC was an order of magnitude faster than 68k series. IIRC the 601 had twice the clock and was faster per clock than the 68040. There is no such advantage here.
1) In order to handle everything correctly here the bit-order is going to have to be switched (different endians). This is not fast on a good day.
Re:Two things (Score:5, Informative)
The emulator in question is based on something similar to the FX! Alpha code recompiler; it provides an execution environment, yes, but also dynamically recompiles code into native.
Between the core Windows libraries being "native" (in that they're wine lib, and therefore PPC-compiled native on OSX, not native x86) and the remainder in this 'recompiled' code execution environment, it's possible to strip out much of the endian issues.
Not saying they will - only that there's a lot of room to manoeuvre here.
Free.fr, where the project is hosted, is (of course) being slashdotted.
One of the performance metrics lists the QEMU version of gzip (x86 on PPC) being 5 times slower than native (for example) - and comparison to bochs put bochs well behind (however, qemu had no MMU emulation).
Re:Two things (Score:5, Informative)
That's byte order, not bit order.
Even on a bad day dealing with byte-reversed integers on a PPC requires just two instructions: Load Byte Reversed and Store Byte Reversed. These replace the Load and Store which PPC uses for native data.
Floating point load/store would suffer, though. You would have to use the integer unit to reverse the bytes, as there is no Load/Store Float Byte Reversed.
Note that data in a PPC register has no endianness, because PPC registers, unlike PPC memory, do not provide byte or bit addressability. (The original POWER processor have an "extract bit" instruction which extracted a bit at (big-endian) position n in a register. This instruction was not carried forward to the PPC.)
Re:Two things (Score:2)
Re:Two things (Score:3, Informative)
The PPC was faster per clock cycle. In terms of actual clock frequency, the first PPCs were slower than the fastest 68040s. The PowerMac 6100/60 ran a PPC 601 at 60 mhz. The Quadra 840AV ran a 68040 at 80mhz (all IO to the logic board was done at 40mhz), near the end of the 68k's lifetime, Apple started to refer to such machines as 40/80 wh
Re:Two things (Score:2)
This emulator had a couple of advantages though - first, no endian swapping (as you mentioned) and second, a trick called dynamic recompilation, where commonly used instructions or loops were stored in L1 or L2 Cache. The same developer went on to develop Virtual PC's dynamic recompilation engine for Connectix.
Re:Not much different from 68K-PPC conversion (Score:2, Interesting)
Then there was a long hiatus. First, because Apple was retargeting its efforts at Copland (which turned out to be vaporware) and because the context shift between PPC to 68k code e
Unlikely to provide any speed (Score:3, Informative)
Re:Unlikely to provide any speed (Score:1, Offtopic)
Re:Unlikely to provide any speed (Score:4, Informative)
> running so it could do everything without swapping bytes.
Incorrect. It used specific little-endian processor instructions, but it did not put the chip into little-endian mode.
And, oddly, Virtual PC's performance was never more than 25% or so greater than SoftWindows's performance, and SoftWindows never used them at all, and was a badly-ported 680x0 program by then to boot. So frankly, I have my doubts that this is really going to make that much of a difference.
-fred
Re:Unlikely to provide any speed (Score:2)
spend all that money (Score:2, Funny)
Re:spend all that money (Score:2)
I actually think for what I do (audio editing, sequencing, plus all the normal day-to-day stuff like web, email, etc.) the quality of the software avaliable for OS X is better than what you might get on PC. For example, there are a lot mo
Hardware Emulation instead? (Score:2)
the think is people are not going to be buying zillions of these things. So it may well be affordable at say 100 or 200 dollars to just get a hardware device rather then a slow software emulation. Now youjust have to emulate the bios and map the mac's IO onto the PC.
Re:Hardware Emulation instead? (Score:3, Informative)
Orange Micro [orangemicro.com] used to make a few cards [orangemicro.com] that did this. i still have a OrangePC 550 [orangemicro.com] laying around. it's a K6-2/233 with it's own dedicated 256 MiB of memory and all the external ports you'd expect on an AT PC coming off a cable 'octopus' (save keyboard) - this thing even had it's own BIOS. this card only cost $200 or $300 less then getting a full blown PC, of the e
Re: (Score:3, Informative)
Re:spend all that money (Score:2)
try this [microsoft.com]* or this [sourceforge.net]
if your still stuck in Mac OS 9, you can try this [lismoresystems.com] or even try to find this [fwb.com]
you have a lot of options, open your eyes!
*yes it's owned by Microsoft, but only recently. VirtualPC is still the product i would recomend if you need to run windows Software on the mac. G5 support is still an issue, but version 7 (shipping s
Re: (Score:2)
Re:spend all that money (Score:2)
compiling would be a bit slow, but thats what DistCC is for
I don't mean to whine but... (Score:3)
I am concerned that this will simply be too slow to be useful. Even with a 1Ghz G4, loading OO.o, which uses X11, is very slow (takes minutes to load). I could only imagine loading an exe via WINE via X11 via OS X would be an exercise in patience.
Any info on minimum system specs or performance levels the project is targetting. (I tried to RTFA but there was little substance.)
Re:I don't mean to whine but... (Score:1)
I am, though, concerned for the speed of Bochs. I think it may be sluggish at best, but only time will tell. And for simple Win32 programs, this may just be the way to break people out of the Windows trap.
Mewyn Dy'ner
Re:I don't mean to whine but... (Score:3, Informative)
I somehow doubt this will be any good (Score:1)
Re:I somehow doubt this will be any good (Score:1)
Re:I somehow doubt this will be any good (Score:3, Informative)
As it's been said here, Wine is not an emulator. The reason it works as well as it does is BECAUSE it's running on x86 hardware. Having it emulate x86 is going to really bog it down. I seriously doubt it will work better than VirtualPC. However, if they can get hardware vidoe acceleration working, then it might just be worth it.
Video acceleration comes free, through a few layers of abstraction. Basically, the windows program will call some Win32 API function
FooDrawTextlpsz(string);
The CPU emulator r
Re:I somehow doubt this will be any good (Score:2)
Windows itself is (mostly) abstracted from the hardware anyhow, which was done initially to support Alpha p
Soft Foundation (Score:2, Interesting)
Re:Soft Foundation (Score:2)
Wine itself will be fully PPC compiled, it won't be emulated at all. That includes all wine native
Just Goes To Show... (Score:5, Funny)
Re:Just Goes To Show... (Score:2)
All problems in Computer Science can be solved by looking here [slashdot.org]?
Not using Bochs... (Score:5, Interesting)
Re:Not using Bochs... (Score:5, Informative)
The reason QEMU is faster is because of dynamic translation.
Bochs decodes each and every instruction just before it is executed. So if you have a loop that executes 100 times, you have to decode the same instructions 100 times. That's incredibly slow. I have seen estimates that Bochs needs 160,000 native CPU instructions to emulate a single x86 instruction.
QEMU takes a block of code (typically a whole page) and translates the block into the native instruction set. Then it executes the translated block of code. QEMU tries to keep translated blocks around as long as possible, using dirty bits to determine when retranslation is needed. This is the same technique used by VirtualPC on the Macintosh. It is much faster than Bochs!
There is experimental code in Plex86 to do dynamic translation and Bochs can use Plex86 as the backend (it offloads entire pages of code to Plex86). So it's possible that Bochs will one day achieve the performance of QEMU.
Take note that QEMU is usable today, just so long as you're running purely Linux binaries. It is possible to use QEMU to run Linux/x86 binaries on Linux/PPC for example. QEMU's dynamic translation engine is pretty decent. QEMU doesn't emulate the PC hardware. Bochs does emulate the PC hardware. If you could cherry pick the dynamic translation from QEMU and the PC hardware emulation from Bochs then you'd have something to compete with VirtualPC right now.
Re:Not using Bochs... (Score:3, Informative)
Note that this darwine project is not a virtual machine per se, b
Re:Not using Bochs... (Score:2)
That's great! The last time I checked I knew it was in development, but I didn't realise how fast the work has been progressing. Truly amazing.
Bochs? (Score:5, Informative)
Headf*ck!! Difficult to understand... (Score:3, Interesting)
Many of the core Win32 api's and DLL's have been re-implemented as Linux native equivalents as part of the wine project. If these are compiled as linux ppc versions, and you have an x86 emulator running the non-ppc bits, you get a really bizarre hybrid of code executing. It will be really interesting to see how this works. Its also pretty difficult to say how fast or slow this thing is going to be, due to the strange architecture. My brain is having a confusing time trying to figure out how they would string these components together.
Nonetheless, good luck to them, its an ambitious project and probably has some far reaching implications for the future.
Lemme get this straight... (Score:3, Insightful)
x86 assembler instructions translated to PPC assembler instructions (two fundamentally different microarchitecture designs, CISC vs RISC and endian issues) using the Win32 API translated to Xlib (X Windowing System) talking to Apple's X Server translated to PDF commands and sent to Quartz.
Can you say "speed demon"? If you need to run Adobe Illustrator that badly, then at this sort of speed it'll probably be easier to decompile it, port it and recompile it!
Re:Lemme get this straight... (Score:1, Funny)
Re:Lemme get this straight... (Score:2)
Re:Lemme get this straight... (Score:2)
Re:Lemme get this straight... (Score:1)
Re:Lemme get this straight... (Score:2)
Re:Lemme get this straight... (Score:2)
Premiere through 6.5 for Mac (Score:2)
Re:Lemme get this straight... (Score:2)
Re:Lemme get this straight... (Score:2)
As to the rest of your comment... what ever they come up with as long as it doesn't run a full implementation of Windows it will be way faster than Virtual PC. Seriously, all that extra bloat really takes it's toal.
some people (Score:5, Funny)
Re:some people (Score:2)
You think that's bad? (Score:2)
Some people really WILL do anything to play minesweeper.
-fred
Looks like your average OS project (Score:3, Funny)
Cute project name! (Score:2)
I thought it was a typo at first.
How about me? (Score:3, Funny)
Re:How about me? (Score:2)
(How many people will get this post?)
Re:How about me? (Score:3, Informative)
Actually, there is an effort to port Wine to run under MinG and Cygwin. The idea is that you could run a program under native Windows, then run it under Wine, and observe the differences. Then you try to make Wine more like Windows.
It was only a matter of time (Score:2)
A previous poster said they didn't think it would be very fast. In VPC, the slowest stuff is graphics. A native Win32 API would handle graphics crap natively, which would be a heckuva lot faster, probably faster than VPC's special graphics driver approach. As to how much time most windows apps spend in the APIs, I wouldn't know... but consid
Re:It was only a matter of time (Score:2)
Re:It was only a matter of time (Score:2)
Just Windows.
Convert x86 binaries into PPC? (Score:3, Interesting)
WINE is smart because it re-implements many Windows DLLs natively. QEMU is smart because it caches and executes native code built from x86 code. Taken together the speed should be noticeably better than VirtualPC.
But the most optimal method by far would be to convert x86 binaries into PPC application packages that link to native libraries / frameworks corresponding to Windows DLLs. Such translated binaries would require no emulation layer, just the presence of the necessary libraries.
But can you imagine how complex it would be to convert x86 code into PPC code? And yet part of me thinks this brute-force method is almost trivial. It's simple enough to disassemble machine language. And one could certainly disassemble x86 code into a working C equivalent where C variables correspond to x86 registers.
Besides the fact that this would be an exacting and laborious task, what other barriers exist for this approach?
Re:Convert x86 binaries into PPC? (Score:2)
Hell, I'll bet even a C3 or Transmeta chip would do better than an emulator.
Apple could sell the cards at a profit for under $200.
Emulation not fast enogh? Upgrade the card to a faster version, maybe they should have two if
This could be a very good thing... (Score:2)
No so much from the perspective of getting apps running on the Mac, but from from the perspective of getting Apple interested in this way of getting apps running on the Mac.
From my understanding wine itself already compiles 100% PPC including wine dlls. Now all a developer has to do is port their own functions to PPC compilable code instead of rewrite from scratch.
A HUGE chunk of the work in a gui windows app is dealing with the win32api. Porting to the Mac means rewriting all this... now it doesn't, n
Re:This could be a very good thing... (Score:2, Insightful)
They really screwed up this article - QEMU (Score:4, Insightful)
QEMU is a dynamic translator that decompiles x86 executables and recompiles them into PPC, caching the results. You can find the qemu project here [bellard.free.fr].
Not only will this work, but it will work FAST. In fact, it will probably even be possible to drop windows DLLs onto your mac in the same way that you drop them onto Linux in order to get Wine to work better (using native windows DLLs instead of Wine clean-room versions). Remember, QEMU is a dynamic translator.
Re:I saw Wine on log, Indiana Jones game demo (Score:3, Informative)