The Android G1 and the iPhone do not initially seem like ideal desktop computing platforms. They are small, with limited screen space and compromised keyboards. And yet both of them are running fully capable Unix solutions under their hoods. So it's not unthinkable that you could deploy traditional windows-icon-menu-pointer (WIMP) desktops onto these devices, understanding the compromises involved.

On the Android front, ghostwalker of the Android Fanatic site recently posted directions for running X11 on Android devices. The server runs from a Debian shell that you can install on your jailbroken Android G1. The shell offers a command-line interface that you must run as root on your system; your G1 must be jailbroken to achieve this.

Once you have root shell access, follow the directions in ghostwalker's post to install a VNC server and the GUI of your choice. Ghostwalker recommends LDXE, which he writes is "an energy saving and extremely fast and performing desktop solution. It works well with computers on the low end of the performance spectrum such as new generation netbooks and other small mobile computers." Although you could get away with installing more advanced GUIs such as GNOME or KDE, these would likely run very slowly on the G1.

The instructions go through setting up the VNC resolution to 480x320 to match the G1 display and show you how to run X11 services in the background. It's essential that these services are backgrounded because you need to return to the Android menu to access those services from a client.

With the VNC server and the desktop running in the background, you connect to the VNC server from a VNC client. Although you can obviously connect from a personal computer (or even from an iPhone for that matter), the idea here is that you run the VNC client on the same G1 as the server. This brings up the X11 GUI running natively on Android. The following screen shot shows an LDXE session.

There's absolutely no reason that a similar solution would not work on a jailbroken iPhone outside the need to port the software to Apple's version of Unix. I looked around this morning to see if anyone had done so but came up empty-handed in my search. The iPhone offers both VNC servers as well as VNC clients but no X11 support that I could find.

For the moment, if you want to add a WIMP interface to your iPhone, you need to take a trip back through time. The open source Mini vMac effort has been ported to the iPhone. Mini vMac emulates the 4MB Mac Plus. And, as these screen shots show, provides a full windowing interface, albeit one that dates from around 1986.

Mini vMac on iPhone

Unfortunately, I was unable to actually test the system out. Cydia refused to recognize the namedfork.net repository and my attempts to check out the most recent svn source failed. Even after installing the software, you are responsible for tracking down a Mac Plus ROM image and any Mac disk images you wish to run. As far as I can tell, the emulator does not gain complete access to your iPhone Unix file system; you're limited to the disk images you create and import.

Leaving aside the gosh-wow factor, why would anyone be interested in running desktop systems on their phone hardware? The most compelling reason is portability. We are very close to the point where we can stick an entire world of computing in our pocket. It's not just about bringing along your music and videos; soon you'll be able to bring along your entire "office" or your entire "life," with all the material that normally sits on your desktop.

Sure we can use phones on the road when we are away from our desks via their mobile interfaces. The simple GUIs ease those tasks you need to perform on the go. But when we arrive at wherever we're going, users should be able to access documents and files and interact with the hardware without mobile interface limitations.

Instead of thinking that a phone is limited by its very nature, people may soon start thinking of them by how they are used in different places and different scenarios. Why shouldn't your G1 or iPhone start serving full windows to monitors when you reach your desk? Why shouldn't they act like the mobile platform you know and love when you hit the road? A growing new class of computing continues to diminish the distinction between hand-held and desktop devices. These tentative first steps into adding desktop abilities onto hand-held systems are leading us to a destination of truly ubiquitous computing.