Site hosted by Angelfire.com: Build your free website today!

TECHNICAL ANALYSIS
Comparing Windows CE with Palm OS

By Jason Perlow

Back in our September issue, we published a side-by-side objective hardware comparison of the latest Windows CE Palm-sized PC, the Nino 300, with our favorite connected organizer, the Palm III. Needless to say, we raised a few heads with that one.

We had promised to follow that up with a second part comparing the operating systems and the built-in applications for the following month, but alas, we left it on the back burner and it fell between the cracks. And because of all the wonderful email you've sent to our editor requesting a follow-up (actually, David Gerwitz called me up and threatened to send the goon squad over if I didn't write one) we're BACK, six months later.

There's really nothing specific about the Nino's software that's different from the rest of Windows CE. As a result, this article will instead talk about Windows CE and the Palm OS and examine how they compare.

It's all about the kernel
We all know what an Operating System is, right? After all, we can all thank the U.S. Department of Justice and Microsoft for making the abbreviation "OS" a household word.

As we all know, the OS is the master control program or foundation software of a computer that schedules tasks, allocates storage, and presents a common end-user interface for applications. At the very core of every OS is the kernel, which defines how the OS behaves, allocates storage, schedules tasks, runs system processes, and interfaces with very low-level things like device drivers. On top of the kernel, you have higher-level constructs like file systems, shells, and user interfaces, the stuff most of us are used to.

The Palm OS kernel
PalmOS and Windows CE machines are designed from two completely different approaches, and the kernels of the two operating systems reflect this. Perhaps the main outstanding difference is that the Palm OS (based on the AMX kernel from embedded systems vendor KADAK) supports and is optimized for a very specific hardware reference platform designed entirely by Palm Computing. Because of this, there is little deviation between the Palm OS platform vendors as far as hardware differences go. Symbol, IBM, and Qualcomm have all taken the core hardware and added things on top of the basic Palm devices to it, but they can't change things like the CPU, screen and controller chips -- such a change would require a major reworking of the OS.

The Windows CE kernel
Microsoft Windows CE is designed to support a much wider range of hardware. There are no fewer than four different versions of the Windows CE kernel for various different CPU's (NEC MIPS and its variants, Intel/AMD X86, Hitachi SH-3 and SH4, Intel StrongARM) along with other vendor-specific versions of Windows CE to handle different kinds of screens, keyboards, modems and peripheral devices. It is fair to say there is only ONE version of Palm OS, where Windows CE is compiled specifically for the machine that it is being designed to run on.

Is it a tuxedo or a jogging suit?
It is this fundamental difference in kernel design which is both the main weakness and strength of each respective operating system. Palm OS is optimized and compiled for a very specific kind of machine, and thus its performance and function is highly tweaked. By the same token, it can also be said that Palm OS is also quite limited as to what it can do.

Windows CE, on the other hand, is a general-purpose operating system designed to support a lot of different kinds of hardware, has a modular design and is very expandable. In fact, unlike Palm OS, it's a lot more like the operating system that runs on your PC. Windows CE isn't just used for PDA's, it's been adapted to computers for your car (such as the Clarion AutoPC), Windows Terminals and ultra light notebook PC's. Again, this strength is also its weakness, because while it's designed to be a jack-of-all-trades, its not really optimized for a specific hardware platform, and applications designed to run on all of these different computer types reflect this "one size fits all" approach.

To use an analogy, Palm OS is like a custom tuxedo that looks great and fits perfectly for one particular person. Windows CE is more like an army fatigue or a jogging outfit, which doesn't necessarily fit everyone perfectly but can be used for more things than going to a wedding or a cocktail party.

Knowing your limitations
In our original article, we talked about the maximum addressable memory capabilities of the Nino's PR31700 RISC processor and the Palm III's Dragonball, both of which can theoretically address up to 4GB. The reality, however, is that there's a huge gap between what Windows CE and Palm OS can do as far as memory allocation is concerned.

While Microsoft and Palm Computing keep much of the details about the inner workings of both operating systems confidential, we do know that Windows CE is far more robust in terms of total memory allocation. While there is no limit to the size of a Palm OS application, there is no way for Palm OS 3.x to address more than 12MB RAM, a fact which was discovered by engineers at TRG during the development of an experimental 16MB SuperPilot Memory Board which never saw actual production. The new Windows CE HP/PC Pro "Jupiter" machines are expandable to 32MB of base RAM (such as on the Vadem Clio and the HP Jornada 820) and also have the ability to store data on 32Mb hot-pluggable CompactFlash cards.

There's also the issue of multitasking to consider as well. While the real-time embedded AMX kernel that Palm Computing licensed from KADAK can multitask, the Palm OS itself does not have this capability. As stated in Palm's Developer FAQ:

 

Palm OS is built on top of a small kernel that Palm Computing licensed from Kadak. The terms and conditions of that license specifically state that Palm may not expose the API for creating/manipulating tasks within the OS. If you need access to these calls you need to contact Kadak at (604) 734-2796.

The Palm OS ROM is built with support for a very few tasks. There are only enough task slots for the ROM's needs. In order to support more tasks, the ROM would need to be rebuilt.

Windows CE, on the other hand, is designed to run multiple programs and tasks simultaneously. Whether or not this is useful on a Palm-sized device like the Nino is debatable, but certainly on larger form factor devices, where you might have a Web browser open in one window and a word processor open in another, it's a good thing, as Martha Stewart would say. Multitasking is also beneficial during synchronization (Windows CE devices synchronize all the time when plugged into their docking cradles). It's also a good fit for wireless applications, where email and web pages might be downloaded over the airwaves in the background when the user is doing something else, such as reading email or searching through a contacts database. Multitasking is important to wireless field data collection applications as well, where a handheld device could upload stored information to a remote database while the user is keying in information, such as for stock-keeping and medical diagnostics type programs. Because of its robustness in this area, Windows CE is the preferred platform for this type of application.

Let's not forget about multimedia either. Windows CE can produce color graphics in high resolutions, and some of the newer units, like Compaq's Aero, can play MPEG animations and digitized stereo music. By comparison, the Palm OS is lucky if it can display 2 shades of black-and-white and reproduce an audible beep on a tiny peizoelectic speaker.

The Palm organizer is the better organizer
All of this may sound like we're giving the Palm OS short shrift. In reality, as a personal organizer, Palm OS is the real winner here. Who has actually tried to use Pocket Outlook on a Palm-sized PC, with its array of buttons, controls and drop-down lists, in place of the simple built-in contact list? Or have actually tried to take notes with Note Taker? Those who have tried can probably tell you how difficult it really is, because the Windows interface doesn't translate well to small screens. With all of CE's API's, its monster memory pool, hardware expandability, color graphics, voice recognition and gee-whiz sound, it's the Palm OS's simplicity that makes it such a successful organizer.

What the future holds
It all has to do with trade-offs. Windows CE is certainly the more "real" operating system, but because it's so complicated, it trades off application performance and ease of use for rich API's, vast amounts of addressable memory, expandability and the ability to run on different hardware platforms. The little Palm OS is extremely optimized for running small, efficient personal productivity programs, but it has almost no expandability except through cleverly engineered software and hardware hacks, and the OS is too simplistic to handle running monolithic applications.

Certainly both camps need to learn something from each other here -- at 8MB for the kernel and integrated applets, Windows CE needs to go on a diet, and its interface on a Palm-sized unit is way too complicated for the average user to do everyday PDA-type tasks with it. It's better suited to devices with larger form factors and bigger screens, where the Windows interface can really shine. And because Windows can address huge amounts of memory, with no limit to the size of programs you can run on it, CE developers don't tend to write code that's efficient, which results in bloated applications.

In contrast, Palm device programmers know what the Palm OS's limitations are, and thus have had to work with a lot less. Where CE needs to go on a diet, Palm OS needs to improve its hardware support, increase base addressable memory and add multitasking capabilities if it wants to move into the future of wireless computing and serious vertical applications. Lets face it, 4MB of RAM and single-tasking just won't cut the mustard for the next generation of wireless Personal Communications Devices (PCD's) which will merge the functions of cell phone, organizer and Internet terminal.