Virtualisation is a great way to try out new operating systems with the minimum of fuss. Trolltech has put it to a cool new use, by providing a virtual machine that's an instant Linux SDK, guaranteed to work with its new developer-oriented mobile phone.
Yes, you read that correctly: this is a phone aimed firmly at programmers, which means less eye candy and more hackability. That said, Trolltech hasn't done away with aesthetic design - the phone is slim, light and has a super-bright 320 x 240 touchscreen.
But inside the phone runs Linux, and the device not only ships with the entire source code for the operating system, but also gives you all the tools required to make your own apps.
Linux is everywhere
Of course, not many other people will own a Greenphone, but that's not a problem: Trolltech's customised Linux OS, Qtopia, ships as standard on a number of devices, including hardware from Motorola, Sharp and Samsung.
Sometimes Qtopia has a very carefully designed user interface so you'd never know you were running Linux - Sony's Mylo device, for example, runs Qtopia, which means it will run apps you develop on the Greenphone. This is its real strength: if you want to use it as your day-to-day phone, it will certainly work, but it's designed to work as a developer platform for coders who want to target the entire family of Qtopia devices.
As mentioned already, Trolltech uses a Linux-based virtual machine for its SDK, which works through VMware's free virtualisation solution, VMware Player. This requires a fairly powerful host machine with at least 1GB RAM, but on the upside this means you can get up and running with the device in minutes, irrespective of whether you're running Windows or Linux.
The SDK VM comes preconfigured for Qtopia development, which means you get a GCC cross-compiler targeted at the Greenphone's XScale ARM CPU, a remote-debugger that operates over the USB connection, plus a Greenphone emulator that lets you test your app inside the SDK before copying it across to the phone.
The USB cable can also be used for charging the phone from your computer and other data copying, but we found it easier to pick up a lowcost 2GB Mini-SD card from Crucial and use that for data transfer instead.
The phone's user interface runs on top of Trolltech Qt, which is a cross-platform UI library that has seen most use in the KDE project on Linux. On the phone, this means that the UI is completely skinnable and looks exactly the same on the device as it does on the emulator. As the library is shared across all the apps, it keeps the memory footprint quite low - after the OS has booted, you have just 8MB of the 64MB RAM left for your own code, which might not sound much but in mobile terms is a massive amount of space. You also get 128MB of Flash for data storage, but again we found it easier to use the Mini-SD slot.
Inside the SDK you get a large collection of example phone apps that you can edit, build and run either locally or on the phone to get a feel for the Qtopia API. But it's not hard at all: Qt Designer is the user interface designer, which means you can drag-and-drop your widgets as you want them. After that, you just need to tie the widgets together using C and you're done.
If you've ever done Qt programming before, the Greenphone will be instantly accessible to you. The $695 development fee gets you a device, along with the open source version of the SDK. This does limit you to building GPL software, but if you want commercial licensing, you can pay an extra $195 and get a closed-source licence suitable for commercial development.
You can use the device as a phone, but it's not ideal - it takes a long time to boot up, and gives you a developer warning message each time. While it does work as a Tri-band GPS/GPRS device, the Bluetooth support is not yet implemented. Trolltech does update the phone software on a regular basis, so we expect this problem to be fixed soon.
Ultimately, though, these are minor flaws: it's never going to be a killer smartphone because it wasn't designed to be. Instead, it's a completely open developer device that makes portable programming accessible to all, and that's where it excels.