Am 02.04.2011 03:14, schrieb Charles Davis:
On 4/1/11 6:19 PM, Yale Zhang wrote:
Fellow developers,
I'm thinking of starting a VM project to allow running x86 Windows apps on ARM Android. This will obviously involve binary translation. I've read about QEMU's tiny code generator and think for a usable experience, the intermediate micro-op representation will have to be abandoned, and use a more efficient, though less portable x86 to ARM translator. I also saw some Google SOC project that tried to incorporate LLVM into QEMU, but with disastrous slow down if done naively. I still think it's worth to do so, but lots of care will need to be done to only optimize code that needs it like Sun's HotSpot Java compiler does.
Maybe first to ARM Linux and then to ARM Android?
Questions:
How useful would this be and how much interest?
Obviously, this will be a huge project, and I just want to gauge the
interest before I jump in. Microsoft will be releasing Windows for ARM soon, so there will be no need to worry about running Office, Matlab, Visual C++, etc on ARM, leaving only legacy applications and games to benefit from binary translation. I'm mostly interested in seeing some 3D games run on my Xoom.
see: http://wiki.winehq.org/ARM http://lists.terrasoftsolutions.com/pipermail/yellowdog-general/2004-June/01... http://www.oesf.org/forum/index.php?showtopic=14829 http://wiki.winehq.org/MacOSX http://wiki.winehq.org/MacOSX/QemuWork
If your're interested in this project, please reply.
I'm not competent enough to mentor you, but, being a Mac user, I have a story to tell you. It's about a version of Wine that did incorporate binary translation: Darwine. Darwine was separate from mainline Wine; it incorporated QEMU directly and used it to translate x86 to PowerPC code. In a faraway time when Macs used PowerPC CPUs, Darwine allowed x86 Windows apps to run on Mac OS X. Now that Macs aren't built PowerPC chips anymore, Darwine has been abandoned. You might consider using it as a starting point, though.
I know about that and was told it was never implemented because of problems with the endianess (PPC big, x86 little), so i wonder if that ever worked, or was just planned to work? Any Darwine user around?