Future Android gadgets could run Windows software, thanks to work being done to port the Wine compatibility shim to Google's popular mobile platform.
Wine - a recursive acronym from Wine Is Not an Emulator - was originally developed to allow selected Windows applications to be installed and run under Linux without support from the original developer. Since its inception, it has grown into a popular tool for running everything from Adobe Photoshop to new-release games - and while not everything runs without issue, its compatibility database
is pretty impressive. For those who prefer commercial, rather than community, support, a paid-for Wine fork dubbed CrossOver
is available for Linux and OS X.
Now, Wine is reportedly heading in a new direction with plans to release a version of the software that runs under Google's Linux-based Android mobile platform - potentially allowing smartphones and tablets to install Windows software and run it alongside native Android applications.
It wouldn't be the first time such a thing has been attempted: a port of DosBox
emulates a 486-era PC and allows Android smartphones to run older MS-DOS applications, while a version of the QEMU machine emulator
provides the option to emulate a somewhat more powerful system in order to install Linux or, with a fair bit of hacking, an older Windows version.
Both options suffer from serious performance problems, however - mostly because they run an entire operating system on top of Android. Wine, by contrast, is a compatibility layer that translates Windows API calls into their Linux equivalents - meaning applications can be executed without the need to have Windows running in the background. It's a system that has served Linux well, but the translation to Android is unlikely to be smooth.
For a start, there's the issue of instruction set architecture. Windows apps are developed and compiled for the x86 instruction set or its 64-bit equivalent, while the overwhelming majority of Android devices are based on ARM architecture processors - discounting a small number of devices running Intel's x86 Atom chips. The two aren't directly compatible, which is why DosBox and QEMU show often poor performance: they are having to emulate a full x86 processor on an ARM chip optimised for low power draw in a mobile device. The result is something quite some distance away from native performance.
Wine solves the issue of running a full version of Windows in the background just to access a single app, but it can do nothing for the issue of different instruction set architectures. Full details of how Wine for Android would operate are not yet available - the closest thing is a report from Phoronix
that showed the software running on an x86 MacBook Pro in the Android SDK - but it would have a few options: emulate an x86 chip, like QEMU and DosBox, with all the performance penalties that implies; run only on x86 Android hardware, which is a tiny fraction of the market; or require developers to recompile their Windows applications for ARM before they would be compatible with the Wine shim.
Thus far, it's not clear what direction the project will take - but it's certainly likely to be a considerable time yet before you're firing the desktop version of Internet Explorer up on your Android smartphone.