Linux DevCenter    
 Published on Linux DevCenter (
 See this if you're having trouble printing code examples

Linux on Your PDA

by Chris Halsall

What true geek doesn't want to have a computer with them at all times, wherever they happen to be -- at the office or home, or out somewhere in the "big blue room"? And if it runs a real operating system as well, like let's say, Linux, all the better.

In the past, laptops have been the only real option for mobile Linux, but that's changing. Several hand-held devices are now available that are capable of running Linux, including Compaq's iPAQ, Agenda Computing's VR3 and G.Mate's Yopy.

The list is actually longer -- heck, you can run Linux on some Palm devices if you really want to. But these three devices are of particular interest because the companies manufacturing them are directly supporting development efforts in making Linux run on their hardware, and you can get all of them today.

The VR3 and Yopy, in fact, ship from the factory with Linux pre-installed. On the other hand, the iPAQ devices, such as the 3630 or 3650, ship with Windows for Pocket PCs which must be wiped out and replaced with Linux once purchased. This also means Bill gets a contribution regardless of what you end up using.

As of the publication date for this article, only developer versions of the VR3 and Yopy are available. Agenda computing has committed to begin shipping consumer product May 21, 2001. G.Mate recently announced they will have consumer devices available in the third quarter of this year.

Photo of the PDAs.
All three units from left to right: the Agenda VR3, the Compaq iPAQ, and the G. Mate Yopy.

Is Linux ready to take on Palm and Windows CE? Is there really a need for a bash prompt on a hand-held device?

With this and the next three articles in this series, I'll tell you what I've discovered ...

The current marketplace

Comment on this article Would you consider switching to a Linux-based PDA?
Post your comments.

The Palm platform is certainly the biggest success story in the personal digital assistant (PDA) market, holding up to 90 percent of the market share in the U.S. at the end of 2000, according to some surveys. The largest base of independent software for hand-held devices is written for the Palm platform.

Palm Inc. achieved this success largely by creating and supporting a large developer base which created a huge collection of applications. This was done by providing an open development environment, including free tools and access to source code for the applications and most of the operating system itself. Lately Palm has been licensing the OS for third-party manufacturers, such as Handspring and Sony.

Unfortunately, while the Palm platform found the sweetspot for ease of use on relatively weak processors, it is starting to show its age. While color versions are now available, and some new models are appearing with display sizes double the default 160 x 160 pixels, the OS itself is lacking major features. Multitasking and interprocess communications (IPC) are foreign concepts to the Palm OS.

While taking the usual three attempts to produce something worth using, Microsoft's Windows for Pocket PCs (formally known as Windows CE, or WinCE) is currently gaining significant market share from Palm. WinCE is riding into town on the backs of high-powered devices with full-color displays, being produced by companies like HP and Compaq.

And the hardware is impressive -- 32-bit processors running at up to 200 MHz, with memory varying from 8 to 64 megabytes of RAM. The color displays, with bright white back-lighting, can make grown execs drool. The CF and PCI expansion options make geeks stare off into space for long minutes, considering the possibilities -- memory, storage, NC, 802.11, GPS, Bluetooth ... Oh, gimme!

Linux on a PDA

As most who are reading this article will already understand, the advantage of running Linux and other free and open-source software on a hand-held device is the same as running it anywhere else: You're in control. You can trust your system to not have back doors or too many Stupid Programmer Errors. Having what's needed to fix anything that's broken is always nice too. (Hey, SPEs happen.)

To the PDA manufacturers, though, it's also a bottom-line thing -- using Linux means they can offer their products without having to include the cost of WinCE, estimated to be as much as $30 for some models. This was certainly part of the motivation for Agenda Computing's decision to use Linux instead of WinCE for their PDAs. The Linux buzz never hurts either.

But simply getting Linux to boot on a hand-held device, vs. providing a complete and consistent PDA "experience" are two totally different things. In analogy, the former might be thought of as being a bit like mountain climbing -- keep at it long enough, and eventually you'll get there. On the hand, the user interface is very much an arts thing, and there is no right answer.

Even during the climb to a working kernel and system, there is some interesting (read: Chinese curse) terrain to cover. Think about some of the things a hand-held device has to deal with, like hard memory constraints of usually 32 megs or less. With no swap partition to page out to when you're out of memory, you're out of memory!

Storage is also an interesting resource, usually being hosted on flash memory. A property of flash is that it can only handle having a block written to about 100,000 times, so common file systems like ext2, which frequently write to particular blocks during its operations, are not the best solution. They will work, but will be burning out blocks while not ever touching others.

Oh, and you might be asked to suspend yourself with very little notice at any time during operations. Thus running programs must expect to have large gaps in their time awareness. Have a little daily job launched by a custom daemon at 3:00 a.m.? Better be sure the daemon knows what to do when time "leaps" from 5:10 p.m. Friday to 8:30 a.m. Monday.

The good news is there are several teams having success bringing up Linux environments on various hand-held devices. Examples include the Linux VR project for MIPS hand-held devices and the site, which focuses on ARM processor based PDAs (like the Yopy and iPAQ).

So the kernel and OS is here, now what?

The PDA environment: Can Linux deliver?

A Personal Digital Assistant is, by definition, more than just a computer that you can hold in your hand or some other small embedded device. In the PDA world, the OS doesn't matter, it's all about the "Personal Information Management" (PIM) applications and the ease of interactivity. Can the users do what they want to do quickly, and with a minimum of input? Do the applications present consistent interfaces? Do the text input methods work reliably?

These were questions the Palm creators spent a lot of time considering. And overall they did a pretty good job -- Palm applications are minimalist, but get the job done with the resources available to them. Avoiding Newton's mistakes with trying to go too far with handwriting recognition, the Palm OS constrains the list of acceptable input strokes, making the human adapt to it instead.

Thus, to be considered a contender in the PDA marketplace, Linux needs to offer the same kind of ease of use and consistency delivered by the other available platforms and their supported software. The pieces to choose from to create this environment are wide and varied, with a lot of experimentation going on right now to try to figure out which way(s) are best.

For example, the graphical and windowing environments. Is X Windows the best solution? It sure makes the porting of applications a snap, and you can do cool things like import and export displays from and to other computers running X Windows.

But it's not known for being the lightest solution around -- perhaps a direct-to-framebuffer approach would be better? Alternatives include the Microwindows system and G.Mate's W Windows. It is perhaps illustrative that few applications have appeared for W Windows, and G.Mate has just formally announced it is abandoning it in favor of X.

The choices for widget sets presents similar issues -- do you install GTK+, with all its features and storage requirements, or something smaller and more practical like FLTK? You only get to choose one or two -- you don't have room to waste.

And you may still need a window manager. Perhaps something nice and light like Blackbox. Last, you'll need a way of getting characters into the applications given only mouse movements. The preferred method is by some form of handwriting recognition, but sometimes a virtual keyboard is simply faster.

Oh, and let's not forget about the PIM software itself -- the reason we started this whole exercise in the first place. A good choice for basic Palm-like applications is Agenda Computing's PIM suite. For a completely different approach, there's the very flashy PocketLinux environment, implemented with the Java virtual machine clone Kaffe.

In addition to the free and open-source offerings, Trolltech also provides a complete user experience with its Qt Palmtop Environment. It has licensing restrictions, however, which may turn off some developers.

Wow. Quite a list, and it's by no means complete. To make things even more interesting, different bits and pieces can be combined to customize the environment delivered, much like desktop users swap out their Window and Desktop managers from time to time to suit their tastes and needs.

So, can Linux compete?

The short answer is a definite yes.

The longer answer is a bit more hesitant, for three reasons. The first is that Linux is starting from behind in the hand-held field, and thus it will continue to have less software than its peers, at least to start. On the other hand, with software porting made relatively easy because of having a true Linux environment as the target, this shouldn't be too much of a problem for too long.

The second issue has to do with my comment above about the importance of the user experience. To be accepted by mainstream PDA users, the devices they rely on to organize their lives and business must simply work. Immediately, and without fuss, failure or frustration. Like the 24/7 production server environment, stability and consistency is more important on a PDA than some gee-whiz advance.

This concern is somewhat alleviated by the fact that the critical PIM applications are being developed by commercial entities such as Agenda Computing, who will be highly motivated to complete the non-thrilling software development work sometimes needed to complete an application suite.

Another excellent sign has been the amount of code sharing that has been taking place amongst both kernel and user-space programmers working on different platforms. The aforementioned Agenda PIM suite is likely to become a standard for many Linux PDAs.

The third reason for concern has less to do with the community's ability to produce quality code, and everything to do with closed data formats. WinCE comes with Microsoft Word, Excel, Media Player and eBook, all reading and writing closed and undocumented file formats. Will open-source applications and formats win the day?

Machine details

In the next three articles, we take a hands-on look at the Agenda VR3, the G.Mate Yopy, and the Compaq iPAQ.

Chris Halsall is the Managing Director of Ideas 4 Lease (Barbados). Chris is a specialist... at automating information gathering and presentation systems.

Return to the Linux DevCenter.

Copyright © 2009 O'Reilly Media, Inc.