Mike Hearn wrote:
...
As for swapping functions, the preceding discussion reiterates my belief that we should confine such fussy business to the relatively small bit of code that calls into OS X, will be relatively stable over the long haul, and over which we have full control. And as for the concern over having Wine be X86 and hence incurring emulation overhead, this would be one of the first bits of code which would be a candidate for having its emulator-compiled code cached.
If you look at how many native imports Wine requires on Linux to get full functionality I don't think you can say it's relatively small. It's many thousands of functions, possibly more. It's hard to measure because so much is dynamically loaded.
This is the more general project that has emerged from my initial idea for Darwine, namely X86/Linux binary compatibility for OS X. There are quite a few folks working on various combinations of Linux/BSD/Darwin/Mach compatibility, but only for the native processor. While there has been a ton of end user interest in Darwine in order to run Windows apps, I have found that integrating CPU emulation into the kernel compatibility layer attracts broad developer interest. As we work through the implementation of Darwine I believe we will have solutions for all these problems and OS X will indeed become quite the Swiss Army knife of platforms.
Jim White