The current marketplace
Would you consider switching to a Linux-based PDA?
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 Handhelds.org site, which focuses on ARM processor based PDAs (like the Yopy and iPAQ).
So the kernel and OS is here, now what?